pub struct CStr { /* fields omitted */ }Representation of a borrowed C string.
Wraps a raw C string with a safe C string wrapper.
This function will wrap the provided ptr with a CStr wrapper, which
allows inspection and interoperation of non-owned C strings. This method
is unsafe for a number of reasons:
- There is no guarantee to the validity of
ptr.
- The returned lifetime is not guaranteed to be the actual lifetime of
ptr.
- There is no guarantee that the memory pointed to by
ptr contains a
valid nul terminator byte at the end of the string.
- It is not guaranteed that the memory pointed by
ptr won't change
before the CStr has been destroyed.
Note: This operation is intended to be a 0-cost cast but it is
currently implemented with an up-front calculation of the length of
the string. This is not guaranteed to always be the case.
Creates a C string wrapper from a byte slice.
This function will cast the provided bytes to a CStr
wrapper after ensuring that the byte slice is nul-terminated
and does not contain any interior nul bytes.
Unsafely creates a C string wrapper from a byte slice.
This function will cast the provided bytes to a CStr wrapper without
performing any sanity checks. The provided slice must be nul-terminated
and not contain any interior nul bytes.
Returns the inner pointer to this C string.
The returned pointer will be valid for as long as self is, and points
to a contiguous region of memory terminated with a 0 byte to represent
the end of the string.
Converts this C string to a byte slice.
The returned slice will not contain the trailing nul terminator that this C
string has.
Note: This method is currently implemented as a constant-time
cast, but it is planned to alter its definition in the future to
perform the length calculation whenever this method is called.
Converts this C string to a byte slice containing the trailing 0 byte.
This function is the equivalent of to_bytes except that it will retain
the trailing nul terminator instead of chopping it off.
Note: This method is currently implemented as a 0-cost cast, but
it is planned to alter its definition in the future to perform the
length calculation whenever this method is called.
Yields a &str slice if the CStr contains valid UTF-8.
If the contents of the CStr are valid UTF-8 data, this
function will return the corresponding &str slice. Otherwise,
it will return an error with details of where UTF-8 validation failed.
Note: This method is currently implemented to check for validity
after a constant-time cast, but it is planned to alter its definition
in the future to perform the length calculation in addition to the
UTF-8 check whenever this method is called.
Converts a CStr into a Cow<str>.
If the contents of the CStr are valid UTF-8 data, this
function will return a Cow::Borrowed([&str])
with the the corresponding [&str] slice. Otherwise, it will
replace any invalid UTF-8 sequences with U+FFFD REPLACEMENT CHARACTER and return a Cow::[Owned](String)
with the result.
Note: This method is currently implemented to check for validity
after a constant-time cast, but it is planned to alter its definition
in the future to perform the length calculation in addition to the
UTF-8 check whenever this method is called.
Converts a Box<CStr> into a CString without copying or allocating.
Formats the value using the given formatter. Read more
Feeds this value into the given [Hasher]. Read more
Feeds a slice of this type into the given [Hasher]. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
#[must_use]
fn ne(&self, other: &Rhs) -> bool | 1.0.0 [src] |
This method tests for !=.
Returns the "default value" for a type. Read more
Immutably borrows from an owned value. Read more
This method returns an ordering between self and other values if one exists. Read more
#[must_use]
fn lt(&self, other: &Rhs) -> bool | 1.0.0 [src] |
This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]
fn le(&self, other: &Rhs) -> bool | 1.0.0 [src] |
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
#[must_use]
fn gt(&self, other: &Rhs) -> bool | 1.0.0 [src] |
This method tests greater than (for self and other) and is used by the > operator. Read more
#[must_use]
fn ge(&self, other: &Rhs) -> bool | 1.0.0 [src] |
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
This method returns an Ordering between self and other. Read more
fn max(self, other: Self) -> Self | 1.21.0 [src] |
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self | 1.21.0 [src] |
Compares and returns the minimum of two values. Read more