pub struct FeatureForm {
pub head: String,
pub fields: Vec<FieldValue>,
}Expand description
One feature expression form or one operation: a head word and its field
values, in the order of FEATURE_EXPRESSION_FORMS or OPERATION_FORMS.
Fields§
§head: StringThe form’s head word, such as precedence or pushMode.
fields: Vec<FieldValue>The field values in table order.
Implementations§
Source§impl FeatureForm
impl FeatureForm
Sourcepub fn new(head: impl Into<String>, fields: Vec<FieldValue>) -> Self
pub fn new(head: impl Into<String>, fields: Vec<FieldValue>) -> Self
Builds a form from its head and field values.
Sourcepub fn spec(&self) -> FormFields
pub fn spec(&self) -> FormFields
The table fields of this form, as an expression form or an operation.
Sourcepub fn field(&self, key: &str) -> Option<&FieldValue>
pub fn field(&self, key: &str) -> Option<&FieldValue>
The value of the field key.
Sourcepub fn expression(&self, key: &str) -> Option<&GrammarExpr>
pub fn expression(&self, key: &str) -> Option<&GrammarExpr>
The expression of the field key.
Sourcepub fn expressions(&self, key: &str) -> &[GrammarExpr]
pub fn expressions(&self, key: &str) -> &[GrammarExpr]
The expression list of the field key.
Sourcepub fn operations(&self, key: &str) -> Option<&[Self]>
pub fn operations(&self, key: &str) -> Option<&[Self]>
The operation list or block of the field key; None for an absent block.
Sourcepub fn for_each_expression<'a>(
&'a self,
visit: &mut impl FnMut(&'a GrammarExpr),
)
pub fn for_each_expression<'a>( &'a self, visit: &mut impl FnMut(&'a GrammarExpr), )
Every grammar expression this form holds directly, operations included.
Sourcepub fn map_expressions(&mut self, map: &mut impl FnMut(&mut GrammarExpr))
pub fn map_expressions(&mut self, map: &mut impl FnMut(&mut GrammarExpr))
Rewrites every grammar expression this form holds, operations included.
Trait Implementations§
Source§impl Clone for FeatureForm
impl Clone for FeatureForm
Source§fn clone(&self) -> FeatureForm
fn clone(&self) -> FeatureForm
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FeatureForm
impl Debug for FeatureForm
impl Eq for FeatureForm
Source§impl PartialEq for FeatureForm
impl PartialEq for FeatureForm
impl StructuralPartialEq for FeatureForm
Auto Trait Implementations§
impl Freeze for FeatureForm
impl RefUnwindSafe for FeatureForm
impl Send for FeatureForm
impl Sync for FeatureForm
impl Unpin for FeatureForm
impl UnsafeUnpin for FeatureForm
impl UnwindSafe for FeatureForm
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.