# Struct FontRef

    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§

§

### impl<'a> FontRef<'a>

#### 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.

#### 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.

#### 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.

#### 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.

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

Returns the associated table directory.

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

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

#### 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§

§

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

§

#### 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
§

### impl<'a> MetadataProvider<'a> for FontRef<'a>

§

#### fn attributes(&self) -> Attributes

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

§

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

Returns the collection of variation axes.

§

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

Returns the collection of named variation instances.

§

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

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

§

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

Returns the mapping from glyph identifiers to names.

§

#### 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.

§

#### 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.

§

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

Returns the character to nominal glyph identifier mapping.

§

#### 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.

§

#### fn color_palettes(&self) -> ColorPalettes<'a>

Returns a collection of color palettes for color glyphs.

§

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

Returns a collection of bitmap strikes.

§

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

Returns a collection of paintable color glyphs.
§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

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

§

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

§

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

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

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

### impl<T> Also for T

§

#### 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
§

### impl<T, Res> Apply<Res> for T
where T: ?Sized,

§

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

Apply a function which takes the parameter by value.
§

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

Apply a function which takes the parameter by reference.
§

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

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

§

#### 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`.
§

#### 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`.
§

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

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

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

§

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

### impl<T> Instrument for T

§

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

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

#### 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`.
§

### impl<State, Message> IntoBoot<State, Message> for State

§

#### fn into_boot(self) -> (State, Task<Message>)

Turns some type into the initial state of some `Application`.
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

§

### impl<T> WithSubscriber for T

§

#### 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
§

#### fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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

### impl<T> MaybeClone for T

§

### impl<T> MaybeDebug for T

§

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

§

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

§

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

§

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