sipha_error/expected.rs
1//! Expected token description types.
2
3use sipha_core::traits::TokenKind;
4
5/// Type alias for expected token alternatives.
6type ExpectedVec<K> = Vec<Expected<K>>;
7
8/// Expected token description.
9#[derive(Clone, Debug)]
10pub enum Expected<K: TokenKind> {
11 /// One explicit token kind.
12 Single(K),
13 /// Static set of acceptable kinds.
14 Set(&'static [K]),
15 /// Dynamic set computed at runtime.
16 Dynamic(Vec<K>),
17 /// Multiple alternatives that were all tried and failed.
18 #[allow(clippy::type_complexity)]
19 Multiple(ExpectedVec<K>),
20}