Module std::strStable
[-] [+]
[src]
Unicode string manipulation (str
type)
Basic Usage
Rust's string type is one of the core primitive types of the language. While
represented by the name str
, the name str
is not actually a valid type in
Rust. Each string must also be decorated with a pointer. String
is used
for an owned string, so there is only one commonly-used str
type in Rust:
&str
.
&str
is the borrowed string type. This type of string can only be created
from other strings, unless it is a static string (see below). As the word
"borrowed" implies, this type of string is owned elsewhere, and this string
cannot be moved out of.
As an example, here's some code that uses a string.
fn main() { let borrowed_string = "This string is borrowed with the 'static lifetime"; }fn main() { let borrowed_string = "This string is borrowed with the 'static lifetime"; }
From the example above, you can guess that Rust's string literals have the
'static
lifetime. This is akin to C's concept of a static string.
More precisely, string literals are immutable views with a 'static lifetime
(otherwise known as the lifetime of the entire program), and thus have the
type &'static str
.
Representation
Rust's string type, str
, is a sequence of Unicode scalar values encoded as a
stream of UTF-8 bytes. All strings are
guaranteed to be validly encoded UTF-8 sequences. Additionally, strings are
not null-terminated and can thus contain null bytes.
The actual representation of strings have direct mappings to slices: &str
is the same as &[u8]
.
Structs
Bytes | External iterator for a string's bytes.
Use with the |
CharIndices | External iterator for a string's characters and their byte offsets.
Use with the |
CharRange | Struct that contains a |
Chars | Iterator for the char (representing Unicode Scalar Values) of a string |
Decompositions | External iterator for a string's decomposition's characters.
Use with the |
GraphemeIndices | External iterator for grapheme clusters and byte offsets. |
Graphemes | External iterator for a string's grapheme clusters. |
Lines | An iterator over the lines of a string, separated by |
LinesAny | An iterator over the lines of a string, separated by either |
MatchIndices | An iterator over the start and end indices of the matches of a substring within a larger string |
ParseBoolError | An error returned when parsing a |
RSplitN | Return type of |
Recompositions | External iterator for a string's recomposition's characters.
Use with the |
Split | Return type of |
SplitN | Return type of |
SplitStr | An iterator over the substrings of a string separated by a given search string |
SplitTerminator | Return type of |
Utf16Units | External iterator for a string's UTF16 codeunits.
Use with the |
Words | An iterator over the words of a string, separated by a sequence of whitespace |
Enums
Utf8Error | Errors which can occur when attempting to interpret a byte slice as a |
Traits
CharEq | Something that can be used to compare against a character |
FromStr | A trait to abstract the idea of creating a new instance of a type from a string. |
Str | Any string that can be represented as a slice |
StrExt | Any string that can be represented as a slice. |
Functions
from_c_str | Constructs a static string slice from a given raw pointer. |
from_utf8 | Converts a slice of bytes to a string slice without performing any allocations. |
from_utf8_unchecked | Converts a slice of bytes to a string slice without checking that the string contains valid UTF-8. |