chore: simplify ToFields trait (#154)

This commit is contained in:
Eduard S. 2025-03-20 09:38:46 +01:00 committed by GitHub
parent b1689c5b37
commit 2a2628ccbf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 66 additions and 100 deletions

View file

@ -38,8 +38,8 @@ pub const EMPTY_HASH: Hash = Hash([F::ZERO, F::ZERO, F::ZERO, F::ZERO]);
pub struct Value(pub [F; VALUE_SIZE]);
impl ToFields for Value {
fn to_fields(&self, _params: &Params) -> (Vec<F>, usize) {
(self.0.to_vec(), VALUE_SIZE)
fn to_fields(&self, _params: &Params) -> Vec<F> {
self.0.to_vec()
}
}
@ -143,8 +143,8 @@ impl Hash {
}
impl ToFields for Hash {
fn to_fields(&self, _params: &Params) -> (Vec<F>, usize) {
(self.0.to_vec(), VALUE_SIZE)
fn to_fields(&self, _params: &Params) -> Vec<F> {
self.0.to_vec()
}
}

View file

@ -364,7 +364,7 @@ impl MockMainPod {
pub fn hash_statements(statements: &[Statement], _params: &Params) -> middleware::Hash {
let field_elems = statements
.iter()
.flat_map(|statement| statement.clone().to_fields(_params).0)
.flat_map(|statement| statement.clone().to_fields(_params))
.collect::<Vec<_>>();
Hash(PoseidonHash::hash_no_pad(&field_elems).elements)
}

View file

@ -23,22 +23,10 @@ impl Statement {
}
impl ToFields for Statement {
fn to_fields(&self, _params: &Params) -> (Vec<middleware::F>, usize) {
let (native_statement_f, native_statement_f_len) = self.0.to_fields(_params);
let (vec_statementarg_f, vec_statementarg_f_len) = self
.1
.clone()
.into_iter()
.map(|statement_arg| statement_arg.to_fields(_params))
.fold((Vec::new(), 0), |mut acc, (f, l)| {
acc.0.extend(f);
acc.1 += l;
acc
});
(
[native_statement_f, vec_statementarg_f].concat(),
native_statement_f_len + vec_statementarg_f_len,
)
fn to_fields(&self, _params: &Params) -> Vec<middleware::F> {
let mut fields = self.0.to_fields(_params);
fields.extend(self.1.iter().flat_map(|arg| arg.to_fields(_params)));
fields
}
}