I read the Rust documentation sequentially, and with the "strings" I see some problems for my use of Rust.
Getting grapheme clusters from strings is complex, so this functionality is not provided by the standard library. Crates are available on crates.io if this is the functionality you need.
I work primarily with databases (mssql) and Rust would be interesting to me for an interaction with databases. In TSQL a grapheme uses one or two bytes depending on the type. I have many easy possibilities to work with strings:
LEN, LEFT, RIGHT, STUFF, SUBSTRING, PATINDEX, ...
After reading the documentation on "strings", I realize why this can't or won't be so easy in Rust because of UTF8. Such a crate like unicode_segmentation
returns interators. UnicodeSegmentation
implements some split methods. I also would need other crates for non-unicode varchar
equivalent.
Is this the way you would have to work in Rust to map "trivial" string operations? An unstable crate here, with a link to another one there, and then you have to pick everything together somehow, just to be able to work with strings somehow usable and as usual in other languages?
Or I've seen that for something as common as a GUID, you have to use an extra crade GUID. Shouldn't there be something more in the standard? Especially to make it easier for Rust beginners to get started?
Do finished programs then look like this afterwards, that you have to gather hundreds of crates for all possible purposes? Sometimes a crate only for one data type? And then it may happen that different developers in the same project get the same functionality via different crates?
Or is there some sort of prioritization or recommendation system for crates to prevent such proliferation?
Since I work with the SQL Server, it is quite simple there. You work with a certain version of SQL Server, it has certain features, and you can use them or not.