pub struct FontRef<'a> {
pub(crate) data: FontData<'a>,
pub table_directory: TableDirectory<'a>,
pub(crate) ttc_index: u32,
pub(crate) in_ttc: bool,
pub(crate) table_directory_sorted: bool,
}
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§
§data: FontData<'a>
§table_directory: TableDirectory<'a>
§ttc_index: u32
The index of this font in a TrueType collection
in_ttc: bool
Whether this font is a member of a TrueType collection.
We use a bool rather than an Option to avoid bloating the struct size.
table_directory_sorted: bool
Implementations§
Source§impl<'a> FontRef<'a>
impl<'a> FontRef<'a>
Sourcepub fn new(data: &'a [u8]) -> Result<Self, ReadError>
pub fn new(data: &'a [u8]) -> Result<Self, 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<Self, ReadError>
pub fn from_index(data: &'a [u8], index: u32) -> Result<Self, 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) -> &TableDirectory<'a>
pub fn table_directory(&self) -> &TableDirectory<'a>
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.
Sourcepub fn fonts(
data: &'a [u8],
) -> impl Iterator<Item = Result<FontRef<'a>, ReadError>> + 'a + Clone
pub fn fonts( data: &'a [u8], ) -> impl Iterator<Item = Result<FontRef<'a>, ReadError>> + 'a + Clone
Returns an iterator over all of the available fonts in the given font data.