Validate

Trait Validate 

Source
pub trait Validate {
    // Required method
    fn validate_impl(&self, ctx: &mut ValidationCtx);

    // Provided method
    fn validate(&self) -> Result<(), ValidationReport> { ... }
}
Expand description

Pre-compilation validation of tables.

The OpenType specification describes various requirements for different tables that are awkward to encode in the type system, such as requiring certain arrays to have equal lengths. These requirements are enforced via a validation pass.

Required Methods§

Source

fn validate_impl(&self, ctx: &mut ValidationCtx)

Validate this table.

If you need to implement this directly, it should look something like:

struct MyRecord {
    my_values: Vec<u16>,
}

impl Validate for MyRecord {
    fn validate_impl(&self, ctx: &mut ValidationCtx) {
        ctx.in_table("MyRecord", |ctx| {
            ctx.in_field("my_values", |ctx| {
                if self.my_values.len() > (u16::MAX as usize) {
                    ctx.report("array is too long");
                }
            })
        })
    }
}

Provided Methods§

Source

fn validate(&self) -> Result<(), ValidationReport>

Ensure that this table is well-formed, reporting any errors.

This is an auto-generated method that calls to validate_impl and collects any errors.

Implementations on Foreign Types§

Source§

impl<T: Validate> Validate for Option<T>

Source§

impl<T: Validate> Validate for BTreeSet<T>

Source§

impl<T: Validate> Validate for Vec<T>

Implementors§

Source§

impl Validate for BaseCoord

Source§

impl Validate for CmapSubtable

Source§

impl Validate for ClipBox

Source§

impl Validate for Paint

Source§

impl Validate for CaretValue

Source§

impl Validate for Glyph

Source§

impl Validate for AnchorTable

Source§

impl Validate for write_fonts::tables::gpos::ExtensionSubtable

Source§

impl Validate for PairPos

Source§

impl Validate for PositionLookup

Source§

impl Validate for SinglePos

Source§

impl Validate for write_fonts::tables::gsub::ExtensionSubtable

Source§

impl Validate for SingleSubst

Source§

impl Validate for SubstitutionLookup

Source§

impl Validate for Ift

Available on crate feature ift only.
Source§

impl Validate for ChainedSequenceContext

Source§

impl Validate for ClassDef

Source§

impl Validate for Condition

Source§

impl Validate for CoverageTable

Source§

impl Validate for DeviceOrVariationIndex

Source§

impl Validate for FeatureParams

Source§

impl Validate for SequenceContext

Source§

impl Validate for Metadata

Source§

impl Validate for AxisValue

Source§

impl Validate for DeltaSetIndexMap

Source§

impl Validate for PackedPointNumbers

Source§

impl Validate for Avar

Source§

impl Validate for AxisValueMap

Source§

impl Validate for SegmentMaps

Source§

impl Validate for Axis

Source§

impl Validate for Base

Source§

impl Validate for BaseCoordFormat1

Source§

impl Validate for BaseCoordFormat2

Source§

impl Validate for BaseCoordFormat3

Source§

impl Validate for BaseLangSysRecord

Source§

impl Validate for BaseScript

Source§

impl Validate for BaseScriptList

Source§

impl Validate for BaseScriptRecord

Source§

impl Validate for BaseTagList

Source§

impl Validate for BaseValues

Source§

impl Validate for FeatMinMaxRecord

Source§

impl Validate for MinMax

Source§

impl Validate for Cmap0

Source§

impl Validate for Cmap2

Source§

impl Validate for Cmap4

Source§

impl Validate for Cmap6

Source§

impl Validate for Cmap8

Source§

impl Validate for Cmap10

Source§

impl Validate for Cmap12

Source§

impl Validate for Cmap13

Source§

impl Validate for Cmap14

Source§

impl Validate for Cmap

Source§

impl Validate for ConstantMapGroup

Source§

impl Validate for DefaultUvs

Source§

impl Validate for EncodingRecord

Source§

impl Validate for NonDefaultUvs

Source§

impl Validate for SequentialMapGroup

Source§

impl Validate for SubHeader

Source§

impl Validate for UnicodeRange

Source§

impl Validate for UvsMapping

Source§

impl Validate for VariationSelector

Source§

impl Validate for Affine2x3

Source§

impl Validate for BaseGlyph

Source§

impl Validate for BaseGlyphList

Source§

impl Validate for BaseGlyphPaint

Source§

impl Validate for Clip

Source§

impl Validate for ClipBoxFormat1

Source§

impl Validate for ClipBoxFormat2

Source§

impl Validate for ClipList

Source§

impl Validate for ColorIndex

Source§

impl Validate for ColorLine

Source§

impl Validate for ColorStop

Source§

impl Validate for Colr

Source§

impl Validate for Layer

Source§

impl Validate for LayerList

Source§

impl Validate for PaintColrGlyph

Source§

impl Validate for PaintColrLayers

Source§

impl Validate for PaintComposite

Source§

impl Validate for PaintGlyph

Source§

impl Validate for PaintLinearGradient

Source§

impl Validate for PaintRadialGradient

Source§

impl Validate for PaintRotate

Source§

impl Validate for PaintRotateAroundCenter

Source§

impl Validate for PaintScale

Source§

impl Validate for PaintScaleAroundCenter

Source§

impl Validate for PaintScaleUniform

Source§

impl Validate for PaintScaleUniformAroundCenter

Source§

impl Validate for PaintSkew

Source§

impl Validate for PaintSkewAroundCenter

Source§

impl Validate for PaintSolid

Source§

impl Validate for PaintSweepGradient

Source§

impl Validate for PaintTransform

Source§

impl Validate for PaintTranslate

Source§

impl Validate for PaintVarLinearGradient

Source§

impl Validate for PaintVarRadialGradient

Source§

impl Validate for PaintVarRotate

Source§

impl Validate for PaintVarRotateAroundCenter

Source§

impl Validate for PaintVarScale

Source§

impl Validate for PaintVarScaleAroundCenter

Source§

impl Validate for PaintVarScaleUniform

Source§

impl Validate for PaintVarScaleUniformAroundCenter

Source§

impl Validate for PaintVarSkew

Source§

impl Validate for PaintVarSkewAroundCenter

Source§

impl Validate for PaintVarSolid

Source§

impl Validate for PaintVarSweepGradient

Source§

impl Validate for PaintVarTransform

Source§

impl Validate for PaintVarTranslate

Source§

impl Validate for VarAffine2x3

Source§

impl Validate for VarColorIndex

Source§

impl Validate for VarColorLine

Source§

impl Validate for VarColorStop

Source§

impl Validate for ColorRecord

Source§

impl Validate for Cpal

Source§

impl Validate for Dsig

Source§

impl Validate for SignatureBlockFormat1

Source§

impl Validate for SignatureRecord

Source§

impl Validate for AxisInstanceArrays

Source§

impl Validate for Fvar

Source§

impl Validate for InstanceRecord

Source§

impl Validate for VariationAxisRecord

Source§

impl Validate for Gasp

Source§

impl Validate for GaspRange

Source§

impl Validate for AttachList

Source§

impl Validate for AttachPoint

Source§

impl Validate for CaretValueFormat1

Source§

impl Validate for CaretValueFormat2

Source§

impl Validate for CaretValueFormat3

Source§

impl Validate for Gdef

Source§

impl Validate for LigCaretList

Source§

impl Validate for LigGlyph

Source§

impl Validate for MarkGlyphSets

Source§

impl Validate for CompositeGlyph

Source§

impl Validate for Glyf

Source§

impl Validate for SimpleGlyph

Source§

impl Validate for AnchorFormat1

Source§

impl Validate for AnchorFormat2

Source§

impl Validate for AnchorFormat3

Source§

impl Validate for BaseArray

Source§

impl Validate for BaseRecord

Source§

impl Validate for Class1Record

Source§

impl Validate for Class2Record

Source§

impl Validate for ComponentRecord

Source§

impl Validate for CursivePosFormat1

Source§

impl Validate for EntryExitRecord

Source§

impl Validate for Gpos

Source§

impl Validate for LigatureArray

Source§

impl Validate for LigatureAttach

Source§

impl Validate for Mark2Array

Source§

impl Validate for Mark2Record

Source§

impl Validate for MarkArray

Source§

impl Validate for MarkBasePosFormat1

Source§

impl Validate for MarkLigPosFormat1

Source§

impl Validate for MarkMarkPosFormat1

Source§

impl Validate for MarkRecord

Source§

impl Validate for PairPosFormat1

Source§

impl Validate for PairPosFormat2

Source§

impl Validate for PairSet

Source§

impl Validate for PairValueRecord

Source§

impl Validate for PositionChainContext

Source§

impl Validate for PositionSequenceContext

Source§

impl Validate for SinglePosFormat1

Source§

impl Validate for SinglePosFormat2

Source§

impl Validate for write_fonts::tables::gpos::ValueRecord

Source§

impl Validate for AlternateSet

Source§

impl Validate for AlternateSubstFormat1

Source§

impl Validate for Gsub

Source§

impl Validate for Ligature

Source§

impl Validate for LigatureSet

Source§

impl Validate for LigatureSubstFormat1

Source§

impl Validate for MultipleSubstFormat1

Source§

impl Validate for ReverseChainSingleSubstFormat1

Source§

impl Validate for Sequence

Source§

impl Validate for SingleSubstFormat1

Source§

impl Validate for SingleSubstFormat2

Source§

impl Validate for SubstitutionChainContext

Source§

impl Validate for SubstitutionSequenceContext

Source§

impl Validate for GlyphVariationData

Source§

impl Validate for GlyphVariationDataHeader

Source§

impl Validate for Gvar

Source§

impl Validate for SharedTuples

Source§

impl Validate for Head

Source§

impl Validate for Hhea

Source§

impl Validate for Hmtx

Source§

impl Validate for LongMetric

Source§

impl Validate for Hvar

Source§

impl Validate for DesignSpaceSegment

Available on crate feature ift only.
Source§

impl Validate for EntryData

Available on crate feature ift only.
Source§

impl Validate for EntryMapRecord

Available on crate feature ift only.
Source§

impl Validate for FeatureMap

Available on crate feature ift only.
Source§

impl Validate for write_fonts::tables::ift::FeatureRecord

Available on crate feature ift only.
Source§

impl Validate for write_fonts::tables::ift::GlyphData

Available on crate feature ift only.
Source§

impl Validate for GlyphKeyedPatch

Available on crate feature ift only.
Source§

impl Validate for GlyphMap

Available on crate feature ift only.
Source§

impl Validate for GlyphPatches

Available on crate feature ift only.
Source§

impl Validate for IdStringData

Available on crate feature ift only.
Source§

impl Validate for MappingEntries

Available on crate feature ift only.
Source§

impl Validate for PatchMapFormat1

Available on crate feature ift only.
Source§

impl Validate for PatchMapFormat2

Available on crate feature ift only.
Source§

impl Validate for TableKeyedPatch

Available on crate feature ift only.
Source§

impl Validate for TablePatch

Available on crate feature ift only.
Source§

impl Validate for ChainedClassSequenceRule

Source§

impl Validate for ChainedClassSequenceRuleSet

Source§

impl Validate for ChainedSequenceContextFormat1

Source§

impl Validate for ChainedSequenceContextFormat2

Source§

impl Validate for ChainedSequenceContextFormat3

Source§

impl Validate for ChainedSequenceRule

Source§

impl Validate for ChainedSequenceRuleSet

Source§

impl Validate for CharacterVariantParams

Source§

impl Validate for ClassDefFormat1

Source§

impl Validate for ClassDefFormat2

Source§

impl Validate for ClassRangeRecord

Source§

impl Validate for ClassSequenceRule

Source§

impl Validate for ClassSequenceRuleSet

Source§

impl Validate for ConditionFormat1

Source§

impl Validate for ConditionFormat2

Source§

impl Validate for ConditionFormat3

Source§

impl Validate for ConditionFormat4

Source§

impl Validate for ConditionFormat5

Source§

impl Validate for ConditionSet

Source§

impl Validate for CoverageFormat1

Source§

impl Validate for CoverageFormat2

Source§

impl Validate for Device

Source§

impl Validate for Feature

Source§

impl Validate for FeatureList

Source§

impl Validate for write_fonts::tables::layout::FeatureRecord

Source§

impl Validate for FeatureTableSubstitution

Source§

impl Validate for FeatureTableSubstitutionRecord

Source§

impl Validate for FeatureVariationRecord

Source§

impl Validate for FeatureVariations

Source§

impl Validate for LangSys

Source§

impl Validate for LangSysRecord

Source§

impl Validate for PendingVariationIndex

Source§

impl Validate for RangeRecord

Source§

impl Validate for Script

Source§

impl Validate for ScriptList

Source§

impl Validate for ScriptRecord

Source§

impl Validate for SequenceContextFormat1

Source§

impl Validate for SequenceContextFormat2

Source§

impl Validate for SequenceContextFormat3

Source§

impl Validate for SequenceLookupRecord

Source§

impl Validate for SequenceRule

Source§

impl Validate for SequenceRuleSet

Source§

impl Validate for SizeParams

Source§

impl Validate for StylisticSetParams

Source§

impl Validate for VariationIndex

Source§

impl Validate for Loca

Source§

impl Validate for Maxp

Source§

impl Validate for DataMapRecord

Source§

impl Validate for Meta

Source§

impl Validate for Mvar

Source§

impl Validate for write_fonts::tables::mvar::ValueRecord

Source§

impl Validate for LangTagRecord

Source§

impl Validate for Name

Source§

impl Validate for NameRecord

Source§

impl Validate for Os2

Source§

impl Validate for Post

Source§

impl Validate for write_fonts::tables::sbix::GlyphData

Source§

impl Validate for Sbix

Source§

impl Validate for Strike

Source§

impl Validate for AxisRecord

Source§

impl Validate for AxisValueArray

Source§

impl Validate for AxisValueFormat1

Source§

impl Validate for AxisValueFormat2

Source§

impl Validate for AxisValueFormat3

Source§

impl Validate for AxisValueFormat4

Source§

impl Validate for AxisValueRecord

Source§

impl Validate for Stat

Source§

impl Validate for DeltaSetIndexMapFormat0

Source§

impl Validate for DeltaSetIndexMapFormat1

Source§

impl Validate for ItemVariationData

Source§

impl Validate for ItemVariationStore

Source§

impl Validate for PackedDeltas

Source§

impl Validate for RegionAxisCoordinates

Source§

impl Validate for Tuple

Source§

impl Validate for TupleVariationHeader

Source§

impl Validate for VariationRegion

Source§

impl Validate for VariationRegionList

Source§

impl Validate for Vhea

Source§

impl Validate for Vmtx

Source§

impl Validate for Vvar

Source§

impl<T: Validate> Validate for ExtensionPosFormat1<T>

Source§

impl<T: Validate> Validate for ExtensionSubstFormat1<T>

Source§

impl<T: Validate> Validate for Lookup<T>

Source§

impl<T: Validate> Validate for LookupList<T>

Source§

impl<const N: usize, T: Validate> Validate for NullableOffsetMarker<T, N>

Source§

impl<const N: usize, T: Validate> Validate for OffsetMarker<T, N>