pub trait Encoding {
// Required methods
fn name(&self) -> &'static str;
fn raw_encoder(&self) -> Box<dyn RawEncoder>;
fn raw_decoder(&self) -> Box<dyn RawDecoder>;
// Provided methods
fn whatwg_name(&self) -> Option<&'static str> { ... }
fn encode(
&self,
input: &str,
trap: EncoderTrap,
) -> Result<Vec<u8>, Cow<'static, str>> { ... }
fn encode_to(
&self,
input: &str,
trap: EncoderTrap,
ret: &mut dyn ByteWriter,
) -> Result<(), Cow<'static, str>> { ... }
fn decode(
&self,
input: &[u8],
trap: DecoderTrap,
) -> Result<String, Cow<'static, str>> { ... }
fn decode_to(
&self,
input: &[u8],
trap: DecoderTrap,
ret: &mut dyn StringWriter,
) -> Result<(), Cow<'static, str>> { ... }
}
Expand description
Character encoding.
Required Methods§
Sourcefn name(&self) -> &'static str
fn name(&self) -> &'static str
Returns the canonical name of given encoding. This name is guaranteed to be unique across built-in encodings, but it is not normative and would be at most arbitrary.
Sourcefn raw_encoder(&self) -> Box<dyn RawEncoder>
fn raw_encoder(&self) -> Box<dyn RawEncoder>
Creates a new encoder.
Sourcefn raw_decoder(&self) -> Box<dyn RawDecoder>
fn raw_decoder(&self) -> Box<dyn RawDecoder>
Creates a new decoder.
Provided Methods§
Sourcefn whatwg_name(&self) -> Option<&'static str>
fn whatwg_name(&self) -> Option<&'static str>
Returns a name of given encoding defined in the WHATWG Encoding standard, if any.
This name often differs from name
due to the compatibility reason.
Sourcefn encode(
&self,
input: &str,
trap: EncoderTrap,
) -> Result<Vec<u8>, Cow<'static, str>>
fn encode( &self, input: &str, trap: EncoderTrap, ) -> Result<Vec<u8>, Cow<'static, str>>
An easy-to-use interface to RawEncoder
.
On the encoder error trap
is called,
which may return a replacement sequence to continue processing,
or a failure to return the error.
Sourcefn encode_to(
&self,
input: &str,
trap: EncoderTrap,
ret: &mut dyn ByteWriter,
) -> Result<(), Cow<'static, str>>
fn encode_to( &self, input: &str, trap: EncoderTrap, ret: &mut dyn ByteWriter, ) -> Result<(), Cow<'static, str>>
Encode into a ByteWriter
.
Sourcefn decode(
&self,
input: &[u8],
trap: DecoderTrap,
) -> Result<String, Cow<'static, str>>
fn decode( &self, input: &[u8], trap: DecoderTrap, ) -> Result<String, Cow<'static, str>>
An easy-to-use interface to RawDecoder
.
On the decoder error trap
is called,
which may return a replacement string to continue processing,
or a failure to return the error.
Sourcefn decode_to(
&self,
input: &[u8],
trap: DecoderTrap,
ret: &mut dyn StringWriter,
) -> Result<(), Cow<'static, str>>
fn decode_to( &self, input: &[u8], trap: DecoderTrap, ret: &mut dyn StringWriter, ) -> Result<(), Cow<'static, str>>
Decode into a StringWriter
.
This does not handle partial characters at the beginning or end of input
!
Use RawDecoder
for incremental decoding.