Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::{Evaluation, Result, Value};

pub struct Next {
    prefix: String,
    func: Option<Box<dyn FnOnce(Value) -> Result<Evaluation>>>,
}
impl Next {
    pub fn call(self, value: Value) -> Result<Evaluation> {
        self.func.map_or(Ok(Evaluation::new()), |f| match f(value) {
            Ok(eval) => eval.prefix(&self.prefix),
            Err(err) => Err(err),
        })
    }
}