Struct IConv

Source
pub struct IConv(/* private fields */);
Expand description

The GIConv struct wraps an iconv() conversion descriptor. It contains private data and should only be accessed using the following functions. The GIConv struct wraps an iconv() conversion descriptor. It contains private data and should only be accessed using the following functions.

Implementations§

Source§

impl IConv

Source

pub fn new( to_codeset: impl IntoGStr, from_codeset: impl IntoGStr, ) -> Option<Self>

Same as the standard UNIX routine iconv_open(), but may be implemented via libiconv on UNIX flavors that lack a native implementation.

GLib provides g_convert() and g_locale_to_utf8() which are likely more convenient than the raw iconv wrappers.

§to_codeset

destination codeset

§from_codeset

source codeset

§Returns

a “conversion descriptor”, or (GIConv)-1 if opening the converter failed. Same as the standard UNIX routine iconv_open(), but may be implemented via libiconv on UNIX flavors that lack a native implementation.

GLib provides g_convert() and g_locale_to_utf8() which are likely more convenient than the raw iconv wrappers.

§to_codeset

destination codeset

§from_codeset

source codeset

§Returns

a “conversion descriptor”, or (GIConv)-1 if opening the converter failed.

Source

pub fn convert(&mut self, str_: &[u8]) -> Result<(Slice<u8>, usize), CvtError>

Source

pub fn iconv( &mut self, inbuf: Option<&[u8]>, outbuf: Option<&mut [MaybeUninit<u8>]>, ) -> Result<(usize, usize, usize), IConvError>

Same as the standard UNIX routine iconv(), but may be implemented via libiconv on UNIX flavors that lack a native implementation.

GLib provides g_convert() and g_locale_to_utf8() which are likely more convenient than the raw iconv wrappers.

Note that the behaviour of iconv() for characters which are valid in the input character set, but which have no representation in the output character set, is implementation defined. This function may return success (with a positive number of non-reversible conversions as replacement characters were used), or it may return -1 and set an error such as EILSEQ, in such a situation.

§converter

conversion descriptor from g_iconv_open()

§inbuf

bytes to convert

§inbytes_left

inout parameter, bytes remaining to convert in @inbuf

§outbuf

converted output bytes

§outbytes_left

inout parameter, bytes available to fill in @outbuf

§Returns

count of non-reversible conversions, or -1 on error

Trait Implementations§

Source§

impl Debug for IConv

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for IConv

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for IConv

Auto Trait Implementations§

§

impl Freeze for IConv

§

impl RefUnwindSafe for IConv

§

impl !Sync for IConv

§

impl Unpin for IConv

§

impl UnwindSafe for IConv

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.