pub struct FeatureFile {
pub statements: Vec<ToplevelItem>,
}Expand description
A complete OpenType Feature File.
This is the root structure representing a parsed .fea file, containing a sequence of top-level statements such as glyph class definitions, feature blocks, lookup blocks, and table definitions.
§Examples
use fea_rs_ast::FeatureFile;
let fea_code = "languagesystem DFLT dflt;";
let feature_file = FeatureFile::try_from(fea_code).unwrap();Fields§
§statements: Vec<ToplevelItem>The top-level statements in the feature file
Implementations§
Source§impl FeatureFile
impl FeatureFile
Sourcepub fn new(statements: Vec<ToplevelItem>) -> Self
pub fn new(statements: Vec<ToplevelItem>) -> Self
Creates a new FeatureFile from a list of top-level statements.
Sourcepub fn iter(&self) -> impl Iterator<Item = &ToplevelItem>
pub fn iter(&self) -> impl Iterator<Item = &ToplevelItem>
Returns an iterator over the top-level statements in the file.
Sourcepub fn new_from_fea(
features: &str,
glyph_names: Option<&[&str]>,
project_root: Option<impl Into<PathBuf>>,
) -> Result<Self, Error>
pub fn new_from_fea( features: &str, glyph_names: Option<&[&str]>, project_root: Option<impl Into<PathBuf>>, ) -> Result<Self, Error>
Parses a feature file from a string with optional glyph name resolution.
§Arguments
features- The feature file source code as a stringglyph_names- Optional list of glyph names for validation and range expansionproject_root- Optional project root directory for resolvingincludestatements
§Examples
use fea_rs_ast::FeatureFile;
let fea_code = "languagesystem DFLT dflt;";
let feature_file = FeatureFile::new_from_fea(
fea_code,
None::<&[&str]>,
None::<&str>,
).unwrap();Trait Implementations§
Source§impl AsFea for FeatureFile
impl AsFea for FeatureFile
Source§impl From<ParseTree> for FeatureFile
impl From<ParseTree> for FeatureFile
Source§impl TryFrom<&str> for FeatureFile
Turn a string into a FeatureFile
impl TryFrom<&str> for FeatureFile
Turn a string into a FeatureFile
Only suitable for simple cases and testing; does not resolve glyph name ranges or includes.
Auto Trait Implementations§
impl Freeze for FeatureFile
impl RefUnwindSafe for FeatureFile
impl Send for FeatureFile
impl Sync for FeatureFile
impl Unpin for FeatureFile
impl UnsafeUnpin for FeatureFile
impl UnwindSafe for FeatureFile
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.