[−][src]Struct heapless::String
A fixed capacity String
Methods
impl<N> String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
pub fn new() -> Self
[src]
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());
pub fn from_utf8(vec: Vec<u8, N>) -> Result<String<N>, Utf8Error>
[src]
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 String
s, 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());
pub unsafe fn from_utf8_unchecked(vec: Vec<u8, N>) -> String<N>
[src]
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.
pub fn into_bytes(self) -> Vec<u8, N>
[src]
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[..]);
pub fn as_str(&self) -> &str
[src]
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
pub fn as_mut_str(&mut self) -> &mut str
[src]
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();
pub fn push_str(&mut self, string: &str) -> Result<(), ()>
[src]
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());
pub fn capacity(&self) -> usize
[src]
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);
pub fn push(&mut self, c: char) -> Result<(), ()>
[src]
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);
pub fn truncate(&mut self, new_len: usize)
[src]
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);
pub fn pop(&mut self) -> Option<char>
[src]
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);
pub fn clear(&mut self)
[src]
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
impl<N1, N2> PartialEq<String<N2>> for String<N1> where
N1: ArrayLength<u8>,
N2: ArrayLength<u8>,
[src]
N1: ArrayLength<u8>,
N2: ArrayLength<u8>,
impl<'a, 'b, N> PartialEq<str> for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<'a, 'b, N> PartialEq<String<N>> for str where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<'a, 'b, N> PartialEq<&'a str> for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<'a, 'b, N> PartialEq<String<N>> for &'a str where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Eq for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<'a, N> From<&'a str> for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> From<i8> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U4, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U4, Output = True>,
impl<N> From<i16> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U6, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U6, Output = True>,
impl<N> From<i32> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U11, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U11, Output = True>,
impl<N> From<i64> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U20, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U20, Output = True>,
impl<N> From<u8> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U3, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U3, Output = True>,
impl<N> From<u16> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U5, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U5, Output = True>,
impl<N> From<u32> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U10, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U10, Output = True>,
impl<N> From<u64> for String<N> where
N: ArrayLength<u8> + IsGreaterOrEqual<U20, Output = True>,
[src]
N: ArrayLength<u8> + IsGreaterOrEqual<U20, Output = True>,
impl<N> Debug for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Display for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Write for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
fn write_str(&mut self, s: &str) -> Result<(), Error>
[src]
fn write_char(&mut self, c: char) -> Result<(), Error>
[src]
fn write_fmt(&mut self, args: Arguments) -> Result<(), Error>
1.0.0[src]
Glue for usage of the [write!
] macro with implementors of this trait. Read more
impl<N> FromStr for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
type Err = ()
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Self, Self::Err>
[src]
impl<N> Deref for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> DerefMut for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Hash for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
fn hash<H: Hasher>(&self, hasher: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<N> AsRef<str> for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> AsRef<[u8]> for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Clone for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<N> Default for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
impl<N> Hash for String<N> where
N: ArrayLength<u8>,
[src]
N: ArrayLength<u8>,
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self