Struct ion_c_sys::_ion_string[][src]

#[repr(C)]
pub struct _ion_string { pub length: i32, pub value: *mut BYTE, }

Fields

length: i32

< The number of bytes in the value array.

value: *mut BYTE

< UTF-8 encoded text, not null-terminated.

Implementations

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())?;

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())?;

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),
}

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.