pub struct Str;
str
only.Expand description
A string slice namespace.
See also the std::str
module.
Implementations§
Source§impl Str
impl Str
Sourcepub const fn from_utf8(v: &[u8]) -> Result<&str, InvalidUtf8> ⓘ
pub const fn from_utf8(v: &[u8]) -> Result<&str, InvalidUtf8> ⓘ
Converts a slice of bytes to a string slice.
See from_utf8
.
Sourcepub fn from_utf8_mut(v: &mut [u8]) -> Result<&mut str, InvalidUtf8> ⓘ
pub fn from_utf8_mut(v: &mut [u8]) -> Result<&mut str, InvalidUtf8> ⓘ
Converts a mutable slice of bytes to a mutable string slice.
See from_utf8_mut
.
Sourcepub const unsafe fn from_utf8_unchecked(v: &[u8]) -> &str ⓘ
Available on crate feature unsafe_str
only.
pub const unsafe fn from_utf8_unchecked(v: &[u8]) -> &str ⓘ
unsafe_str
only.Converts a slice of bytes to a string slice without checking valid UTF-8.
See from_utf8_unchecked
.
§Safety
The bytes passed in must be valid UTF-8.
Sourcepub const unsafe fn from_utf8_unchecked_mut(v: &mut [u8]) -> &mut str ⓘ
Available on crate feature unsafe_str
only.
pub const unsafe fn from_utf8_unchecked_mut(v: &mut [u8]) -> &mut str ⓘ
unsafe_str
only.Converts a mutable slice of bytes to a mutable string slice without checking valid UTF-8.
§Safety
The bytes passed in must be valid UTF-8.
Sourcepub unsafe fn from_boxed_utf8_unchecked(v: Box<[u8]>) -> Box<str>
Available on crate features alloc
and unsafe_str
only.
pub unsafe fn from_boxed_utf8_unchecked(v: Box<[u8]>) -> Box<str>
alloc
and unsafe_str
only.Converts a boxed slice of bytes to a boxed string slice without checking valid UTF-8.
See from_boxed_utf8_unchecked
.
§Safety
The bytes passed in must be valid UTF-8.
Sourcepub const fn repeat_into<'input, const CAP: usize>(
string: &str,
n: usize,
buffer: &'input mut [u8; CAP],
) -> &'input str ⓘ
pub const fn repeat_into<'input, const CAP: usize>( string: &str, n: usize, buffer: &'input mut [u8; CAP], ) -> &'input str ⓘ
Repeats a string
a given number of times into the provided buffer
.
and returns a reference to the new &str
.
§Examples
let mut buf = [0_u8; 12];
let repeated = Str::repeat_into("ay", 3, &mut buf);
assert_eq![repeated, "ayayay"];
§Features
Makes use of the unsafe_str
feature if enabled.
See also ExtStr::new_counter
, which should be faster,
because it uses copy_from_slice
.
Sourcepub const fn new_counter(
buffer: &mut [u8],
length: usize,
separator: char,
) -> &str ⓘ
pub const fn new_counter( buffer: &mut [u8], length: usize, separator: char, ) -> &str ⓘ
Returns a &str
backed by a buffer
, where you always know each
character’s position.
A counter string is a graduated string of arbitrary length
,
with a separator
positioned after the immediately preceding number.
§Examples
let mut buf = [0; 15];
assert_eq!("2*4*6*8*11*14*", Str::new_counter(&mut buf, 14, '*'));
assert_eq!("_3_5_7_9_12_15_", Str::new_counter(&mut buf, 15, '_'));
§Panics
Panics if buffer.len() < length
, or if !char.is_ascii()
.
§Features
Makes use of the unsafe_str
feature if enabled.
See also ExtStr::new_counter
.
Auto Trait Implementations§
impl Freeze for Str
impl RefUnwindSafe for Str
impl Send for Str
impl Sync for Str
impl Unpin for Str
impl UnwindSafe for Str
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize ⓘ
fn byte_align(&self) -> usize ⓘ
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of_val(&self) -> usize ⓘ
fn mem_align_of_val(&self) -> usize ⓘ
Source§fn mem_size_of_val(&self) -> usize ⓘ
fn mem_size_of_val(&self) -> usize ⓘ
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.