use witnessed::Witnessed;
pub struct V01;
pub trait Measure<Ctx: ?Sized>: Send + Sync {
type Output;
fn measure(&self, ctx: &Ctx) -> Self::Output;
}
pub trait Map01F32: Send + Sync {
type Input;
fn map(&self, value: Self::Input) -> Witnessed<f32, V01>;
}
pub trait Map01F64: Send + Sync {
type Input;
fn map(&self, value: Self::Input) -> Witnessed<f64, V01>;
}
pub trait EvalF64<Ctx: ?Sized>: Send + Sync {
fn eval(&self, ctx: &Ctx) -> f64;
}
pub trait EvalF32<Ctx: ?Sized>: Send + Sync {
fn eval(&self, ctx: &Ctx) -> f32;
}