Trait jomini::Encoding[][src]

pub trait Encoding: Sized {
    fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>;
}
Expand description

An encoding for interpreting byte data as UTF-8 text

It is heavily encouraged that encoding implementations are marked as Copy to make sure they are as cheap to copy as possible. In an experiment storing the encoding in a Rc resulted in a decrease of deserialization throughput by over 10%, as encodings are passed around everywhere.

An encoding should also perform additional actions when:

  • trailing whitespace is removed
  • escape sequences are unescaped

Required methods

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

Decodes bytes into a utf-8 compatible string – allocating if necessary

Implementations on Foreign Types

impl<T: Encoding> Encoding for &T[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

Implementors

impl Encoding for Ck3Flavor[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

impl Encoding for Eu4Flavor[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

impl Encoding for Utf8Encoding[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

impl Encoding for Windows1252Encoding[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]

impl<'data, 'tokens, E> Encoding for ValueReader<'data, 'tokens, E> where
    E: Encoding
[src]

fn decode<'a>(&self, data: &'a [u8]) -> Cow<'a, str>[src]