Struct const_cstr::ConstCStr
[−]
[src]
pub struct ConstCStr { pub val: &'static str, }
A type representing a static C-compatible string, wrapping &'static str
.
Note
Prefer the const_cstr!
macro to create an instance of this struct
over manual initialization. The macro will include the NUL byte for you.
Fields
val: &'static str
The wrapped string value. Not intended to be used for manual initialization.
Public only to allow initialization by the const_cstr!
macro.
Includes the NUL terminating byte. Use to_str()
to get an &'static str
without the NUL terminating byte.
Methods
impl ConstCStr
[src]
fn to_str(&self) -> &'static str
Returns the wrapped string, without the NUL terminating byte.
Compare to CStr::to_str()
which checks that the string is valid UTF-8 first,
since it starts from an arbitrary pointer instead of a Rust string slice.
fn to_bytes(&self) -> &'static [u8]
Returns the wrapped string as a byte slice, without the NUL terminating byte.
fn to_bytes_with_nul(&self) -> &'static [u8]
Returns the wrapped string as a byte slice, with* the NUL terminating byte.
fn as_ptr(&self) -> *const c_char
Returns a pointer to the beginning of the wrapped string.
Suitable for passing to any function that expects a C-compatible string.
Since the underlying string is guaranteed to be 'static
,
the pointer should always be valid.
Panics
If the wrapped string is not NUL-terminated.
(Unlikely if you used the const_cstr!
macro. This is just a sanity check.)
fn as_cstr(&self) -> &'static CStr
Returns the wrapped string as an &'static CStr
, skipping the length check that
CStr::from_ptr()
performs (since we know the length already).
Panics
If the wrapped string is not NUL-terminated.
(Unlikely if you used the const_cstr!
macro. This is just a sanity check.)
Trait Implementations
impl Hash for ConstCStr
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0
Feeds a slice of this type into the state provided.
impl Ord for ConstCStr
[src]
fn cmp(&self, __arg_0: &ConstCStr) -> Ordering
This method returns an Ordering
between self
and other
. Read more
impl PartialOrd for ConstCStr
[src]
fn partial_cmp(&self, __arg_0: &ConstCStr) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, __arg_0: &ConstCStr) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, __arg_0: &ConstCStr) -> 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: &ConstCStr) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, __arg_0: &ConstCStr) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Eq for ConstCStr
[src]
impl PartialEq for ConstCStr
[src]
fn eq(&self, __arg_0: &ConstCStr) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &ConstCStr) -> bool
This method tests for !=
.
impl Debug for ConstCStr
[src]
impl Clone for ConstCStr
[src]
fn clone(&self) -> ConstCStr
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more