/// conditions. That is, it allows the default set of lookups for a given feature to be substituted
/// <https://learn.microsoft.com/en-us/typography/opentype/spec/chapter2#featurevariations-table>
/// A feature table substitution that indicates the alternate feature table for a feature index.
// Offset to the table of mark glyph set definitions, from beginning of GDEF header (may be NULL).
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, scope: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, scope: Self::Args<'a>) -> Result<Self, ParseError> {
/// Match this record against a variation tuple and return the feature table substitution if it matches.
/// Match this record against a variation tuple and return the feature table substitution if it matches.
pub fn feature_by_index(&self, feature_index: u16) -> Result<&FeatureRecord, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, scope: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, cache: Self::Args<'a>) -> Result<Self, ParseError> {
// by the specification. E.g. the Samanata Devanagari font contains several non-standard values.
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, cache: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn size((scope, class2_count, value_format1, value_format2): Self::Args<'_>) -> usize {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, cache: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, scope: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, cache: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep(ctxt: &mut ReadCtxt<'_>, mark_class_count: usize) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, args: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_dep<'a>(ctxt: &mut ReadCtxt<'a>, cache: Self::Args<'a>) -> Result<Self, ParseError> {
fn read_from((start_glyph, end_glyph, start_coverage_index): (u16, u16, u16)) -> Self {
// [azul web-lift] BTreeMap not HashMap: these caches start EMPTY (cap-0) and the FIRST insert at
// shape time triggers the lifted hashbrown EMPTY-INSERT mis-lift (reserve_rehash-from-0) → the
pub fn new_layout_cache<T: LayoutTableType>(layout_table: LayoutTable<T>) -> LayoutCache<T> {