๐ Rust Text
General
- Strings are stored using UTF-8
- string =
Vec<u8>with well formed UTF-8 - โ strings are not arrays of chars
- string =
- Strings are immutable
- โ use
Stringfor dynamic ones"text".to_string()format!("text")
- โ use
Types
char
<char>= 32-bit value holding a Unicode code point- Functions:
.is_numeric(),is_alphabetic(),.is_whitespaceโฆ
str
= Borrowed strings, fixed size
<str>- Create:
"text" - Multi-line:
r###"text"###
Strings
= Owned strings, dynamic size
<String>(= wrapper aroundVec<u8>, which ensures valid UTF-8)- Create:
String::new()"text".to_string()String::with_capacity(n)
Byte Strings
- Create:
b"byte_text"
Gotchas
Not every source of a string is guaranteed to be valid UTF-8, solutions:
- Filenames:
std::path::PathBufand&Path - Unencoded data:
Vec<u8>and&[u8] - Env vars / cmd arguments:
OsStringand&OsStr