/// ZK gadget implementations pub mod gadget; /// Halo2 zkas virtual machine pub mod vm; pub mod vm_stack; /// ZK circuits pub mod circuit; use halo2_proofs::{ arithmetic::Field, circuit::{AssignedCell, Layouter}, plonk, plonk::{Advice, Assigned, Column}, }; pub(in crate::zk) fn assign_free_advice( mut layouter: impl Layouter, column: Column, value: Option, ) -> Result, plonk::Error> where for<'v> Assigned: From<&'v V>, { layouter.assign_region( || "load private", |mut region| { region.assign_advice( || "load private", column, 0, || value.ok_or(plonk::Error::Synthesis), ) }, ) }