pub trait Implementable {
// Required methods
fn dependencies(&self) -> Dependencies;
fn implement<'b, T, I, S>(
&self,
nested: &mut Iterative<'b, S, u64>,
local_arrangements: &HashMap<String, Variable<Iterative<'b, S, u64>, Vec<Value>, isize>>,
context: &mut I,
) -> (Implemented<'b, S>, ShutdownHandle)
where T: Timestamp + Lattice,
I: ImplContext<T>,
S: Scope<Timestamp = T>;
// Provided methods
fn into_bindings(&self) -> Vec<Binding> { ... }
fn datafy(&self) -> Vec<(Eid, Aid, Value)> { ... }
}
Expand description
A type that can be implemented as a simple relation.
Required Methods§
Sourcefn dependencies(&self) -> Dependencies
fn dependencies(&self) -> Dependencies
Returns names of any other implementable things that need to be available before implementing this one. Attributes are not mentioned explicitley as dependencies.
Provided Methods§
Sourcefn into_bindings(&self) -> Vec<Binding>
fn into_bindings(&self) -> Vec<Binding>
Transforms an implementable into an equivalent set of bindings that can be unified by Hector.
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.