address review comments
This commit is contained in:
parent
0ca5a4a7a3
commit
f712de4767
4 changed files with 15 additions and 15 deletions
|
@ -125,8 +125,7 @@ fn cli_compile<T: Field>(sub_matches: &ArgMatches) -> Result<(), String> {
|
|||
)
|
||||
})?;
|
||||
|
||||
let program_flattened = artifacts.prog;
|
||||
let abi = artifacts.abi;
|
||||
let (program_flattened, abi) = artifacts.into_inner();
|
||||
|
||||
// serialize flattened program and write to binary file
|
||||
log::debug!("Serialize program");
|
||||
|
|
|
@ -25,8 +25,8 @@ use zokrates_pest_ast as pest;
|
|||
|
||||
#[derive(Debug)]
|
||||
pub struct CompilationArtifacts<T, I: IntoIterator<Item = ir::Statement<T>>> {
|
||||
pub prog: ir::ProgIterator<T, I>,
|
||||
pub abi: Abi,
|
||||
prog: ir::ProgIterator<T, I>,
|
||||
abi: Abi,
|
||||
}
|
||||
|
||||
impl<T, I: IntoIterator<Item = ir::Statement<T>>> CompilationArtifacts<T, I> {
|
||||
|
@ -38,6 +38,10 @@ impl<T, I: IntoIterator<Item = ir::Statement<T>>> CompilationArtifacts<T, I> {
|
|||
&self.abi
|
||||
}
|
||||
|
||||
pub fn into_inner(self) -> (ir::ProgIterator<T, I>, Abi) {
|
||||
(self.prog, self.abi)
|
||||
}
|
||||
|
||||
pub fn collect(self) -> CompilationArtifacts<T, Vec<ir::Statement<T>>> {
|
||||
CompilationArtifacts {
|
||||
prog: self.prog.collect(),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use crate::ir::{ProgIterator, Statement};
|
||||
use crate::ir::{Prog, ProgIterator, Statement};
|
||||
use serde_cbor;
|
||||
use std::io::{Read, Write};
|
||||
use zokrates_field::*;
|
||||
|
@ -56,7 +56,7 @@ where
|
|||
{
|
||||
struct Wrapper<U>(Cell<Option<U>>);
|
||||
|
||||
struct SerializableProgIterator<T: Serialize, I: IntoIterator<Item = crate::ir::Statement<T>>> {
|
||||
struct SerializableProgIterator<T: Serialize, I: IntoIterator<Item = Statement<T>>> {
|
||||
arguments: Vec<crate::flat_absy::FlatParameter>,
|
||||
return_count: usize,
|
||||
statements: Wrapper<I>,
|
||||
|
@ -65,7 +65,7 @@ where
|
|||
impl<T, I> Serialize for SerializableProgIterator<T, I>
|
||||
where
|
||||
T: Serialize + std::fmt::Debug,
|
||||
I: IntoIterator<Item = crate::ir::Statement<T>>,
|
||||
I: IntoIterator<Item = Statement<T>>,
|
||||
{
|
||||
fn serialize<S: Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
|
||||
use serde::ser::SerializeStruct;
|
||||
|
@ -136,8 +136,7 @@ impl
|
|||
|
||||
match curve {
|
||||
m if m == Bls12_381Field::id() => {
|
||||
let p: crate::ir::Prog<Bls12_381Field> =
|
||||
serde_cbor::from_reader(r).unwrap();
|
||||
let p: Prog<Bls12_381Field> = serde_cbor::from_reader(r).unwrap();
|
||||
|
||||
Ok(ProgEnum::Bls12_381Program(ProgIterator {
|
||||
statements: p.statements.into_iter(),
|
||||
|
@ -146,7 +145,7 @@ impl
|
|||
}))
|
||||
}
|
||||
m if m == Bn128Field::id() => {
|
||||
let p: crate::ir::Prog<Bn128Field> = serde_cbor::from_reader(r).unwrap();
|
||||
let p: Prog<Bn128Field> = serde_cbor::from_reader(r).unwrap();
|
||||
|
||||
Ok(ProgEnum::Bn128Program(ProgIterator {
|
||||
statements: p.statements.into_iter(),
|
||||
|
@ -155,8 +154,7 @@ impl
|
|||
}))
|
||||
}
|
||||
m if m == Bls12_377Field::id() => {
|
||||
let p: crate::ir::Prog<Bls12_377Field> =
|
||||
serde_cbor::from_reader(r).unwrap();
|
||||
let p: Prog<Bls12_377Field> = serde_cbor::from_reader(r).unwrap();
|
||||
|
||||
Ok(ProgEnum::Bls12_377Program(ProgIterator {
|
||||
statements: p.statements.into_iter(),
|
||||
|
@ -165,7 +163,7 @@ impl
|
|||
}))
|
||||
}
|
||||
m if m == Bw6_761Field::id() => {
|
||||
let p: crate::ir::Prog<Bw6_761Field> = serde_cbor::from_reader(r).unwrap();
|
||||
let p: Prog<Bw6_761Field> = serde_cbor::from_reader(r).unwrap();
|
||||
|
||||
Ok(ProgEnum::Bw6_761Program(ProgIterator {
|
||||
statements: p.statements.into_iter(),
|
||||
|
|
|
@ -154,8 +154,7 @@ fn compile_and_run<T: Field>(t: Tests) {
|
|||
let artifacts =
|
||||
compile::<T, _>(code, entry_point.clone(), Some(&resolver), config, &arena).unwrap();
|
||||
|
||||
let abi = artifacts.abi;
|
||||
let bin = artifacts.prog;
|
||||
let (bin, abi) = artifacts.into_inner();
|
||||
// here we do want the program in memory because we want to run many tests on it
|
||||
let bin = bin.collect();
|
||||
|
||||
|
|
Loading…
Reference in a new issue