Skip to content

Commit fe4afa2

Browse files
committed
refactor: add Library, Program with advice map constructors,
`AdviceMap` from iterator constructor.
1 parent f98186a commit fe4afa2

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

assembly/src/library/mod.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use vm_core::{
1010
debuginfo::Span,
1111
mast::{MastForest, MastNodeId},
1212
utils::{ByteReader, ByteWriter, Deserializable, DeserializationError, Serializable},
13-
Kernel,
13+
AdviceMap, Kernel,
1414
};
1515

1616
use crate::ast::{Ident, ProcedureName, QualifiedProcedureName};
@@ -88,6 +88,15 @@ impl Library {
8888

8989
Ok(Self { digest, exports, mast_forest })
9090
}
91+
92+
pub fn with_advice_map(self, advice_map: AdviceMap) -> Self {
93+
let mut mast_forest = (*self.mast_forest).clone();
94+
mast_forest.advice_map_mut().extend(advice_map);
95+
Self {
96+
mast_forest: Arc::new(mast_forest),
97+
..self
98+
}
99+
}
91100
}
92101

93102
// ------------------------------------------------------------------------------------------------

core/src/program.rs

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use super::Kernel;
88
use crate::{
99
mast::{MastForest, MastNode, MastNodeId},
1010
utils::ToElements,
11+
AdviceMap,
1112
};
1213

1314
// PROGRAM
@@ -53,6 +54,15 @@ impl Program {
5354

5455
Self { mast_forest, entrypoint, kernel }
5556
}
57+
58+
pub fn with_advice_map(self, advice_map: AdviceMap) -> Self {
59+
let mut mast_forest = (*self.mast_forest).clone();
60+
mast_forest.advice_map_mut().extend(advice_map);
61+
Self {
62+
mast_forest: Arc::new(mast_forest),
63+
..self
64+
}
65+
}
5666
}
5767

5868
// ------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)