pub struct GrammarRule {
pub name: String,
pub expr: GrammarExpr,
pub kind: RuleKind,
pub concept: Option<String>,
pub source_names: Vec<GrammarSourceName>,
pub doc: Option<String>,
pub attributes: RuleAttributes,
}Expand description
A named grammar rule.
Fields§
§name: StringRule name.
expr: GrammarExprRule expression.
kind: RuleKindRule participation kind.
concept: Option<String>Optional concept-ontology alignment.
source_names: Vec<GrammarSourceName>The names the rule has in the grammars it was merged from.
doc: Option<String>Optional free-text documentation or comment.
attributes: RuleAttributesParameters, channel, modes and action of the feature union.
Implementations§
Source§impl GrammarRule
impl GrammarRule
Sourcepub fn new(name: impl Into<String>, expr: GrammarExpr) -> Self
pub fn new(name: impl Into<String>, expr: GrammarExpr) -> Self
Builds a normal grammar rule.
Sourcepub fn with_attributes(self, attributes: RuleAttributes) -> Self
pub fn with_attributes(self, attributes: RuleAttributes) -> Self
Returns this rule with feature union attributes.
Sourcepub const fn with_kind(self, kind: RuleKind) -> Self
pub const fn with_kind(self, kind: RuleKind) -> Self
Returns this rule with a different rule kind.
Sourcepub fn with_concept(self, concept: impl Into<String>) -> Self
pub fn with_concept(self, concept: impl Into<String>) -> Self
Returns this rule with concept-ontology alignment.
Sourcepub fn with_source_names(self, source_names: Vec<GrammarSourceName>) -> Self
pub fn with_source_names(self, source_names: Vec<GrammarSourceName>) -> Self
Returns this rule with the names it has in the grammars it was merged from.
Sourcepub fn with_doc(self, doc: impl Into<String>) -> Self
pub fn with_doc(self, doc: impl Into<String>) -> Self
Returns this rule with documentation text.
Sourcepub const fn expr(&self) -> &GrammarExpr
pub const fn expr(&self) -> &GrammarExpr
Rule expression.
Sourcepub fn source_names(&self) -> &[GrammarSourceName]
pub fn source_names(&self) -> &[GrammarSourceName]
The names the rule has in the grammars it was merged from.
Trait Implementations§
Source§impl Clone for GrammarRule
impl Clone for GrammarRule
Source§fn clone(&self) -> GrammarRule
fn clone(&self) -> GrammarRule
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 GrammarRule
impl Debug for GrammarRule
impl Eq for GrammarRule
Source§impl PartialEq for GrammarRule
impl PartialEq for GrammarRule
impl StructuralPartialEq for GrammarRule
Auto Trait Implementations§
impl Freeze for GrammarRule
impl RefUnwindSafe for GrammarRule
impl Send for GrammarRule
impl Sync for GrammarRule
impl Unpin for GrammarRule
impl UnsafeUnpin for GrammarRule
impl UnwindSafe for GrammarRule
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.