Skip to main content

Subtable

Struct Subtable 

Source
pub struct Subtable<'a> {
    data: FontData<'a>,
}
Expand description

A subtable in a kerx table.

Fields§

§data: FontData<'a>

Implementations§

Source§

impl<'a> Subtable<'a>

Source

pub const MIN_SIZE: usize

Source

pub fn resolve_offset<O: Offset, R: FontRead<'a>>( &self, offset: O, ) -> Result<R, ReadError>

Resolve the provided offset from the start of this table.

Source

pub fn offset_data(&self) -> FontData<'a>

Return a reference to this table’s raw data.

We use this in the compile crate to resolve offsets.

Source

pub fn shape(&self) -> &Self

👎Deprecated: just use the base type directly

Return a reference to the table’s ‘Shape’ struct.

This is a low level implementation detail, but it can be useful in some cases where you want to know things about a table’s layout, such as the byte offsets of specific fields.

Source

pub fn length(&self) -> u32

The length of this subtable in bytes, including this header.

Source

pub fn coverage(&self) -> u32

Circumstances under which this table is used.

Source

pub fn tuple_count(&self) -> u32

The tuple count. This value is only used with variation fonts and should be 0 for all other fonts. The subtable’s tupleCount will be ignored if the ‘kerx’ table version is less than 4.

Source

pub fn data(&self) -> &'a [u8]

Subtable specific data.

Source

pub fn length_byte_range(&self) -> Range<usize>

Source

pub fn coverage_byte_range(&self) -> Range<usize>

Source

pub fn tuple_count_byte_range(&self) -> Range<usize>

Source

pub fn data_byte_range(&self) -> Range<usize>

Source§

impl<'a> Subtable<'a>

Source

pub const HEADER_LEN: usize

Source

pub fn is_vertical(&self) -> bool

True if the table has vertical kerning values.

Source

pub fn is_horizontal(&self) -> bool

True if the table has horizontal kerning values.

Source

pub fn is_cross_stream(&self) -> bool

True if the table has cross-stream kerning values.

If text is normally written horizontally, adjustments will be vertical. If adjustment values are positive, the text will be moved up. If they are negative, the text will be moved down. If text is normally written vertically, adjustments will be horizontal. If adjustment values are positive, the text will be moved to the right. If they are negative, the text will be moved to the left.

Source

pub fn is_variable(&self) -> bool

True if the table has variation kerning values.

Source

pub fn process_direction(&self) -> bool

Process direction flag. If clear, process the glyphs forwards, that is, from first to last in the glyph stream. If we, process them from last to first. This flag only applies to state-table based ‘kerx’ subtables (types 1 and 4).

Source

pub fn kind(&self) -> Result<SubtableKind<'a>, ReadError>

Returns an enum representing the actual subtable data.

Trait Implementations§

Source§

impl<'a> Clone for Subtable<'a>

Source§

fn clone(&self) -> Subtable<'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> FontRead<'a> for Subtable<'a>

Source§

fn read(data: FontData<'a>) -> Result<Self, ReadError>

Read an instance of Self from the provided data, performing validation. Read more
Source§

impl<'a> MinByteRange<'a> for Subtable<'a>

Source§

impl VarSize for Subtable<'_>

Source§

type Size = u32

The type of the first (length) field of the item. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Subtable<'a>

§

impl<'a> RefUnwindSafe for Subtable<'a>

§

impl<'a> Send for Subtable<'a>

§

impl<'a> Sync for Subtable<'a>

§

impl<'a> Unpin for Subtable<'a>

§

impl<'a> UnsafeUnpin for Subtable<'a>

§

impl<'a> UnwindSafe for Subtable<'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<'a, T> FontReadWithArgs<'a> for T
where T: FontRead<'a>,

Source§

fn read_with_args( data: FontData<'a>, _: &<T as ReadArgs>::Args, ) -> Result<T, ReadError>

read an item, using the provided args. 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<'a, T> ReadArgs for T
where T: FontRead<'a>,

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.