arnaucube
arnaucube/circom-compatPublic Self-hosted repository
circom-compat/src/witness/mod.rs
src/witness/mod.rsRaw
 1mod witness_calculator;
 2pub use witness_calculator::WitnessCalculator;
 3
 4mod memory;
 5pub(super) use memory::SafeMemory;
 6
 7mod circom;
 8pub(super) use circom::{CircomBase, Wasm};
 9
10#[cfg(feature = "circom-2")]
11pub(super) use circom::Circom2;
12
13pub(super) use circom::Circom;
14
15use fnv::FnvHasher;
16use std::hash::Hasher;
17
18pub(crate) fn fnv(inp: &str) -> (u32, u32) {
19    let mut hasher = FnvHasher::default();
20    hasher.write(inp.as_bytes());
21    let h = hasher.finish();
22
23    ((h >> 32) as u32, h as u32)
24}