Make functions to access operator and children of a Node public.
This commit is contained in:
parent
e0d4ef24e5
commit
d2f3d415df
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* Public immutable and mutable accessor functions to the operator and children of a Node.
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -378,14 +378,30 @@ impl Node {
|
|||||||
self.eval_empty_with_context_mut(&mut HashMapContext::new())
|
self.eval_empty_with_context_mut(&mut HashMapContext::new())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn children(&self) -> &[Node] {
|
/// Returns the children of this node as a slice.
|
||||||
|
pub fn children(&self) -> &[Node] {
|
||||||
&self.children
|
&self.children
|
||||||
}
|
}
|
||||||
|
|
||||||
fn operator(&self) -> &Operator {
|
/// Returns the operator associated with this node.
|
||||||
|
pub fn operator(&self) -> &Operator {
|
||||||
&self.operator
|
&self.operator
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns a mutable reference to the vector containing the children of this node.
|
||||||
|
///
|
||||||
|
/// WARNING: Writing to this might have unexpected results, as some operators require certain amounts and types of arguments.
|
||||||
|
pub fn children_mut(&mut self) -> &mut Vec<Node> {
|
||||||
|
&mut self.children
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a mutable reference to the operator associated with this node.
|
||||||
|
///
|
||||||
|
/// WARNING: Writing to this might have unexpected results, as some operators require different amounts and types of arguments.
|
||||||
|
pub fn operator_mut(&mut self) -> &mut Operator {
|
||||||
|
&mut self.operator
|
||||||
|
}
|
||||||
|
|
||||||
fn has_enough_children(&self) -> bool {
|
fn has_enough_children(&self) -> bool {
|
||||||
Some(self.children().len()) == self.operator().max_argument_amount()
|
Some(self.children().len()) == self.operator().max_argument_amount()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user