Struct heapless::String[][src]

pub struct String<N>(_)
where
    N: ArrayLength<u8>
;
Expand description

A fixed capacity String

Implementations

Constructs a new, empty String with a fixed capacity of N

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

// allocate the string on the stack
let mut s: String<U4> = String::new();

// allocate the string in a static variable
static mut S: String<U4> = String(heapless::i::String::new());

Converts a vector of bytes into a String.

A string slice (&str) is made of bytes (u8), and a vector of bytes (Vec<u8>) is made of bytes, so this function converts between the two. Not all byte slices are valid Strings, however: String requires that it is valid UTF-8. from_utf8() checks to ensure that the bytes are valid UTF-8, and then does the conversion.

See std::String for further information.

Examples

Basic usage:

use heapless::{String, Vec};
use heapless::consts::*;

let mut v: Vec<u8, U8> = Vec::new();
v.push('a' as u8).unwrap();
v.push('b' as u8).unwrap();

let s = String::from_utf8(v).unwrap();
assert!(s.len() == 2);

Incorrect bytes:

use heapless::{String, Vec};
use heapless::consts::*;

// some invalid bytes, in a vector

let mut v: Vec<u8, U8> = Vec::new();
v.push(0).unwrap();
v.push(159).unwrap();
v.push(146).unwrap();
v.push(150).unwrap();
assert!(String::from_utf8(v).is_err());

Converts a vector of bytes to a String without checking that the string contains valid UTF-8.

See the safe version, from_utf8, for more details.

Converts a String into a byte vector.

This consumes the String, so we do not need to copy its contents.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let s: String<U4> = String::from("ab");
let b = s.into_bytes();
assert!(b.len() == 2);

assert_eq!(&['a' as u8, 'b' as u8], &b[..]);

Extracts a string slice containing the entire string.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U4> = String::from("ab");
assert!(s.as_str() == "ab");

let _s = s.as_str();
// s.push('c'); // <- cannot borrow `s` as mutable because it is also borrowed as immutable

Converts a String into a mutable string slice.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U4> = String::from("ab");
let s = s.as_mut_str();
s.make_ascii_uppercase();

Returns a mutable reference to the contents of this String.

Safety

This function is unsafe because it does not check that the bytes passed to it are valid UTF-8. If this constraint is violated, it may cause memory unsafety issues with future users of the String, as the rest of the library assumes that Strings are valid UTF-8.

Examples

Basic usage:

let mut s = String::from("hello");

unsafe {
    let vec = s.as_mut_vec();
    assert_eq!(&[104, 101, 108, 108, 111][..], &vec[..]);

    vec.reverse();
}
assert_eq!(s, "olleh");

Appends a given string slice onto the end of this String.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U8> = String::from("foo");

assert!(s.push_str("bar").is_ok());

assert_eq!("foobar", s);

assert!(s.push_str("tender").is_err());

Returns the maximum number of elements the String can hold

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U4> = String::new();
assert!(s.capacity() == 4);

Appends the given char to the end of this String.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U8> = String::from("abc");

s.push('1').unwrap();
s.push('2').unwrap();
s.push('3').unwrap();

assert!("abc123" == s.as_str());

assert_eq!("abc123", s);

Shortens this String to the specified length.

If new_len is greater than the string’s current length, this has no effect.

Note that this method has no effect on the allocated capacity of the string

Panics

Panics if new_len does not lie on a char boundary.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U8> = String::from("hello");

s.truncate(2);

assert_eq!("he", s);

Removes the last character from the string buffer and returns it.

Returns None if this String is empty.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U8> = String::from("foo");

assert_eq!(s.pop(), Some('o'));
assert_eq!(s.pop(), Some('o'));
assert_eq!(s.pop(), Some('f'));

assert_eq!(s.pop(), None);

Truncates this String, removing all contents.

While this means the String will have a length of zero, it does not touch its capacity.

Examples

Basic usage:

use heapless::String;
use heapless::consts::*;

let mut s: String<U8> = String::from("foo");

s.clear();

assert!(s.is_empty());
assert_eq!(0, s.len());
assert_eq!(8, s.capacity());

Trait Implementations

Performs the conversion.

Performs the conversion.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

The resulting type after dereferencing.

Dereferences the value.

Mutably dereferences the value.

Formats the value using the given formatter. Read more

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

The associated error which can be returned from parsing.

Parses a string s to return a value of this type. Read more

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

Feeds this value into the given Hasher.

Feeds a slice of this type into the given Hasher.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Writes a string slice into this writer, returning whether the write succeeded. Read more

Writes a char into this writer, returning whether the write succeeded. Read more

Glue for usage of the [write!] macro with implementors of this trait. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.