pub enum ParserNode {
Show 38 variants
LexerToken(Token),
Ability {
ability: Ability,
},
AbilityTree {
tree: AbilityTree,
},
Condition {
condition: Condition,
},
ContinuousEffect {
effect: ContinuousEffect,
},
Colors {
colors: Colors,
},
Cost {
cost: Cost,
},
CostModification {
cost_modification: CostModification,
},
CostModificationEffect {
cost_modification: CostModificationEffect,
},
CountSpecifier {
count: CountSpecifier,
},
CreatedTokenKind {
kind: CreatedTokenKind,
},
CreatureAction {
action: CreatureAction,
},
CreatureSubtypeList {
list: ArrayVec<CreatureSubtype, 24>,
},
Event {
event: Event,
},
EventReplacement {
replacement: EventReplacement,
},
EventSource {
source: EventSource,
},
EventSourceReference {
source: EventSourceReference,
},
ExileFollowUp {
follow_up: ExileFollowUp,
},
Imperative {
imperative: Imperative,
},
ImperativeList {
imperatives: ImperativeList,
},
ImperativeChoices {
choices: HeapArrayVec<SpellAbility, 23>,
},
KeywordAbility {
ability: KeywordAbility,
},
ManaCost {
mana_cost: ManaCost,
},
Number {
number: Number,
},
ObjectReference {
reference: ObjectReference,
},
ObjectSpecifier {
specifier: ObjectSpecifier,
},
ObjectSpecifiers {
specifiers: ObjectSpecifiers,
},
Player {
player: PlayerSpecifier,
},
PlayerAction {
action: PlayerAction,
},
PreviouslyMentionnedObject {
object: PreviouslyMentionnedObject,
},
PutCounterKind {
kind: CounterKind,
},
SpellAbility {
ability: SpellAbility,
},
Statement {
statement: Statement,
},
StaticAbilityKind {
kind: StaticAbilityKind,
},
TokenDefinition {
token: TokenLayout,
},
TriggerCondition {
condition: TriggerCondition,
},
AbilityKind {
ability: AbilityKind,
},
ZoneReference {
zone: ZoneReference,
},
}Expand description
Since this can carry entire ability trees, we need to box the biggest variants. Otherwise, this can easily blow up the stack when attempting to store multiple of them. Current size is 112 bytes, let’s try to keep it around here ?
Variants§
LexerToken(Token)
Ability
AbilityTree
Fields
§
tree: AbilityTreeCondition
ContinuousEffect
Fields
§
effect: ContinuousEffectColors
Cost
CostModification
Fields
§
cost_modification: CostModificationCostModificationEffect
Fields
§
cost_modification: CostModificationEffectCountSpecifier
Fields
§
count: CountSpecifierCreatedTokenKind
Fields
§
kind: CreatedTokenKindCreatureAction
Fields
§
action: CreatureActionCreatureSubtypeList
Fields
§
list: ArrayVec<CreatureSubtype, 24>Event
EventReplacement
Fields
§
replacement: EventReplacementEventSource
Fields
§
source: EventSourceEventSourceReference
Fields
§
source: EventSourceReferenceExileFollowUp
Fields
§
follow_up: ExileFollowUpImperative
Fields
§
imperative: ImperativeImperativeList
Fields
§
imperatives: ImperativeListImperativeChoices
Fields
§
choices: HeapArrayVec<SpellAbility, 23>KeywordAbility
Fields
§
ability: KeywordAbilityManaCost
Number
ObjectReference
Fields
§
reference: ObjectReferenceObjectSpecifier
Fields
§
specifier: ObjectSpecifierObjectSpecifiers
Fields
§
specifiers: ObjectSpecifiersPlayer
Fields
§
player: PlayerSpecifierPlayerAction
Fields
§
action: PlayerActionPreviouslyMentionnedObject
Fields
§
object: PreviouslyMentionnedObjectPutCounterKind
Fields
§
kind: CounterKindSpellAbility
Fields
§
ability: SpellAbilityStatement
StaticAbilityKind
Fields
§
kind: StaticAbilityKindTokenDefinition
Fields
§
token: TokenLayoutTriggerCondition
Fields
§
condition: TriggerConditionAbilityKind
Fields
§
ability: AbilityKindZoneReference
Fields
§
zone: ZoneReferenceTrait Implementations§
Source§impl Clone for ParserNode
impl Clone for ParserNode
Source§fn clone(&self) -> ParserNode
fn clone(&self) -> ParserNode
Returns a duplicate of the value. Read more
1.0.0 · 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 ParserNode
impl Debug for ParserNode
Source§impl From<Token> for ParserNode
impl From<Token> for ParserNode
Source§impl Idris for ParserNode
impl Idris for ParserNode
Source§impl PartialEq for ParserNode
impl PartialEq for ParserNode
impl Eq for ParserNode
impl StructuralPartialEq for ParserNode
Auto Trait Implementations§
impl Freeze for ParserNode
impl RefUnwindSafe for ParserNode
impl Send for ParserNode
impl Sync for ParserNode
impl Unpin for ParserNode
impl UnwindSafe for ParserNode
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