Skip to main content

UnicodeBom

Enum UnicodeBom 

Source
pub enum UnicodeBom {
    Utf8,
    Utf16BigEndian,
    Utf16LittleEndian,
    Utf32BigEndian,
    Utf32LittleEndian,
}
Expand description

Unicode byte order marks supported by this crate.

detect recognizes BOMs only from the bytes supplied to the call. Streaming callers should buffer up to four bytes, or read until EOF, before deciding that no longer BOM can be present.

§Examples

use qubit_text_codec::{
    ByteOrder,
    Charset,
    UnicodeBom,
};

let bom = UnicodeBom::detect(&[0xff, 0xfe, 0x00, 0x00]);
assert_eq!(Some(UnicodeBom::Utf32LittleEndian), bom);

let bom = bom.expect("UTF-32LE BOM");
assert_eq!(Charset::UTF_32LE, bom.charset());
assert_eq!(Some(ByteOrder::LittleEndian), bom.byte_order());
assert_eq!(4, bom.byte_len());

Variants§

§

Utf8

UTF-8 byte order mark.

§

Utf16BigEndian

UTF-16 big-endian byte order mark.

§

Utf16LittleEndian

UTF-16 little-endian byte order mark.

§

Utf32BigEndian

UTF-32 big-endian byte order mark.

§

Utf32LittleEndian

UTF-32 little-endian byte order mark.

Implementations§

Source§

impl UnicodeBom

Source

pub fn detect(bytes: &[u8]) -> Option<Self>

Detects a Unicode byte order mark at the beginning of bytes.

§Parameters
  • bytes: The byte buffer to inspect.
§Returns

Returns the detected BOM, or None if no supported BOM prefix is present.

UTF-32 BOMs are checked before UTF-16 BOMs so that overlapping prefixes such as FF FE 00 00 are classified as UTF-32 little-endian when all four bytes are available.

Source

pub const fn bytes(self) -> &'static [u8]

Returns the bytes that represent this BOM.

§Returns

Returns a static byte slice containing the BOM bytes.

Source

pub const fn byte_len(self) -> usize

Returns the byte length of this BOM.

§Returns

Returns the number of bytes in this BOM.

Source

pub const fn charset(self) -> Charset

Returns the charset indicated by this BOM.

§Returns

Returns the corresponding Charset, including fixed byte order for UTF-16 and UTF-32 BOMs.

Source

pub const fn byte_order(self) -> Option<ByteOrder>

Returns the byte order indicated by this BOM when applicable.

§Returns

Returns Some(ByteOrder) for UTF-16 and UTF-32 BOMs. Returns None for UTF-8 because byte order does not apply.

Trait Implementations§

Source§

impl Clone for UnicodeBom

Source§

fn clone(&self) -> UnicodeBom

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for UnicodeBom

Source§

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

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

impl Hash for UnicodeBom

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for UnicodeBom

Source§

fn eq(&self, other: &UnicodeBom) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for UnicodeBom

Source§

impl Eq for UnicodeBom

Source§

impl StructuralPartialEq for UnicodeBom

Auto Trait Implementations§

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.