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: Hasher1.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