From 7ed771ba5ba2236ce726b05f309644bf0822398a Mon Sep 17 00:00:00 2001 From: ada Date: Wed, 28 Oct 2020 01:26:44 +0100 Subject: [PATCH] added zkcircuit to env --- lisp/lisp.rs | 14 +++++++++----- lisp/types.rs | 8 ++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lisp/lisp.rs b/lisp/lisp.rs index ee5c4e9be..9d8d44356 100644 --- a/lisp/lisp.rs +++ b/lisp/lisp.rs @@ -21,6 +21,7 @@ extern crate regex; mod types; use crate::types::MalErr::{ErrMalVal, ErrString}; use crate::types::MalVal::{Bool, Func, Hash, List, MalFunc, Nil, Str, Sym, Vector}; +use crate::types::ZKCircuit; use crate::types::{error, format_error, MalArgs, MalErr, MalRet, MalVal}; mod env; mod printer; @@ -29,11 +30,6 @@ use crate::env::{env_bind, env_find, env_get, env_new, env_set, env_sets, Env}; #[macro_use] mod core; -// zk circuit -fn zkcircuit_load(val: &MalVal) -> MalRet { - Ok(val.clone()) -} - // read fn read(str: &str) -> MalRet { reader::read_str(str.to_string()) @@ -272,6 +268,14 @@ fn eval(mut ast: MalVal, mut env: Env) -> MalRet { Sym(ref a0sym) if a0sym == "zk*" => { let (a1, a2) = (l[1].clone(), l[2].clone()); println!("---> {:?} {:?}", a1, a2); + let zk_circuit = ZKCircuit{ + name: a1.pr_str(true), + constraints: Vec::new(), + private: Vec::new(), + public: Vec::new() + }; + env_set(&env, l[1].clone(), MalVal::Zk(zk_circuit)); + // TODO add alloc name and nested eval to zkcircuit Ok(MalFunc { eval: eval, diff --git a/lisp/types.rs b/lisp/types.rs index 07e8968bf..ddbe51d3f 100644 --- a/lisp/types.rs +++ b/lisp/types.rs @@ -45,10 +45,10 @@ pub enum MalVal { #[derive(Debug, Clone)] pub struct ZKCircuit { - name: String, - constraints: Vec, - private: Vec, - public: Vec, + pub name: String, + pub constraints: Vec, + pub private: Vec, + pub public: Vec, } #[derive(Debug)]