Struct utf8::LossyDecoder

source ·
pub struct LossyDecoder<F: FnMut(&str)> { /* private fields */ }
Expand description

A push-based, lossy decoder for UTF-8. Errors are replaced with the U+FFFD replacement character.

Users “push” bytes into the decoder, which in turn “pushes” &str slices into a callback.

For example, String::from_utf8_lossy (but returning String instead of Cow) can be rewritten as:

fn string_from_utf8_lossy(input: &[u8]) -> String {
    let mut string = String::new();
    utf8::LossyDecoder::new(|s| string.push_str(s)).feed(input);
    string
}

Note: Dropping the decoder signals the end of the input: If the last input chunk ended with an incomplete byte sequence for a code point, this is an error and a replacement character is emitted. Use std::mem::forget to inhibit this behavior.

Implementations

Create a new decoder from a callback.

Feed one chunk of input into the decoder.

The input is decoded lossily and the callback called once or more with &str string slices.

If the UTF-8 byte sequence for one code point was split into this bytes chunk and previous bytes chunks, it will be correctly pieced back together.

Trait Implementations

Executes the destructor for this 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

Returns the argument unchanged.

Calls U::from(self).

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

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.