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
13#[cfg(not(feature = "circom-2"))]
14pub(super) use circom::Circom;
15
16use fnv::FnvHasher;
17use std::hash::Hasher;
18
19pub(crate) fn fnv(inp: &str) -> (u32, u32) {
20    let mut hasher = FnvHasher::default();
21    hasher.write(inp.as_bytes());
22    let h = hasher.finish();
23
24    ((h >> 32) as u32, h as u32)
25}