Read nom Input From Inside A Struct
Code
use nom::character::complete::alphanumeric1;
use nom::character::complete::space1;
use nom::multi::separated_list1;
use nom::IResult;
struct Parser {
source: Option<String>
}
impl Parser {
pub fn parse(&self) -> IResult<&str, Vec<&str>> {
let (source, result) = separated_list1(
space1, alphanumeric1
)(self.source.as_ref().unwrap().as_str())?;
Ok((source, result))
}
}
fn main() {
let source = "the quick brown fox".to_string();
let p = Parser {
source: Some(source)
};
dbg!(p.parse().unwrap().1);
}
Results
[neopolitan_code_run:32] p.parse().unwrap().1 = [
"the",
"quick",
"brown",
"fox",
]