pub struct BinderSlot {
pub wire: String,
pub lvalue_type: PortType,
pub allow_fusion: bool,
}Expand description
One slot in a binder.
wire names the polydat wire that supplies the value at
execute time (bare wire name, resolved through the kernel’s
Polydat context). lvalue_type is what the protocol expects at
this binding site — typically obtained from adapter-side
introspection (CQL: column type from prepared-statement
metadata).
allow_fusion is the per-slot policy bit the caller sets
when it has license — usually from a workload-author opt-in
like the bind-point :* wildcard syntax — to accept polydat
type fusion at this slot. When true, the verifier skips
the strict rvalue→lvalue rule for this slot and accepts any
rvalue (the wire-existence check still fires; an unknown
wire is always a violation). When false (the default), the
strict rule applies: string-detour into a non-text-natural
lvalue is rejected.
The lvalue_type field stays honest in both cases —
callers don’t fake the type to Str to bypass the check;
they keep the real cluster-reported type AND set
allow_fusion: true. That way downstream consumers
(compile-time analysis, diagnostics, future runtime-typed
bind paths) see the true protocol-side type.
Fields§
§wire: StringThe wire the slot reads.
lvalue_type: PortTypeThe type the protocol side requires.
allow_fusion: boolWhether a wire of another type may be fused into the lvalue type.
Trait Implementations§
Source§impl Clone for BinderSlot
impl Clone for BinderSlot
Source§fn clone(&self) -> BinderSlot
fn clone(&self) -> BinderSlot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for BinderSlot
impl RefUnwindSafe for BinderSlot
impl Send for BinderSlot
impl Sync for BinderSlot
impl Unpin for BinderSlot
impl UnsafeUnpin for BinderSlot
impl UnwindSafe for BinderSlot
Blanket Implementations§
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more