use ff::PrimeField;
#[derive(Clone, Debug)]
pub struct FileProofWitness<F: PrimeField> {
pub leaf: F,
pub file_siblings: Vec<F>,
pub file_root: F,
pub actual_depth: usize,
pub agg_siblings: Vec<F>,
pub ledger_index: usize,
}
#[derive(Debug, Clone)]
pub struct CircuitWitness<F: PrimeField> {
pub witnesses: Vec<FileProofWitness<F>>,
pub(crate) num_real_files: usize,
}
impl<F: PrimeField> CircuitWitness<F> {
pub fn new(witnesses: Vec<FileProofWitness<F>>, num_real_files: usize) -> Self {
Self {
witnesses,
num_real_files,
}
}
pub fn witnesses(&self) -> &[FileProofWitness<F>] {
&self.witnesses
}
pub(crate) fn num_real_files(&self) -> usize {
self.num_real_files
}
}