summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-05-10 14:48:22 +0200
committerMatthias Beyer <mail@beyermatthias.de>2021-05-11 10:47:59 +0200
commit2b65556f90a1dd007a435e1aa5a5261da58c6a02 (patch)
tree93e58c298593cac7f7f918bbc2f5d8ed30cb570a
parent79fa2aebeb9c5daafd72e061466de97c4fcacc36 (diff)
Refactor: Use moving iterator for ParsedLog
This patch replaces the ParsedLog::iter() function with ParsedLog::into_iter(), to use a moving iteration rather than a iteration by reference, because iterating by reference is not necessary at all. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
-rw-r--r--src/commands/build.rs5
-rw-r--r--src/commands/db.rs4
-rw-r--r--src/log/parser.rs4
3 files changed, 6 insertions, 7 deletions
diff --git a/src/commands/build.rs b/src/commands/build.rs
index b8a0727..84a8be6 100644
--- a/src/commands/build.rs
+++ b/src/commands/build.rs
@@ -408,11 +408,10 @@ pub async fn build(
data.1.version.to_string().red()
)?;
- let parsed_log = crate::log::ParsedLog::from_str(&data.0.log_text)?;
let mut last_phase = None;
let mut error_catched = false;
- let lines = parsed_log
- .iter()
+ let lines = crate::log::ParsedLog::from_str(&data.0.log_text)?
+ .into_iter()
.map(|line_item| match line_item {
LogItem::Line(s) => Ok(String::from_utf8(s.to_vec())?.normal()),
LogItem::Progress(u) => Ok(format!("#BUTIDO:PROGRESS:{}", u).bright_black()),
diff --git a/src/commands/db.rs b/src/commands/db.rs
index 062858b..896caa1 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -605,7 +605,7 @@ fn job(conn_cfg: DbConnectionConfig, config: &Configuration, matches: &ArgMatche
if show_log {
let log = parsed_log
- .iter()
+ .into_iter()
.map(|line_item| line_item.display().map(|d| d.to_string()))
.collect::<Result<Vec<_>>>()?
.into_iter() // ugly, but hey... not important right now.
@@ -644,7 +644,7 @@ fn log_of(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
.first::<String>(&conn)
.map_err(Error::from)
.and_then(|s| crate::log::ParsedLog::from_str(&s))?
- .iter()
+ .into_iter()
.map(|line| line.display().and_then(|d| writeln!(lock, "{}", d).map_err(Error::from)))
.collect::<Result<Vec<()>>>()
.map(|_| ())
diff --git a/src/log/parser.rs b/src/log/parser.rs
index 764b732..f83bdfb 100644
--- a/src/log/parser.rs
+++ b/src/log/parser.rs
@@ -63,8 +63,8 @@ impl ParsedLog {
.next()
}
- pub fn iter(&self) -> impl Iterator<Item = &LogItem> {
- self.0.iter()
+ pub fn into_iter(self) -> impl Iterator<Item = LogItem> {
+ self.0.into_iter()
}
}