1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use super::{
 evaluate,
 reorder,
 tokenize,
 ElesOption
};
use anyhow::Result;

pub fn solve<F>(input: &str, literal_to_bool: F) -> Result<bool>
where
 F: Fn(&str) -> Result<bool>
{
 let eles_option = ElesOption::default();
 let tokens = tokenize(input, eles_option)?;
 let tokens = reorder(tokens)?;
 let r = evaluate(tokens, literal_to_bool)?;
 Ok(r)
}