encoding::codec::simpchinese

Struct GBEncoding

Source
pub struct GBEncoding<T> { /* private fields */ }
Expand description

GBK and GB 18030-2005.

The original GBK 1.0 region spans [81-FE] [40-7E 80-FE], and is derived from several different revisions of a family of encodings named “GBK”:

  • GBK as specified in the normative annex of GB 13000.1-93, the domestic standard equivalent to Unicode 1.1, consisted of characters included in Unicode 1.1 and not in GB 2312-80.
  • Windows code page 936 is the widespread extension to GBK.
  • Due to the popularity of Windows code page 936, a formal encoding based on Windows code page 936 (while adding new characters) was standardized into GBK 1.0.
  • Finally, GB 18030 added four-byte sequences to GBK for becoming a pan-Unicode encoding, while adding new characters to the (former) GBK region again.

GB 18030-2005 is a simplified Chinese encoding which extends GBK 1.0 to a pan-Unicode encoding. It assigns four-byte sequences to every Unicode codepoint missing from the GBK area, lexicographically ordered with occasional “gaps” for codepoints in the GBK area. Due to this compatibility decision, there is no simple relationship between these four-byte sequences and Unicode codepoints, though there exists a relatively simple mapping algorithm with a small lookup table.

§Specialization

This type is specialized with GBType T, which should be either GBK or GB18030.

Trait Implementations§

Source§

impl<T: Clone> Clone for GBEncoding<T>

Source§

fn clone(&self) -> GBEncoding<T>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: GBType> Encoding for GBEncoding<T>

Source§

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.
Source§

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.
Source§

fn raw_encoder(&self) -> Box<dyn RawEncoder>

Creates a new encoder.
Source§

fn raw_decoder(&self) -> Box<dyn RawDecoder>

Creates a new decoder.
Source§

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.
Source§

fn encode_to( &self, input: &str, trap: EncoderTrap, ret: &mut dyn ByteWriter, ) -> Result<(), Cow<'static, str>>

Encode into a ByteWriter.
Source§

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.
Source§

fn decode_to( &self, input: &[u8], trap: DecoderTrap, ret: &mut dyn StringWriter, ) -> Result<(), Cow<'static, str>>

Decode into a StringWriter. Read more
Source§

impl<T: Copy> Copy for GBEncoding<T>

Auto Trait Implementations§

§

impl<T> Freeze for GBEncoding<T>

§

impl<T> RefUnwindSafe for GBEncoding<T>
where T: RefUnwindSafe,

§

impl<T> Send for GBEncoding<T>
where T: Send,

§

impl<T> Sync for GBEncoding<T>
where T: Sync,

§

impl<T> Unpin for GBEncoding<T>
where T: Unpin,

§

impl<T> UnwindSafe for GBEncoding<T>
where T: UnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.