use miden_core::proof::HashFunction;
use miden_processor::ExecutionOptions;
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct ProvingOptions {
exec_options: ExecutionOptions,
hash_fn: HashFunction,
}
impl ProvingOptions {
pub fn new(hash_fn: HashFunction) -> Self {
Self {
exec_options: ExecutionOptions::default(),
hash_fn,
}
}
pub fn with_96_bit_security(hash_fn: HashFunction) -> Self {
Self::new(hash_fn)
}
pub fn with_execution_options(mut self, exec_options: ExecutionOptions) -> Self {
self.exec_options = exec_options;
self
}
pub const fn hash_fn(&self) -> HashFunction {
self.hash_fn
}
pub const fn execution_options(&self) -> &ExecutionOptions {
&self.exec_options
}
}
impl Default for ProvingOptions {
fn default() -> Self {
Self::new(HashFunction::Blake3_256)
}
}