Quality-of-life refactoring

This commit is contained in:
2023-07-05 23:19:54 -05:00
parent 2aac110900
commit 576759cb27
2 changed files with 32 additions and 13 deletions
+23 -1
View File
@@ -108,7 +108,7 @@ pub enum Node {
ArrayRef(ArrayRef),
Name(String),
Address(String),
Expr(Box<Node>, Vec<(Operator, Node)>),
Expr(BoxNode, Vec<(Operator, Node)>),
}
impl From<i32> for Node {
@@ -123,5 +123,27 @@ impl From<&str> for Node {
}
}
#[repr(transparent)]
#[derive(PartialEq, Clone, Debug)]
pub struct BoxNode(pub Box<Node>);
impl From<i32> for BoxNode {
fn from(val: i32) -> Self {
BoxNode(Box::from(Node::Number(val)))
}
}
impl From<Node> for BoxNode {
fn from(val: Node) -> Self {
BoxNode(Box::from(val))
}
}
impl From<BoxNode> for Node {
fn from(val: BoxNode) -> Self {
*(val.0)
}
}
#[derive(Eq, PartialEq, Clone, Debug)]
pub struct ArrayRef {}