[−][src]Struct ion_c_sys::_ion_string
Fields
length: i32< The number of bytes in the value array.
value: *mut BYTE< UTF-8 encoded text, not null-terminated.
Implementations
impl _ion_string[src]
pub fn try_from_mut_str(src: &mut str) -> IonCResult<Self>[src]
Constructs an ION_STRING from a &mut str.
Note that this is effectively Ion C's &mut str type so lifetime is managed
manually by the caller.
Also note, that it is possible to violate the UTF-8 invariant of the source data, so care should be taken when using this API.
Usage
Generally, using a mutable owned source will be the safest option.
let mut buf = "Some data".to_string(); let mut ion_str = ION_STRING::try_from_mut_str(buf.as_mut_str())?;
pub fn try_from_mut_bytes(src: &mut [u8]) -> IonCResult<Self>[src]
Constructs an ION_STRING from a &mut [u8].
Note that this is effectively Ion C's &mut [u8] type so lifetime is managed
manually by the caller.
Usage
Generally, using a mutable owned source will be the safest option.
let mut buf = b"Some data".to_vec(); let mut ion_str = ION_STRING::try_from_mut_bytes(buf.as_mut_slice())?;
pub fn try_as_str(&self) -> IonCResult<&str>[src]
Retrieves a UTF-8 slice view from an ION_STRING.
When the value pointer is null, the conversion will fail:
let ion_str = ION_STRING::default(); match ion_str.try_as_str() { Ok(_) => panic!("Cannot happen!"), Err(e) => assert_eq!(ion_error_code_IERR_NULL_VALUE, e.code), }
When the string is not valid UTF-8, the conversion will fail:
let mut buf = b"\xFF".to_vec(); let ion_str = ION_STRING::try_from_mut_bytes(buf.as_mut_slice()).unwrap(); match ion_str.try_as_str() { Ok(_) => panic!("Cannot happen!"), Err(e) => assert_eq!(ion_error_code_IERR_INVALID_UTF8, e.code), }
pub fn try_as_bytes<'a>(&'a self) -> IonCResult<&'a [u8]>[src]
Retrieves a slice view from an ION_STRING
When the value pointer is null, the conversion will return an IonCError:
let ion_str = ION_STRING::default(); match ion_str.try_as_bytes() { Ok(_) => panic!("Cannot happen!"), Err(e) => assert_eq!(ion_error_code_IERR_NULL_VALUE, e.code), }
Trait Implementations
impl Clone for _ion_string[src]
fn clone(&self) -> _ion_string[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Copy for _ion_string[src]
impl Debug for _ion_string[src]
impl Default for _ion_string[src]
Auto Trait Implementations
impl RefUnwindSafe for _ion_string
impl !Send for _ion_string
impl !Sync for _ion_string
impl Unpin for _ion_string
impl UnwindSafe for _ion_string
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,