aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/rule_watch_node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/rule_watch_node.rs')
-rw-r--r--crates/shirabe/src/dependency_resolver/rule_watch_node.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/crates/shirabe/src/dependency_resolver/rule_watch_node.rs b/crates/shirabe/src/dependency_resolver/rule_watch_node.rs
index 12dd83f..6c1bada 100644
--- a/crates/shirabe/src/dependency_resolver/rule_watch_node.rs
+++ b/crates/shirabe/src/dependency_resolver/rule_watch_node.rs
@@ -57,6 +57,12 @@ impl RuleWatchNode {
self.rule.as_ref()
}
+ /// Owned clone for callers that need a `Box<dyn Rule>`. Default impl in
+ /// `RuleLiterals` returns `todo!()`; concrete rule impls override it.
+ pub fn get_rule_boxed(&self) -> Box<dyn crate::dependency_resolver::rule::Rule> {
+ self.rule.clone_rule_box()
+ }
+
pub fn get_other_watch(&self, literal: i64) -> i64 {
if self.watch1 == literal {
return self.watch2;