use serde::{Deserialize, Serialize};
use crate::core::fields::m31::BaseField;
use crate::core::vcs::MerkleHasher;
use crate::prover::backend::{Col, ColumnOps};
pub trait MerkleOps<H: MerkleHasher>:
ColumnOps<BaseField> + ColumnOps<H::Hash> + for<'de> Deserialize<'de> + Serialize
{
fn commit_on_layer(
log_size: u32,
prev_layer: Option<&Col<Self, H::Hash>>,
columns: &[&Col<Self, BaseField>],
) -> Col<Self, H::Hash>;
}