diff options
-rw-r--r-- | src/endpoint/scheduler.rs | 3 | ||||
-rw-r--r-- | src/log/item.rs | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/endpoint/scheduler.rs b/src/endpoint/scheduler.rs index 5a00c99..2374aa9 100644 --- a/src/endpoint/scheduler.rs +++ b/src/endpoint/scheduler.rs @@ -426,8 +426,7 @@ impl<'a> LogReceiver<'a> { Ok({ accu.iter() - .map(crate::log::LogItem::display) - .map_ok(|d| d.to_string()) + .map(crate::log::LogItem::raw) .collect::<Result<Vec<String>>>()? .join("\n") }) diff --git a/src/log/item.rs b/src/log/item.rs index 2887841..d49c51b 100644 --- a/src/log/item.rs +++ b/src/log/item.rs @@ -8,6 +8,7 @@ // SPDX-License-Identifier: EPL-2.0 // +use anyhow::Error; use anyhow::Result; use colored::Colorize; @@ -37,6 +38,16 @@ impl LogItem { LogItem::State(Err(s)) => Ok(Display(format!("#BUTIDO:STATE:ERR:{}", s).red())), } } + + pub fn raw(&self) -> Result<String> { + match self { + LogItem::Line(s) => String::from_utf8(s.to_vec()).map_err(Error::from), + LogItem::Progress(u) => Ok(format!("#BUTIDO:PROGRESS:{}", u)), + LogItem::CurrentPhase(p) => Ok(format!("#BUTIDO:PHASE:{}", p)), + LogItem::State(Ok(())) => Ok("#BUTIDO:STATE:OK".to_string()), + LogItem::State(Err(s)) => Ok(format!("#BUTIDO:STATE:ERR:{}", s)), + } + } } #[derive(parse_display::Display)] |