From 2d474e91e49c7343d28198eff2b5bbbed9afbcee Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 10 Jun 2026 02:41:34 +0900 Subject: feat(phase-c): resolve cross-module phase-b TODOs --- .../shirabe/src/dependency_resolver/decisions.rs | 34 ++++------------------ 1 file changed, 5 insertions(+), 29 deletions(-) (limited to 'crates/shirabe/src/dependency_resolver/decisions.rs') diff --git a/crates/shirabe/src/dependency_resolver/decisions.rs b/crates/shirabe/src/dependency_resolver/decisions.rs index 3b82883..81f0088 100644 --- a/crates/shirabe/src/dependency_resolver/decisions.rs +++ b/crates/shirabe/src/dependency_resolver/decisions.rs @@ -11,7 +11,6 @@ pub struct Decisions { pub(crate) pool: std::rc::Rc>, pub(crate) decision_map: IndexMap, pub(crate) decision_queue: Vec<(i64, std::rc::Rc>)>, - iterator_cursor: Option, } impl std::fmt::Debug for Decisions { @@ -32,7 +31,6 @@ impl Decisions { pool, decision_map: IndexMap::new(), decision_queue: Vec::new(), - iterator_cursor: None, } } @@ -154,33 +152,6 @@ impl Decisions { self.decision_queue.len() } - pub fn rewind(&mut self) { - if self.decision_queue.is_empty() { - self.iterator_cursor = None; - } else { - self.iterator_cursor = Some(self.decision_queue.len() - 1); - } - } - - pub fn current(&self) -> Option<&(i64, std::rc::Rc>)> { - self.iterator_cursor - .and_then(|cursor| self.decision_queue.get(cursor)) - } - - pub fn key(&self) -> Option { - self.iterator_cursor - } - - pub fn next(&mut self) { - self.iterator_cursor = self - .iterator_cursor - .and_then(|cursor| if cursor > 0 { Some(cursor - 1) } else { None }); - } - - pub fn valid(&self) -> bool { - self.iterator_cursor.is_some() && self.current().is_some() - } - pub fn is_empty(&self) -> bool { self.decision_queue.is_empty() } @@ -227,6 +198,11 @@ impl Decisions { str } + + // Reverse iteration: newest-first. + pub fn iter(&self) -> impl Iterator>)> { + self.decision_queue.iter().rev() + } } impl fmt::Display for Decisions { -- cgit v1.3.1