mod.rs 797 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /// ZK gadget implementations
  2. pub mod gadget;
  3. /// Halo2 zkas virtual machine
  4. pub mod vm;
  5. pub mod vm_stack;
  6. /// ZK circuits
  7. pub mod circuit;
  8. use halo2_proofs::{
  9. arithmetic::Field,
  10. circuit::{AssignedCell, Layouter},
  11. plonk,
  12. plonk::{Advice, Assigned, Column},
  13. };
  14. pub(in crate::zk) fn assign_free_advice<F: Field, V: Copy>(
  15. mut layouter: impl Layouter<F>,
  16. column: Column<Advice>,
  17. value: Option<V>,
  18. ) -> Result<AssignedCell<V, F>, plonk::Error>
  19. where
  20. for<'v> Assigned<F>: From<&'v V>,
  21. {
  22. layouter.assign_region(
  23. || "load private",
  24. |mut region| {
  25. region.assign_advice(
  26. || "load private",
  27. column,
  28. 0,
  29. || value.ok_or(plonk::Error::Synthesis),
  30. )
  31. },
  32. )
  33. }