mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 11:46:42 +01:00
input: better dsl error handling
This commit is contained in:
parent
8bfd1a23a1
commit
496a9202d5
2 changed files with 6 additions and 6 deletions
|
|
@ -51,19 +51,19 @@ impl<'state, S, C: DslCommand<'state, S>, I: DslInput> KeyMap<'state, S, C, I> f
|
|||
while let Some(next) = iter.next() {
|
||||
match next {
|
||||
Token { value: Value::Exp(0, exp_iter), .. } => {
|
||||
let mut exp_iter = exp_iter.clone();
|
||||
match exp_iter.next() {
|
||||
let mut e = exp_iter.clone();
|
||||
match e.next() {
|
||||
Some(Token { value: Value::Sym(binding), .. }) => {
|
||||
if input.matches_dsl(binding) {
|
||||
if let Some(command) = C::try_from_expr(state, &mut exp_iter) {
|
||||
if let Some(command) = C::try_from_expr(state, &mut e) {
|
||||
return Some(command)
|
||||
}
|
||||
}
|
||||
},
|
||||
_ => panic!("invalid config (expected symbol)")
|
||||
_ => panic!("invalid config (expected symbol, got: {exp_iter:?})")
|
||||
}
|
||||
},
|
||||
_ => panic!("invalid config (expected expression)")
|
||||
_ => panic!("invalid config (expected expression, got: {next:?})")
|
||||
}
|
||||
}
|
||||
None
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ pub trait ViewContext<'state, E: Output + 'state>: Send + Sync
|
|||
match value {
|
||||
Value::Sym(_) => self.get_content_sym(value),
|
||||
Value::Exp(_, _) => self.get_content_exp(value),
|
||||
_ => panic!("only :symbols and (expressions) accepted here")
|
||||
_ => panic!("only :symbols and (expressions) accepted here, got: {value:?}")
|
||||
}
|
||||
}
|
||||
fn get_content_sym <'source: 'state> (&'state self, value: &Value<'source>)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue