From c839244d8d09f3036ebfee8eef7eb6b147e593ab Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 19 May 2026 00:10:22 +0900 Subject: fix(compile): fix various compile errors Co-Authored-By: Claude Sonnet 4.6 --- .../src/dependency_resolver/rule_watch_chain.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'crates/shirabe/src/dependency_resolver/rule_watch_chain.rs') diff --git a/crates/shirabe/src/dependency_resolver/rule_watch_chain.rs b/crates/shirabe/src/dependency_resolver/rule_watch_chain.rs index 3d04f1c..3355b29 100644 --- a/crates/shirabe/src/dependency_resolver/rule_watch_chain.rs +++ b/crates/shirabe/src/dependency_resolver/rule_watch_chain.rs @@ -3,8 +3,9 @@ use crate::dependency_resolver::rule_watch_node::RuleWatchNode; /// An extension of SplDoublyLinkedList with seek and removal of current element. +#[derive(Debug)] pub struct RuleWatchChain { - data: Vec, + data: Vec>>, current_offset: usize, } @@ -16,14 +17,26 @@ impl RuleWatchChain { } } - fn rewind(&mut self) { + pub(crate) fn rewind(&mut self) { self.current_offset = 0; } - fn next(&mut self) { + pub(crate) fn next(&mut self) { self.current_offset += 1; } + pub(crate) fn valid(&self) -> bool { + self.current_offset < self.data.len() + } + + pub(crate) fn current(&self) -> &std::rc::Rc> { + &self.data[self.current_offset] + } + + pub(crate) fn unshift(&mut self, node: std::rc::Rc>) { + self.data.insert(0, node); + } + fn key(&self) -> usize { self.current_offset } -- cgit v1.3.1