nom_config_in/entry/
hwaddr.rs1use nom::{bytes::complete::tag, combinator::map, sequence::tuple, IResult};
2use serde::Serialize;
3
4use crate::{
5 symbol::{parse_constant_symbol, Symbol},
6 util::ws,
7 ConfigInInput,
8};
9
10use super::comment::parse_prompt_option;
11
12#[derive(Debug, Clone, Serialize, PartialEq)]
13pub struct Hwaddr {
14 pub prompt: String,
15 pub symbol: Symbol,
16 pub value: String,
17}
18
19pub fn parse_hwaddr(input: ConfigInInput) -> IResult<ConfigInInput, Hwaddr> {
20 map(
21 tuple((
22 ws(tag("hwaddr")),
23 ws(parse_prompt_option),
24 ws(parse_constant_symbol),
25 ws(parse_constant_symbol),
26 )),
27 |(_, prompt, sym, value)| Hwaddr {
28 prompt: prompt.to_string(),
29 symbol: sym.to_string(),
30 value: value.fragment().to_string(),
31 },
32 )(input)
33}