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>
impl<'a> FontRef<'a>
Sourcepub fn new(data: &'a [u8]) -> Result<FontRef<'a>, ReadError>
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.
Sourcepub fn from_index(data: &'a [u8], index: u32) -> Result<FontRef<'a>, ReadError>
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.
Sourcepub fn data(&self) -> FontData<'a>
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.
Sourcepub fn ttc_index(&self) -> Option<u32>
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.
Sourcepub fn table_directory(&self) -> &TableRef<'a, TableDirectoryMarker>
pub fn table_directory(&self) -> &TableRef<'a, TableDirectoryMarker>
Returns the associated table directory.
Sourcepub fn table_data(&self, tag: Tag) -> Option<FontData<'a>>
pub fn table_data(&self, tag: Tag) -> Option<FontData<'a>>
Returns the data for the table with the specified tag, if present.
Trait Implementations§
Source§impl<'a> MetadataProvider<'a> for FontRef<'a>
impl<'a> MetadataProvider<'a> for FontRef<'a>
Source§fn attributes(&self) -> Attributes
fn attributes(&self) -> Attributes
Returns the primary attributes for font classification– stretch, style and weight.
Source§fn axes(&self) -> AxisCollection<'a>
fn axes(&self) -> AxisCollection<'a>
Returns the collection of variation axes.
Source§fn named_instances(&self) -> NamedInstanceCollection<'a>
fn named_instances(&self) -> NamedInstanceCollection<'a>
Returns the collection of named variation instances.
Source§fn localized_strings(&self, id: NameId) -> LocalizedStrings<'a> ⓘ
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>
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
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>
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 outline_glyphs(&self) -> OutlineGlyphCollection<'a>
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>
fn bitmap_strikes(&self) -> BitmapStrikes<'a>
Returns a collection of bitmap strikes.
fn color_glyphs(&self) -> ColorGlyphCollection<'a>
Source§impl<'a> TableProvider<'a> for FontRef<'a>
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>
Source§fn loca(&self, is_long: impl Into<Option<bool>>) -> Result<Loca<'a>, ReadError>
fn loca(&self, is_long: impl Into<Option<bool>>) -> Result<Loca<'a>, ReadError>
fn glyf(&self) -> Result<TableRef<'a, GlyfMarker>, ReadError>
fn gvar(&self) -> Result<TableRef<'a, GvarMarker>, ReadError>
Source§fn cvt(&self) -> Result<&'a [BigEndian<i16>], ReadError>
fn cvt(&self) -> Result<&'a [BigEndian<i16>], ReadError>
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 Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
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) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more