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}