use super::string_range::StringRange; use crate::tree::command_node::CommandNodeTrait; pub struct ParsedCommandNode { node: Box>, range: StringRange, } impl ParsedCommandNode { fn new(node: dyn CommandNodeTrait, range: StringRange) -> Self { Self { node, range } } fn node(&self) -> &dyn CommandNodeTrait { &self.node } fn range(&self) -> &StringRange { &self.range } } impl Clone for ParsedCommandNode { fn clone_from(&mut self, source: &Self) { Self { node: self.node.clone(), range: self.range.clone(), } } }