Struct c_fixed_string::CFixedStr
[−]
[src]
pub struct CFixedStr { /* fields omitted */ }
This type represents a view of a fixed length buffer containing a C-style string. The string is terminated by the first null byte in the buffer, or by the length of the buffer if no null byte is present.
The length of the buffer is known as the limit of the CFixedStr.
The len()
method returns the length of the string within the buffer.
Any bytes after the first null byte are not considered part of the string and may contain garbage data. When comparing or hashing CFixedStrs, these bytes are not included.
Performance
Be aware that many of the methods on this type which would normally be expected to run in constant time may run in time linear in the length of the string. For this reason, it is recommended to use the type only for interop with C code, and to convert to a standard string or byte buffer as soon as possible.
Methods
impl CFixedStr
[src]
unsafe fn from_ptr<'a>(ptr: *const c_char, limit: usize) -> &'a CFixedStr
[src]
Cast a raw C-style buffer to a CFixedStr.
unsafe fn from_mut_ptr<'a>(ptr: *mut c_char, limit: usize) -> &'a mut CFixedStr
[src]
Cast a raw C-style buffer to a mutable CFixedStr.
fn from_str(s: &str) -> &CFixedStr
[src]
Create a CFixedStr from a string slice.
fn from_bytes(bytes: &[u8]) -> &CFixedStr
[src]
Create a CFixedStr from a byte slice.
fn from_bytes_mut(bytes: &mut [u8]) -> &mut CFixedStr
[src]
Create a CFixedStr from a mutable byte slice.
fn from_c_str(c_str: &CStr) -> &CFixedStr
[src]
Create a CFixedStr from a variable length CStr.
fn as_ptr(&self) -> *const c_char
[src]
Returns the inner pointer to this CFixedStr.
Safety
It is your responsibility to make sure the underlying memory is not freed to early.
fn as_mut_ptr(&mut self) -> *mut c_char
[src]
Returns the inner pointer to this mutable CFixedStr.
Safety
It is your responsibility to make sure the underlying memory is not freed to early.
fn limit(&self) -> usize
[src]
Returns the limit of this CFixedStr. This corresponds to the longest possible string that could be stored here.
fn len(&self) -> usize
[src]
Returns the length of the CFixedStr. This operation takes linear time.
fn to_bytes(&self) -> &[u8]
[src]
Coverts this CFixedStr to a byte slice. The length of the slice is equal to the length of the string up to but not including the first null byte.
fn to_bytes_mut(&mut self) -> &mut [u8]
[src]
Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the length of the string up to but not including the first null byte.
fn to_bytes_extended(&self) -> &[u8]
[src]
Coverts this CFixedStr to a byte slice. The length of the slice is equal to the length of the string up to and including the first null byte, if it exists.
fn to_bytes_mut_extended(&mut self) -> &mut [u8]
[src]
Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the length of the string up to and including the first null byte, if it exists.
fn as_bytes_full(&self) -> &[u8]
[src]
Coverts this CFixedStr to a byte slice. The length of the slice is equal to the limit of the CFixedStr.
fn as_bytes_mut_full(&mut self) -> &mut [u8]
[src]
Coverts this CFixedStr to a mutable byte slice. The length of the slice is equal to the limit of the CFixedStr.
fn to_str(&self) -> Result<&str, Utf8Error>
[src]
Yields a &str slice if the CFixedStr contains valid UTF-8.
This function will calculate the length of this string and check for UTF-8 validity, and then return the &str if it's valid.
fn to_string_lossy(&self) -> Cow<str>
[src]
Converts a CFixedStr into a Cow
This function will calculate the length of this string and then return the resulting
slice as a Cow<str>
, replacing any invalid UTF-8 sequences with U+FFFD REPLACEMENT CHARACTER
.
fn to_c_str(&self) -> Cow<CStr>
[src]
Converts a CFixedStr into a Cow
This function will calculate the length of this string, and then ensure it has a
terminating null byte. If a null byte is already present, the Borrowed
variant
can be returned.
fn into_c_fixed_string(self: Box<CFixedStr>) -> CFixedString
[src]
Converts a Box<CFixedStr>
into a CFixedString
without copying or allocating.
Trait Implementations
impl Hash for CFixedStr
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
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]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl Debug for CFixedStr
[src]
impl<'a> Default for &'a CFixedStr
[src]
impl PartialEq for CFixedStr
[src]
fn eq(&self, other: &CFixedStr) -> bool
[src]
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]
This method tests for !=
.
impl Eq for CFixedStr
[src]
impl PartialOrd for CFixedStr
[src]
fn partial_cmp(&self, other: &CFixedStr) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
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
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
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
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
impl Ord for CFixedStr
[src]
fn cmp(&self, other: &CFixedStr) -> Ordering
[src]
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.22.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.22.0[src]
Compares and returns the minimum of two values. Read more
impl ToOwned for CFixedStr
[src]
type Owned = CFixedString
fn to_owned(&self) -> CFixedString
[src]
Creates owned data from borrowed data, usually by cloning. Read more
fn clone_into(&self, target: &mut Self::Owned)
[src]
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more