pub enum Binding {
Stream,
Derived,
Action,
}Expand description
The binding a compute is used under — this decides which envelopes are legal.
Variants§
Stream
A pipeline stream/derived compute (derived props, hot path): STRICT — must be
pure, no I/O, and not an LLM (nondeterministic/effectful compute has no place on a
cacheable derived edge).
Derived
Same strictness as Stream; named separately for call-site clarity (derived-property
materializer).
Action
An Action compute (effectful (state, params) → EditSet): PERMISSIVE — may declare
I/O, nondeterminism, and LLM impls, because governance wraps it (authorize → validate →
precondition → post-check → commit) rather than the compute touching the write path.
Implementations§
Source§impl Binding
impl Binding
Sourcepub fn accepts(
self,
env: &CapabilityEnvelope,
impl_kind: ImplKind,
) -> Result<(), EnvelopeViolation>
pub fn accepts( self, env: &CapabilityEnvelope, impl_kind: ImplKind, ) -> Result<(), EnvelopeViolation>
Does this binding accept a compute with the given envelope + impl kind? The single enforcement point — every caller (pipeline runner, materializer, Action runtime) routes through here, so the rule can’t drift per call-site.
Trait Implementations§
impl Copy for Binding
impl Eq for Binding
impl StructuralPartialEq for Binding
Auto Trait Implementations§
impl Freeze for Binding
impl RefUnwindSafe for Binding
impl Send for Binding
impl Sync for Binding
impl Unpin for Binding
impl UnsafeUnpin for Binding
impl UnwindSafe for Binding
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.