[−][src]Struct sgx_trts::c_str::CStr
Representation of a borrowed C string.
Methods
impl CStr
[src]
impl CStr
pub unsafe fn from_ptr<'a>(ptr: *const c_char) -> &'a CStr | [src] |
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 theCStr
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.
pub fn from_bytes_with_nul(bytes: &[u8]) -> Result<&CStr, FromBytesWithNulError> | [src] |
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.
pub unsafe fn from_bytes_with_nul_unchecked(bytes: &[u8]) -> &CStr | [src] |
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.
pub fn as_ptr(&self) -> *const c_char | [src] |
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.
pub fn to_bytes(&self) -> &[u8] | [src] |
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.
pub fn to_bytes_with_nul(&self) -> &[u8] | [src] |
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.
pub fn to_str(&self) -> Result<&str, Utf8Error> | [src] |
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.
pub fn to_string_lossy(&self) -> Cow<str> | [src] |
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.
pub fn into_c_string(self: Box<CStr>) -> CString | [src] |
Trait Implementations
impl Debug for CStr
[src]
impl Debug for CStr
impl PartialEq<CStr> for CStr
[src]
impl PartialEq<CStr> for CStr
impl Eq for CStr
[src]
impl Eq for CStr
impl Ord for CStr
[src]
impl Ord for CStr
fn cmp(&self, other: &CStr) -> Ordering | [src] |
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
impl PartialOrd<CStr> for CStr
[src]
impl PartialOrd<CStr> for CStr
fn partial_cmp(&self, other: &CStr) -> Option<Ordering> | [src] |
| 1.0.0 [src] |
This method tests less than (for self
and other
) and is used by the <
operator. Read more
| 1.0.0 [src] |
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
| 1.0.0 [src] |
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
| 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 Hash for CStr
[src]
impl Hash for CStr
fn hash<__H: Hasher>(&self, state: &mut __H) | [src] |
fn hash_slice<H>(data: &[Self], state: &mut H) where | 1.3.0 [src] |
Feeds a slice of this type into the given [Hasher
]. Read more
impl<'a> From<&'a CStr> for Box<CStr>
[src]
impl<'a> From<&'a CStr> for Box<CStr>
impl<'a> From<&'a CStr> for Arc<CStr>
[src]
impl<'a> From<&'a CStr> for Arc<CStr>
impl<'a> From<&'a CStr> for Rc<CStr>
[src]
impl<'a> From<&'a CStr> for Rc<CStr>
impl<'a> From<&'a CStr> for CString
[src]
impl<'a> From<&'a CStr> for CString
impl<'a> Default for &'a CStr
[src]
impl<'a> Default for &'a CStr
impl AsRef<CStr> for CStr
[src]
impl AsRef<CStr> for CStr
impl AsRef<CStr> for CString
[src]
impl AsRef<CStr> for CString
impl Borrow<CStr> for CString
[src]
impl Borrow<CStr> for CString
impl ToOwned for CStr
[src]
impl ToOwned for CStr