pub struct FontRef<'a> {
    pub table_directory: TableRef<'a, TableDirectoryMarker>,
    /* private fields */
}
Expand description

Reference to an in-memory font.

This is a simple implementation of the TableProvider trait backed by a borrowed slice containing font data.

Fields§

§table_directory: TableRef<'a, TableDirectoryMarker>

Implementations§

Source§

impl<'a> FontRef<'a>

Source

pub fn new(data: &'a [u8]) -> Result<FontRef<'a>, ReadError>

Creates a new reference to an in-memory font backed by the given data.

The data must be a single font (not a font collection) and must begin with a table directory to be considered valid.

To load a font from a font collection, use FontRef::from_index instead.

Source

pub fn from_index(data: &'a [u8], index: u32) -> Result<FontRef<'a>, ReadError>

Creates a new reference to an in-memory font at the specified index backed by the given data.

The data slice must begin with either a table directory or a ttc header to be considered valid.

In other words, this accepts either font collection (ttc) or single font (ttf/otf) files. If a single font file is provided, the index parameter must be 0.

Source

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

Returns the underlying font data.

This is the base from which tables are loaded, meaning that for TrueType collection files, this will be the entire font file data.

Source

pub fn ttc_index(&self) -> Option<u32>

If the font is in a TrueType collection (ttc) file, returns the index of the font in that collection.

Source

pub fn table_directory(&self) -> &TableRef<'a, TableDirectoryMarker>

Returns the associated table directory.

Source

pub fn table_data(&self, tag: Tag) -> Option<FontData<'a>>

Returns the data for the table with the specified tag, if present.

Source

pub fn fonts( data: &'a [u8], ) -> impl Iterator<Item = Result<FontRef<'a>, ReadError>> + Clone + 'a

Returns an iterator over all of the available fonts in the given font data.

Trait Implementations§

Source§

impl<'a> Clone for FontRef<'a>

Source§

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

Source§

fn attributes(&self) -> Attributes

Returns the primary attributes for font classification– stretch, style and weight.

Source§

fn axes(&self) -> AxisCollection<'a>

Returns the collection of variation axes.

Source§

fn named_instances(&self) -> NamedInstanceCollection<'a>

Returns the collection of named variation instances.

Source§

fn localized_strings(&self, id: NameId) -> LocalizedStrings<'a>

Returns an iterator over the collection of localized strings for the given informational string identifier.

Source§

fn glyph_names(&self) -> GlyphNames<'a>

Returns the mapping from glyph identifiers to names.

Source§

fn metrics(&self, size: Size, location: impl Into<LocationRef<'a>>) -> Metrics

Returns the global font metrics for the specified size and location in normalized variation space.

Source§

fn glyph_metrics( &self, size: Size, location: impl Into<LocationRef<'a>>, ) -> GlyphMetrics<'a>

Returns the glyph specific metrics for the specified size and location in normalized variation space.

Source§

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

Returns the character to nominal glyph identifier mapping.

Source§

fn outline_glyphs(&self) -> OutlineGlyphCollection<'a>

Returns the collection of scalable glyph outlines.

If the font contains multiple outline sources, this method prioritizes glyf, CFF2 and CFF in that order. To select a specific outline source, use the OutlineGlyphCollection::with_format method.

Source§

fn bitmap_strikes(&self) -> BitmapStrikes<'a>

Returns a collection of bitmap strikes.

Source§

fn color_glyphs(&self) -> ColorGlyphCollection<'a>

Source§

impl<'a> TableProvider<'a> for FontRef<'a>

Source§

fn data_for_tag(&self, tag: Tag) -> Option<FontData<'a>>

Source§

fn expect_data_for_tag(&self, tag: Tag) -> Result<FontData<'a>, ReadError>

Source§

fn expect_table<T>(&self) -> Result<T, ReadError>
where T: TopLevelTable + FontRead<'a>,

Source§

fn head(&self) -> Result<TableRef<'a, HeadMarker>, ReadError>

Source§

fn name(&self) -> Result<TableRef<'a, NameMarker>, ReadError>

Source§

fn hhea(&self) -> Result<TableRef<'a, HheaMarker>, ReadError>

Source§

fn vhea(&self) -> Result<TableRef<'a, VheaMarker>, ReadError>

Source§

fn hmtx(&self) -> Result<TableRef<'a, HmtxMarker>, ReadError>

Source§

fn hdmx(&self) -> Result<TableRef<'a, HdmxMarker>, ReadError>

Source§

fn vmtx(&self) -> Result<TableRef<'a, VmtxMarker>, ReadError>

Source§

fn vorg(&self) -> Result<TableRef<'a, VorgMarker>, ReadError>

Source§

fn fvar(&self) -> Result<TableRef<'a, FvarMarker>, ReadError>

Source§

fn avar(&self) -> Result<TableRef<'a, AvarMarker>, ReadError>

Source§

fn hvar(&self) -> Result<TableRef<'a, HvarMarker>, ReadError>

Source§

fn vvar(&self) -> Result<TableRef<'a, VvarMarker>, ReadError>

Source§

fn mvar(&self) -> Result<TableRef<'a, MvarMarker>, ReadError>

Source§

fn maxp(&self) -> Result<TableRef<'a, MaxpMarker>, ReadError>

Source§

fn os2(&self) -> Result<TableRef<'a, Os2Marker>, ReadError>

Source§

fn post(&self) -> Result<TableRef<'a, PostMarker>, ReadError>

Source§

fn gasp(&self) -> Result<TableRef<'a, GaspMarker>, ReadError>

Source§

fn loca(&self, is_long: impl Into<Option<bool>>) -> Result<Loca<'a>, ReadError>

is_long can be optionally provided, if known, otherwise we look it up in head.
Source§

fn glyf(&self) -> Result<TableRef<'a, GlyfMarker>, ReadError>

Source§

fn gvar(&self) -> Result<TableRef<'a, GvarMarker>, ReadError>

Source§

fn cvt(&self) -> Result<&'a [BigEndian<i16>], ReadError>

Returns the array of entries for the control value table which is used for TrueType hinting.
Source§

fn cvar(&self) -> Result<TableRef<'a, CvarMarker>, ReadError>

Source§

fn cff(&self) -> Result<Cff<'a>, ReadError>

Source§

fn cff2(&self) -> Result<Cff2<'a>, ReadError>

Source§

fn cmap(&self) -> Result<TableRef<'a, CmapMarker>, ReadError>

Source§

fn gdef(&self) -> Result<TableRef<'a, GdefMarker>, ReadError>

Source§

fn gpos(&self) -> Result<TableRef<'a, GposMarker>, ReadError>

Source§

fn gsub(&self) -> Result<TableRef<'a, GsubMarker>, ReadError>

Source§

fn feat(&self) -> Result<TableRef<'a, FeatMarker>, ReadError>

Source§

fn ltag(&self) -> Result<TableRef<'a, LtagMarker>, ReadError>

Source§

fn ankr(&self) -> Result<TableRef<'a, AnkrMarker>, ReadError>

Source§

fn trak(&self) -> Result<TableRef<'a, TrakMarker>, ReadError>

Source§

fn morx(&self) -> Result<TableRef<'a, MorxMarker>, ReadError>

Source§

fn kerx(&self) -> Result<TableRef<'a, KerxMarker>, ReadError>

Source§

fn kern(&self) -> Result<Kern<'a>, ReadError>

Source§

fn colr(&self) -> Result<TableRef<'a, ColrMarker>, ReadError>

Source§

fn cpal(&self) -> Result<TableRef<'a, CpalMarker>, ReadError>

Source§

fn cblc(&self) -> Result<TableRef<'a, CblcMarker>, ReadError>

Source§

fn cbdt(&self) -> Result<TableRef<'a, CbdtMarker>, ReadError>

Source§

fn eblc(&self) -> Result<TableRef<'a, EblcMarker>, ReadError>

Source§

fn ebdt(&self) -> Result<TableRef<'a, EbdtMarker>, ReadError>

Source§

fn sbix(&self) -> Result<TableRef<'a, SbixMarker>, ReadError>

Source§

fn stat(&self) -> Result<TableRef<'a, StatMarker>, ReadError>

Source§

fn svg(&self) -> Result<TableRef<'a, SvgMarker>, ReadError>

Source§

fn varc(&self) -> Result<TableRef<'a, VarcMarker>, ReadError>

Source§

fn meta(&self) -> Result<TableRef<'a, MetaMarker>, ReadError>

Source§

fn base(&self) -> Result<TableRef<'a, BaseMarker>, ReadError>

Source§

fn dsig(&self) -> Result<TableRef<'a, DsigMarker>, ReadError>

Auto Trait Implementations§

§

impl<'a> Freeze for FontRef<'a>

§

impl<'a> RefUnwindSafe for FontRef<'a>

§

impl<'a> Send for FontRef<'a>

§

impl<'a> Sync for FontRef<'a>

§

impl<'a> Unpin for FontRef<'a>

§

impl<'a> UnwindSafe for FontRef<'a>

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T> Also for T

Source§

fn also<F>(self, block: F) -> Self
where F: FnOnce(&mut Self),

Apply a function to this value and return the (possibly) modified value.
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, Res> Apply<Res> for T
where T: ?Sized,

Source§

fn apply<F>(self, f: F) -> Res
where F: FnOnce(Self) -> Res, Self: Sized,

Apply a function which takes the parameter by value.
Source§

fn apply_ref<F>(&self, f: F) -> Res
where F: FnOnce(&Self) -> Res,

Apply a function which takes the parameter by reference.
Source§

fn apply_mut<F>(&mut self, f: F) -> Res
where F: FnOnce(&mut Self) -> Res,

Apply a function which takes the parameter by mutable reference.
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
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, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

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

Source§

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