batch_mode_token_expansion_traits/
expander_traits.rs

1// ---------------- [ File: batch-mode-token-expansion-traits/src/expander_traits.rs ]
2crate::ix!();
3
4/// This trait we use as a generic expander of tokens. It leverages a collection of
5/// TokenExpanderAxes and has its implementation typically automatically generated by the
6/// TokenExpansionAxis proc macro
7pub trait TokenExpander
8: SystemMessageGoal 
9+ GetTokenExpansionAxes
10+ Named 
11+ Default
12+ Debug
13+ Send
14+ Sync
15{ }
16
17/// This trait marks types which represent expanded tokens.
18/// It is helpful to have a way to treat them generically
19pub trait ExpandedToken: Debug + Send + Sync + LoadFromFile {
20
21    /// which type of expander produced this token?
22    type Expander: TokenExpander;
23}