Struct Charmap

Source
pub struct Charmap<'a> { /* private fields */ }
Expand description

Mapping of characters to nominal glyph identifiers.

The mappings are derived from the cmap table. Depending on the font, the returned mapping may have entries that point to virtual/phantom glyph ids beyond the num_glyphs entry of the maxp table, which are only used during the shaping process, for example.

§Obtaining a Charmap

Typically a Charmap is acquired by calling charmap on a FontRef.

§Selection strategy

Fonts may contain multiple subtables in various formats supporting different encodings. The selection strategy implemented here is designed to choose mappings that capture the broadest available Unicode coverage:

  • Unicode characters: a symbol mapping subtable is selected if available. Otherwise, subtables supporting the Unicode full repertoire or Basic Multilingual Plane (BMP) are preferred, in that order. Formats 4 and 12 are supported.

  • Unicode variation sequences: these are provided by a format 14 subtable.

Implementations§

Source§

impl<'a> Charmap<'a>

Source

pub fn new(font: &FontRef<'a>) -> Self

Creates a new character map from the given font.

Source

pub fn has_map(&self) -> bool

Returns true if a suitable Unicode character mapping is available.

Source

pub fn is_symbol(&self) -> bool

Returns true if a symbol mapping was selected.

Source

pub fn has_variant_map(&self) -> bool

Returns true if a Unicode variation sequence mapping is available.

Source

pub fn map(&self, ch: impl Into<u32>) -> Option<GlyphId>

Maps a character to a nominal glyph identifier.

Returns None if a mapping does not exist.

Source

pub fn mappings(&self) -> Mappings<'a>

Returns an iterator over all mappings of codepoint to nominal glyph identifiers in the character map.

Source

pub fn map_variant( &self, ch: impl Into<u32>, selector: impl Into<u32>, ) -> Option<MapVariant>

Maps a character and variation selector to a nominal glyph identifier.

Returns None if a mapping does not exist.

Source

pub fn variant_mappings(&self) -> VariantMappings<'a>

Returns an iterator over all mappings of character and variation selector to nominal glyph identifier in the character map.

Trait Implementations§

Source§

impl<'a> Clone for Charmap<'a>

Source§

fn clone(&self) -> Charmap<'a>

Returns a duplicate 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<'a> Default for Charmap<'a>

Source§

fn default() -> Charmap<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Charmap<'a>

§

impl<'a> RefUnwindSafe for Charmap<'a>

§

impl<'a> Send for Charmap<'a>

§

impl<'a> Sync for Charmap<'a>

§

impl<'a> Unpin for Charmap<'a>

§

impl<'a> UnwindSafe for Charmap<'a>

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.