[][src]Struct calf_vec::string::CalfString

pub struct CalfString<'a, M: Meta, const N: usize> { /* fields omitted */ }

Implementations

impl<'a, M: Meta, const N: usize> CalfString<'a, M, N>[src]

pub fn from_utf8<V: Into<CalfVec<'a, M, u8, N>>>(
    vec: V
) -> Result<CalfString<'a, M, N>, FromUtf8Error<'a, M, N>>
[src]

Converts a vector of bytes to a CalfString.

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

If you are sure that the byte slice is valid UTF-8, and you don't want to incur the overhead of the validity check, there is an unsafe version of this function, [from_utf8_unchecked], which has the same behavior but skips the check.

This method will take care to not copy the vector, for efficiency's sake.

The inverse of this method is [into_bytes].

Errors

Returns Err if the slice is not UTF-8 with a description as to why the provided bytes are not UTF-8. The vector you moved in is also included.

pub fn len(&self) -> usize[src]

Returns this String's size, in bytes.

pub fn capacity(&self) -> Option<usize>[src]

Returns this String's capacity, in bytes.

pub fn reserve(&mut self, additional: usize)[src]

Ensures that this CalfString's capacity is at least additional bytes larger than its length.

The capacity may be increased by more than additional bytes if it chooses, to prevent frequent reallocations.

If you do not want this "at least" behavior, see the reserve_exact method.

Panics

Panics if the new capacity overflows usize.

pub fn reserve_exact(&mut self, additional: usize)[src]

Ensures that this CalfString's capacity is additional bytes larger than its length.

Consider using the reserve method unless you absolutely know better than the allocator.

Panics

Panics if the new capacity overflows usize.

pub fn push(&mut self, ch: char)[src]

Appends the given char to the end of this CalfString.

pub fn push_str(&mut self, string: &str)[src]

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

pub fn as_bytes(&self) -> &[u8][src]

Returns a byte slice of this CalfString's contents.

The inverse of this method is from_utf8.

pub fn as_str(&self) -> &str[src]

Extracts a string slice containing the entire CalfString.

pub fn as_mut_str(&mut self) -> &mut str[src]

Converts a CalfString into a mutable string slice.

pub fn truncate(&mut self, new_len: usize)[src]

Shortens this CalfString 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.

Trait Implementations

impl<'a, M: Meta, const N: usize> Deref for CalfString<'a, M, N>[src]

type Target = str

The resulting type after dereferencing.

impl<'a, M: Meta, const N: usize> DerefMut for CalfString<'a, M, N>[src]

Auto Trait Implementations

impl<'a, M, const N: usize> RefUnwindSafe for CalfString<'a, M, N> where
    M: RefUnwindSafe

impl<'a, M, const N: usize> Send for CalfString<'a, M, N> where
    M: Send

impl<'a, M, const N: usize> Sync for CalfString<'a, M, N> where
    M: Sync

impl<'a, M, const N: usize> Unpin for CalfString<'a, M, N> where
    M: Unpin

impl<'a, M, const N: usize> UnwindSafe for CalfString<'a, M, N> where
    M: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.