nom_config_in/entry/
def_bool.rs1use nom::{bytes::complete::tag, combinator::map, multi::many1, sequence::tuple, IResult};
2use serde::Serialize;
3
4use crate::{symbol::parse_constant_symbol, util::ws, ConfigInInput};
5
6use super::r#type::parse_bool_value;
7
8#[derive(Debug, Clone, Serialize, PartialEq, Default)]
9pub struct DefBool {
10 pub symbol: String,
11 pub values: Vec<String>,
12}
13
14pub fn parse_def_bool(input: ConfigInInput) -> IResult<ConfigInInput, DefBool> {
15 map(
16 tuple((
17 ws(tag("define_bool")),
18 ws(parse_constant_symbol),
19 many1(map(parse_bool_value, |d| d.to_string())),
20 )),
21 |(_, e, i)| DefBool {
22 symbol: e.to_string(),
23 values: i,
24 },
25 )(input)
26}