pub trait Evaluate: Clone {
type Target;
type Error;
type Context: PartialContext<Self::Target>;
// Required method
fn evaluate(
&self,
ctx: &Self::Context,
under_binders: bool,
) -> Result<Self::Target, Self::Error>;
// Provided methods
fn normalise(
&self,
ctx: &Self::Context,
under_binders: bool,
) -> Result<Self, Self::Error>
where Self::Target: Into<Self> { ... }
fn evaluate_closed(
&self,
under_binders: bool,
) -> Result<Self::Target, Self::Error> { ... }
fn normalise_closed(&self, under_binders: bool) -> Result<Self, Self::Error>
where Self::Target: Into<Self> { ... }
}Required Associated Types§
Required Methods§
fn evaluate( &self, ctx: &Self::Context, under_binders: bool, ) -> Result<Self::Target, Self::Error>
Provided Methods§
fn normalise( &self, ctx: &Self::Context, under_binders: bool, ) -> Result<Self, Self::Error>
fn evaluate_closed( &self, under_binders: bool, ) -> Result<Self::Target, Self::Error>
fn normalise_closed(&self, under_binders: bool) -> Result<Self, Self::Error>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.