diff options
Diffstat (limited to 'src/log/parser.rs')
-rw-r--r-- | src/log/parser.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/log/parser.rs b/src/log/parser.rs index 6dcb9e3..764b732 100644 --- a/src/log/parser.rs +++ b/src/log/parser.rs @@ -38,16 +38,19 @@ where pub struct ParsedLog(Vec<LogItem>); -impl ParsedLog { - pub fn build_from<S: AsRef<str>>(s: S) -> Result<Self> { +impl FromStr for ParsedLog { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result<Self> { let p = parser(); - s.as_ref() - .lines() + s.lines() .map(|line| p.parse(line.as_bytes()).map_err(Error::from)) .collect::<Result<Vec<_>>>() .map(ParsedLog) } +} +impl ParsedLog { pub fn is_successfull(&self) -> Option<bool> { self.0 .iter() |