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 std::iter module.

CharIndices

External iterator for a string's characters and their byte offsets. Use with the std::iter module.

CharRange

Struct that contains a char and the index of the first byte of the next char in a string. This can be used as a data structure for iterating over the UTF-8 bytes of a string.

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 std::iter module.

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 \n.

LinesAny

An iterator over the lines of a string, separated by either \n or (\r\n).

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 bool from a string fails.

RSplitN

Return type of StrExt::rsplitn

Recompositions

External iterator for a string's recomposition's characters. Use with the std::iter module.

Split

Return type of StrExt::split

SplitN

Return type of StrExt::splitn

SplitStr

An iterator over the substrings of a string separated by a given search string

SplitTerminator

Return type of StrExt::split_terminator

Utf16Units

External iterator for a string's UTF16 codeunits. Use with the std::iter module.

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 str.

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.