proof_of_sql/base/database/table_evaluation.rs
use crate::base::scalar::Scalar;
use alloc::vec::Vec;
/// The result of evaluating a table
#[derive(Debug, Eq, PartialEq, Clone)]
pub struct TableEvaluation<S: Scalar> {
/// Evaluation of each column in the table
column_evals: Vec<S>,
/// Evaluation of an all-one column with the same length as the table
one_eval: S,
}
impl<S: Scalar> TableEvaluation<S> {
/// Creates a new [`TableEvaluation`].
#[must_use]
pub fn new(column_evals: Vec<S>, one_eval: S) -> Self {
Self {
column_evals,
one_eval,
}
}
/// Returns the evaluation of each column in the table.
#[must_use]
pub fn column_evals(&self) -> &[S] {
&self.column_evals
}
/// Returns the evaluation of an all-one column with the same length as the table.
#[must_use]
pub fn one_eval(&self) -> S {
self.one_eval
}
}