alloc::string - Rust
Description: API documentation for the Rust `string` mod in crate `alloc`.
Keywords: rust, rustlang, rust-lang, string

# Module alloc::string 1.0.0 [−] [src]

A UTF-8 encoded, growable string.

This module contains the `String` type, a trait for converting `ToString`s, and several error types that may result from working with `String`s.

# Examples

There are multiple ways to create a new `String` from a string literal:

    let s = "Hello".to_string();

    let s = String::from("world");
    let s: String = "also this".into();

You can create a new `String` from an existing one by concatenating with `+`:

    let s = "Hello".to_string();

    let message = s + " world!";

If you have a vector of valid UTF-8 bytes, you can make a `String` out of it. You can do the reverse too.

    let sparkle_heart = vec![240, 159, 146, 150];

    // We know these bytes are valid, so we'll use `unwrap()`.
    let sparkle_heart = String::from_utf8(sparkle_heart).unwrap();

    assert_eq!("💖", sparkle_heart);

    let bytes = sparkle_heart.into_bytes();

    assert_eq!(bytes, [240, 159, 146, 150]);

## Structs

Drain | A draining iterator for `String`.
FromUtf16Error | A possible error value when converting a `String` from a UTF-16 byte slice.
FromUtf8Error | A possible error value when converting a `String` from a UTF-8 byte vector.
String | A UTF-8 encoded, growable string.
Splice | [ Experimental ] A splicing iterator for `String`.

## Enums

ParseError | An error when parsing a `String`.

## Traits

ToString | A trait for converting a value to a `String`.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)