From 2d77ec1a6aeeaedd9a4fa40a575ca42273b4a3df Mon Sep 17 00:00:00 2001 From: Kasey White Date: Tue, 21 Mar 2023 16:32:06 -0400 Subject: [PATCH] add merge function --- crates/aiken-lang/src/air.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/crates/aiken-lang/src/air.rs b/crates/aiken-lang/src/air.rs index a641e101..9750c8a7 100644 --- a/crates/aiken-lang/src/air.rs +++ b/crates/aiken-lang/src/air.rs @@ -432,12 +432,22 @@ impl<'a> AirEnv<'a> { } } - pub fn int(mut self, value: String) -> Self { - self.air.push(Air::Int { + pub fn merge(mut self, other: AirEnv) -> Self { + self.air.extend(other.air.into_iter()); + self + } + + pub fn int(self, value: String) -> Self { + let mut air = self.air.clone(); + air.push(Air::Int { scope: self.scope.clone(), value, }); - self + AirEnv { + id_gen: self.id_gen, + scope: self.scope, + air, + } } pub fn string(mut self, value: String) -> Self { @@ -456,7 +466,5 @@ impl<'a> AirEnv<'a> { self } - // pub fn sequence(mut self, expressions: AirEnv) -> Self{ - - // } + // pub fn sequence(mut self, expressions: AirEnv) -> Self {} }