Struct ascii::AsciiString
[−]
[src]
pub struct AsciiString { /* fields omitted */ }
A growable string stored as an ASCII encoded buffer.
Methods
impl AsciiString
[src]
impl AsciiString
pub fn new() -> Self
[src]
pub fn new() -> Self
Creates a new, empty ASCII string buffer without allocating.
Examples
let mut s = AsciiString::new();
pub fn with_capacity(capacity: usize) -> Self
[src]
pub fn with_capacity(capacity: usize) -> Self
Creates a new ASCII string buffer with the given capacity.
The string will be able to hold exactly capacity
bytes without reallocating.
If capacity
is 0, the ASCII string will not allocate.
Examples
let mut s = AsciiString::with_capacity(10);
pub unsafe fn from_raw_parts(
buf: *mut AsciiChar,
length: usize,
capacity: usize
) -> Self
[src]
pub unsafe fn from_raw_parts(
buf: *mut AsciiChar,
length: usize,
capacity: usize
) -> Self
Creates a new AsciiString
from a length, capacity and pointer.
Safety
This is highly unsafe, due to the number of invariants that aren't checked:
- The memory at
ptr
need to have been previously allocated by the same allocator this library uses. length
needs to be less than or equal tocapacity
.capacity
needs to be the correct value.
Violating these may cause problems like corrupting the allocator's internal datastructures.
Examples
Basic usage:
use std::mem; unsafe { let s = AsciiString::from_ascii("hello").unwrap(); let ptr = s.as_ptr(); let len = s.len(); let capacity = s.capacity(); mem::forget(s); let s = AsciiString::from_raw_parts(ptr as *mut _, len, capacity); assert_eq!(AsciiString::from_ascii("hello").unwrap(), s); }
pub unsafe fn from_ascii_unchecked<B>(bytes: B) -> Self where
B: Into<Vec<u8>>,
[src]
pub unsafe fn from_ascii_unchecked<B>(bytes: B) -> Self where
B: Into<Vec<u8>>,
Converts a vector of bytes to an AsciiString
without checking for non-ASCII characters.
Safety
This function is unsafe because it does not check that the bytes passed to it are valid
ASCII characters. If this constraint is violated, it may cause memory unsafety issues with
future of the AsciiString
, as the rest of this library assumes that AsciiString
s are
ASCII encoded.
pub fn from_ascii<B>(bytes: B) -> Result<AsciiString, B> where
B: Into<Vec<u8>> + AsRef<[u8]>,
[src]
pub fn from_ascii<B>(bytes: B) -> Result<AsciiString, B> where
B: Into<Vec<u8>> + AsRef<[u8]>,
Converts anything that can represent a byte buffer into an AsciiString
.
Failure
Returns the byte buffer if not all of the bytes are ASCII characters.
Examples
let foo = AsciiString::from_ascii("foo").unwrap(); let err = AsciiString::from_ascii("Ŋ"); assert_eq!(foo.as_str(), "foo"); assert_eq!(err, Err("Ŋ"));
pub fn push_str(&mut self, string: &AsciiStr)
[src]
pub fn push_str(&mut self, string: &AsciiStr)
Pushes the given ASCII string onto this ASCII string buffer.
Examples
use std::str::FromStr; let mut s = AsciiString::from_str("foo").unwrap(); s.push_str("bar".as_ascii_str().unwrap()); assert_eq!(s, "foobar".as_ascii_str().unwrap());
pub fn capacity(&self) -> usize
[src]
pub fn capacity(&self) -> usize
Returns the number of bytes that this ASCII string buffer can hold without reallocating.
Examples
let s = String::with_capacity(10); assert!(s.capacity() >= 10);
pub fn reserve(&mut self, additional: usize)
[src]
pub fn reserve(&mut self, additional: usize)
Reserves capacity for at least additional
more bytes to be inserted in the given
AsciiString
. The collection may reserve more space to avoid frequent reallocations.
Panics
Panics if the new capacity overflows usize
.
Examples
let mut s = AsciiString::new(); s.reserve(10); assert!(s.capacity() >= 10);
pub fn reserve_exact(&mut self, additional: usize)
[src]
pub fn reserve_exact(&mut self, additional: usize)
Reserves the minimum capacity for exactly additional
more bytes to be inserted in the
given AsciiString
. Does nothing if the capacity is already sufficient.
Note that the allocator may give the collection more space than it requests. Therefore
capacity can not be relied upon to be precisely minimal. Prefer reserve
if future
insertions are expected.
Panics
Panics if the new capacity overflows usize
.
Examples
let mut s = AsciiString::new(); s.reserve_exact(10); assert!(s.capacity() >= 10);
pub fn shrink_to_fit(&mut self)
[src]
pub fn shrink_to_fit(&mut self)
Shrinks the capacity of this ASCII string buffer to match it's length.
Examples
use std::str::FromStr; let mut s = AsciiString::from_str("foo").unwrap(); s.reserve(100); assert!(s.capacity() >= 100); s.shrink_to_fit(); assert_eq!(s.capacity(), 3);
pub fn push(&mut self, ch: AsciiChar)
[src]
pub fn push(&mut self, ch: AsciiChar)
Adds the given ASCII character to the end of the ASCII string.
Examples
let mut s = AsciiString::from_ascii("abc").unwrap(); s.push(AsciiChar::from('1').unwrap()); s.push(AsciiChar::from('2').unwrap()); s.push(AsciiChar::from('3').unwrap()); assert_eq!(s, "abc123");
pub fn truncate(&mut self, new_len: usize)
[src]
pub fn truncate(&mut self, new_len: usize)
Shortens a ASCII string to the specified length.
Panics
Panics if new_len
> current length.
Examples
let mut s = AsciiString::from_ascii("hello").unwrap(); s.truncate(2); assert_eq!(s, "he");
pub fn pop(&mut self) -> Option<AsciiChar>
[src]
pub fn pop(&mut self) -> Option<AsciiChar>
Removes the last character from the ASCII string buffer and returns it.
Returns None
if this string buffer is empty.
Examples
let mut s = AsciiString::from_ascii("foo").unwrap(); assert_eq!(s.pop().map(|c| c.as_char()), Some('o')); assert_eq!(s.pop().map(|c| c.as_char()), Some('o')); assert_eq!(s.pop().map(|c| c.as_char()), Some('f')); assert_eq!(s.pop(), None);
pub fn remove(&mut self, idx: usize) -> AsciiChar
[src]
pub fn remove(&mut self, idx: usize) -> AsciiChar
Removes the ASCII character at position idx
from the buffer and returns it.
Warning
This is an O(n) operation as it requires copying every element in the buffer.
Panics
If idx
is out of bounds this function will panic.
Examples
let mut s = AsciiString::from_ascii("foo").unwrap(); assert_eq!(s.remove(0).as_char(), 'f'); assert_eq!(s.remove(1).as_char(), 'o'); assert_eq!(s.remove(0).as_char(), 'o');
pub fn insert(&mut self, idx: usize, ch: AsciiChar)
[src]
pub fn insert(&mut self, idx: usize, ch: AsciiChar)
Inserts an ASCII character into the buffer at position idx
.
Warning
This is an O(n) operation as it requires copying every element in the buffer.
Panics
If idx
is out of bounds this function will panic.
Examples
let mut s = AsciiString::from_ascii("foo").unwrap(); s.insert(2, AsciiChar::b); assert_eq!(s, "fobo");
pub fn len(&self) -> usize
[src]
pub fn len(&self) -> usize
Returns the number of bytes in this ASCII string.
Examples
let s = AsciiString::from_ascii("foo").unwrap(); assert_eq!(s.len(), 3);
pub fn is_empty(&self) -> bool
[src]
pub fn is_empty(&self) -> bool
Returns true if the ASCII string contains zero bytes.
Examples
let mut s = AsciiString::new(); assert!(s.is_empty()); s.push(AsciiChar::from('a').unwrap()); assert!(!s.is_empty());
pub fn clear(&mut self)
[src]
pub fn clear(&mut self)
Truncates the ASCII string, setting length (but not capacity) to zero.
Examples
let mut s = AsciiString::from_ascii("foo").unwrap(); s.clear(); assert!(s.is_empty());
Methods from Deref<Target = AsciiStr>
pub fn as_str(&self) -> &str
[src]
pub fn as_str(&self) -> &str
Converts &self
to a &str
slice.
pub fn as_bytes(&self) -> &[u8]
[src]
pub fn as_bytes(&self) -> &[u8]
Converts &self
into a byte slice.
pub fn as_slice(&self) -> &[AsciiChar]
[src]
pub fn as_slice(&self) -> &[AsciiChar]
Returns the entire string as slice of AsciiChar
s.
pub fn as_mut_slice(&mut self) -> &mut [AsciiChar]
[src]
pub fn as_mut_slice(&mut self) -> &mut [AsciiChar]
Returns the entire string as mutable slice of AsciiChar
s.
pub fn as_ptr(&self) -> *const AsciiChar
[src]
pub fn as_ptr(&self) -> *const AsciiChar
Returns a raw pointer to the AsciiStr
's buffer.
The caller must ensure that the slice outlives the pointer this function returns, or else it
will end up pointing to garbage. Modifying the AsciiStr
may cause it's buffer to be
reallocated, which would also make any pointers to it invalid.
pub fn as_mut_ptr(&mut self) -> *mut AsciiChar
[src]
pub fn as_mut_ptr(&mut self) -> *mut AsciiChar
Returns an unsafe mutable pointer to the AsciiStr
's buffer.
The caller must ensure that the slice outlives the pointer this function returns, or else it
will end up pointing to garbage. Modifying the AsciiStr
may cause it's buffer to be
reallocated, which would also make any pointers to it invalid.
pub fn to_ascii_string(&self) -> AsciiString
[src]
pub fn to_ascii_string(&self) -> AsciiString
Copies the content of this AsciiStr
into an owned AsciiString
.
pub fn len(&self) -> usize
[src]
pub fn len(&self) -> usize
Returns the number of characters / bytes in this ASCII sequence.
Examples
let s = AsciiStr::from_ascii("foo").unwrap(); assert_eq!(s.len(), 3);
pub fn is_empty(&self) -> bool
[src]
pub fn is_empty(&self) -> bool
Returns true if the ASCII slice contains zero bytes.
Examples
let mut empty = AsciiStr::from_ascii("").unwrap(); let mut full = AsciiStr::from_ascii("foo").unwrap(); assert!(empty.is_empty()); assert!(!full.is_empty());
pub fn trim(&self) -> &Self
[src]
pub fn trim(&self) -> &Self
Returns an ASCII string slice with leading and trailing whitespace removed.
Examples
let example = AsciiStr::from_ascii(" \twhite \tspace \t").unwrap(); assert_eq!("white \tspace", example.trim());
pub fn trim_left(&self) -> &Self
[src]
pub fn trim_left(&self) -> &Self
Returns an ASCII string slice with leading whitespace removed.
Examples
let example = AsciiStr::from_ascii(" \twhite \tspace \t").unwrap(); assert_eq!("white \tspace \t", example.trim_left());
pub fn trim_right(&self) -> &Self
[src]
pub fn trim_right(&self) -> &Self
Returns an ASCII string slice with trailing whitespace removed.
Examples
let example = AsciiStr::from_ascii(" \twhite \tspace \t").unwrap(); assert_eq!(" \twhite \tspace", example.trim_right());
Trait Implementations
impl Clone for AsciiString
[src]
impl Clone for AsciiString
fn clone(&self) -> AsciiString
[src]
fn clone(&self) -> AsciiString
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Default for AsciiString
[src]
impl Default for AsciiString
fn default() -> AsciiString
[src]
fn default() -> AsciiString
Returns the "default value" for a type. Read more
impl PartialEq for AsciiString
[src]
impl PartialEq for AsciiString
fn eq(&self, __arg_0: &AsciiString) -> bool
[src]
fn eq(&self, __arg_0: &AsciiString) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &AsciiString) -> bool
[src]
fn ne(&self, __arg_0: &AsciiString) -> bool
This method tests for !=
.
impl Eq for AsciiString
[src]
impl Eq for AsciiString
impl PartialOrd for AsciiString
[src]
impl PartialOrd for AsciiString
fn partial_cmp(&self, __arg_0: &AsciiString) -> Option<Ordering>
[src]
fn partial_cmp(&self, __arg_0: &AsciiString) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, __arg_0: &AsciiString) -> bool
[src]
fn lt(&self, __arg_0: &AsciiString) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, __arg_0: &AsciiString) -> bool
[src]
fn le(&self, __arg_0: &AsciiString) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, __arg_0: &AsciiString) -> bool
[src]
fn gt(&self, __arg_0: &AsciiString) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, __arg_0: &AsciiString) -> bool
[src]
fn ge(&self, __arg_0: &AsciiString) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Ord for AsciiString
[src]
impl Ord for AsciiString
fn cmp(&self, __arg_0: &AsciiString) -> Ordering
[src]
fn cmp(&self, __arg_0: &AsciiString) -> Ordering
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
impl Hash for AsciiString
[src]
impl Hash for AsciiString
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl Deref for AsciiString
[src]
impl Deref for AsciiString
type Target = AsciiStr
The resulting type after dereferencing.
fn deref(&self) -> &AsciiStr
[src]
fn deref(&self) -> &AsciiStr
Dereferences the value.
impl DerefMut for AsciiString
[src]
impl DerefMut for AsciiString
impl PartialEq<str> for AsciiString
[src]
impl PartialEq<str> for AsciiString
fn eq(&self, other: &str) -> bool
[src]
fn eq(&self, other: &str) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
fn ne(&self, other: &Rhs) -> bool
This method tests for !=
.
impl PartialEq<AsciiString> for str
[src]
impl PartialEq<AsciiString> for str
fn eq(&self, other: &AsciiString) -> bool
[src]
fn eq(&self, other: &AsciiString) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
fn ne(&self, other: &Rhs) -> bool
This method tests for !=
.
impl<'a> PartialEq<String> for AsciiString
[src]
impl<'a> PartialEq<String> for AsciiString
fn eq(&self, other: &String) -> bool
[src]
fn eq(&self, other: &String) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &String) -> bool
[src]
fn ne(&self, other: &String) -> bool
This method tests for !=
.
impl<'a> PartialEq<AsciiString> for String
[src]
impl<'a> PartialEq<AsciiString> for String
fn eq(&self, other: &AsciiString) -> bool
[src]
fn eq(&self, other: &AsciiString) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &AsciiString) -> bool
[src]
fn ne(&self, other: &AsciiString) -> bool
This method tests for !=
.
impl<'a> PartialEq<AsciiString> for &'a AsciiStr
[src]
impl<'a> PartialEq<AsciiString> for &'a AsciiStr
fn eq(&self, other: &AsciiString) -> bool
[src]
fn eq(&self, other: &AsciiString) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &AsciiString) -> bool
[src]
fn ne(&self, other: &AsciiString) -> bool
This method tests for !=
.
impl<'a> PartialEq<&'a AsciiStr> for AsciiString
[src]
impl<'a> PartialEq<&'a AsciiStr> for AsciiString
fn eq(&self, other: &&'a AsciiStr) -> bool
[src]
fn eq(&self, other: &&'a AsciiStr) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &&'a AsciiStr) -> bool
[src]
fn ne(&self, other: &&'a AsciiStr) -> bool
This method tests for !=
.
impl<'a> PartialEq<AsciiString> for &'a str
[src]
impl<'a> PartialEq<AsciiString> for &'a str
fn eq(&self, other: &AsciiString) -> bool
[src]
fn eq(&self, other: &AsciiString) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &AsciiString) -> bool
[src]
fn ne(&self, other: &AsciiString) -> bool
This method tests for !=
.
impl<'a> PartialEq<&'a str> for AsciiString
[src]
impl<'a> PartialEq<&'a str> for AsciiString
fn eq(&self, other: &&'a str) -> bool
[src]
fn eq(&self, other: &&'a str) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &&'a str) -> bool
[src]
fn ne(&self, other: &&'a str) -> bool
This method tests for !=
.
impl Borrow<AsciiStr> for AsciiString
[src]
impl Borrow<AsciiStr> for AsciiString
impl From<Vec<AsciiChar>> for AsciiString
[src]
impl From<Vec<AsciiChar>> for AsciiString
impl Into<Vec<u8>> for AsciiString
[src]
impl Into<Vec<u8>> for AsciiString
impl Into<String> for AsciiString
[src]
impl Into<String> for AsciiString
impl AsRef<AsciiStr> for AsciiString
[src]
impl AsRef<AsciiStr> for AsciiString
impl AsMut<AsciiStr> for AsciiString
[src]
impl AsMut<AsciiStr> for AsciiString
impl FromStr for AsciiString
[src]
impl FromStr for AsciiString
type Err = AsAsciiStrError
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<AsciiString, AsAsciiStrError>
[src]
fn from_str(s: &str) -> Result<AsciiString, AsAsciiStrError>
Parses a string s
to return a value of this type. Read more
impl Display for AsciiString
[src]
impl Display for AsciiString
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Debug for AsciiString
[src]
impl Debug for AsciiString
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl FromIterator<AsciiChar> for AsciiString
[src]
impl FromIterator<AsciiChar> for AsciiString
fn from_iter<I: IntoIterator<Item = AsciiChar>>(iter: I) -> AsciiString
[src]
fn from_iter<I: IntoIterator<Item = AsciiChar>>(iter: I) -> AsciiString
Creates a value from an iterator. Read more
impl<'a> FromIterator<&'a AsciiStr> for AsciiString
[src]
impl<'a> FromIterator<&'a AsciiStr> for AsciiString
fn from_iter<I: IntoIterator<Item = &'a AsciiStr>>(iter: I) -> AsciiString
[src]
fn from_iter<I: IntoIterator<Item = &'a AsciiStr>>(iter: I) -> AsciiString
Creates a value from an iterator. Read more
impl Extend<AsciiChar> for AsciiString
[src]
impl Extend<AsciiChar> for AsciiString
fn extend<I: IntoIterator<Item = AsciiChar>>(&mut self, iterable: I)
[src]
fn extend<I: IntoIterator<Item = AsciiChar>>(&mut self, iterable: I)
Extends a collection with the contents of an iterator. Read more
impl<'a> Extend<&'a AsciiChar> for AsciiString
[src]
impl<'a> Extend<&'a AsciiChar> for AsciiString
fn extend<I: IntoIterator<Item = &'a AsciiChar>>(&mut self, iter: I)
[src]
fn extend<I: IntoIterator<Item = &'a AsciiChar>>(&mut self, iter: I)
Extends a collection with the contents of an iterator. Read more
impl<'a> Extend<&'a AsciiStr> for AsciiString
[src]
impl<'a> Extend<&'a AsciiStr> for AsciiString
fn extend<I: IntoIterator<Item = &'a AsciiStr>>(&mut self, iterable: I)
[src]
fn extend<I: IntoIterator<Item = &'a AsciiStr>>(&mut self, iterable: I)
Extends a collection with the contents of an iterator. Read more
impl<'a> Add<&'a AsciiStr> for AsciiString
[src]
impl<'a> Add<&'a AsciiStr> for AsciiString
type Output = AsciiString
The resulting type after applying the +
operator.
fn add(self, other: &AsciiStr) -> AsciiString
[src]
fn add(self, other: &AsciiStr) -> AsciiString
Performs the +
operation.
impl<T> Index<T> for AsciiString where
AsciiStr: Index<T>,
[src]
impl<T> Index<T> for AsciiString where
AsciiStr: Index<T>,
type Output = <AsciiStr as Index<T>>::Output
The returned type after indexing.
fn index(&self, index: T) -> &<AsciiStr as Index<T>>::Output
[src]
fn index(&self, index: T) -> &<AsciiStr as Index<T>>::Output
Performs the indexing (container[index]
) operation.
impl<T> IndexMut<T> for AsciiString where
AsciiStr: IndexMut<T>,
[src]
impl<T> IndexMut<T> for AsciiString where
AsciiStr: IndexMut<T>,
fn index_mut(&mut self, index: T) -> &mut <AsciiStr as Index<T>>::Output
[src]
fn index_mut(&mut self, index: T) -> &mut <AsciiStr as Index<T>>::Output
Performs the mutable indexing (container[index]
) operation.
impl IntoAsciiString for AsciiString
[src]
impl IntoAsciiString for AsciiString
unsafe fn into_ascii_string_unchecked(self) -> AsciiString
[src]
unsafe fn into_ascii_string_unchecked(self) -> AsciiString
Convert to AsciiString
without checking for non-ASCII characters.
fn into_ascii_string(self) -> Result<AsciiString, Self>
[src]
fn into_ascii_string(self) -> Result<AsciiString, Self>
Convert to AsciiString
.
Auto Trait Implementations
impl Send for AsciiString
impl Send for AsciiString
impl Sync for AsciiString
impl Sync for AsciiString