From f5d315dbaf201b40db5b12e4568b269afcafde46 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Wed, 11 Dec 2024 21:14:11 +0100 Subject: [PATCH] Simplify --- experiments/2024-12-09/src/render/text.rs | 2 +- experiments/2024-12-09/src/view.rs | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/experiments/2024-12-09/src/render/text.rs b/experiments/2024-12-09/src/render/text.rs index 4f9804253..fef7a1ffd 100644 --- a/experiments/2024-12-09/src/render/text.rs +++ b/experiments/2024-12-09/src/render/text.rs @@ -78,7 +78,7 @@ impl TextRenderer { }, ); - for (op, selected, indent) in operations.operations().into_iter() { + for (op, selected, indent) in operations.operations() { let mut attrs = glyphon::Attrs::new(); if selected { diff --git a/experiments/2024-12-09/src/view.rs b/experiments/2024-12-09/src/view.rs index 5f91b112d..f26a888fb 100644 --- a/experiments/2024-12-09/src/view.rs +++ b/experiments/2024-12-09/src/view.rs @@ -24,15 +24,13 @@ impl OperationView { } } - pub fn operations(&self) -> Vec<(&Self, bool, usize)> { - iter::once((self, true, 0)) - .chain( - self.children - .iter() - .enumerate() - .map(|(i, op)| (op, Some(i) == self.selected, 1)), - ) - .collect() + pub fn operations(&self) -> impl Iterator { + iter::once((self, true, 0)).chain( + self.children + .iter() + .enumerate() + .map(|(i, op)| (op, Some(i) == self.selected, 1)), + ) } pub fn select_last(&mut self) { @@ -55,7 +53,6 @@ impl OperationView { self.selected .and_then(|selected| { self.operations() - .into_iter() .nth(selected) .map(|(op, _, _)| op) .cloned() @@ -64,7 +61,7 @@ impl OperationView { } fn last_index(&self) -> usize { - self.operations().len().saturating_sub(1) + self.operations().count().saturating_sub(1) } }