pub struct DatasetOpen { /* private fields */ }Expand description
dataset_open(source: str, facet: str) -> Handle
The single resolver node. Provenance follows its two wire inputs; when both are scope-extern constants (the iter-var case), this evaluates exactly once at iteration entry and stays cached for every cycle in that iteration. When source or facet is cycle-time, it re-evaluates accordingly.
All per-cycle accessors take the resulting handle on a wire — the catalog/HTTP/mmap path is never on the cycle hot path.
A resolve failure panics with the underlying error rather than
yielding Value::None, so a catalog miss cannot degrade into a
garbage value downstream: the engine’s enrich_eval_panic adds
node provenance, eval_const_expr traps the panic into
Result::Err, and evaluate_spec propagates it as a
clause-level diagnostic.
Implementations§
Source§impl DatasetOpen
impl DatasetOpen
Trait Implementations§
Source§impl Default for DatasetOpen
impl Default for DatasetOpen
Source§impl PolydatNode for DatasetOpen
impl PolydatNode for DatasetOpen
Source§fn compiled_slot(
&self,
wire_types: &[PortType],
_engine: Engine,
) -> Option<CompiledSlotKit>
fn compiled_slot( &self, wire_types: &[PortType], _engine: Engine, ) -> Option<CompiledSlotKit>
(ptr, len) slot
pairs; vector outputs write into kernel-owned scratch.
Checked by the compiled-kernel builders AFTER
Self::compiled_u64 — pure-scalar nodes never need it.
Default None: the node stays on typed eval. Read moreSource§fn scratch_layout(&self) -> Vec<ScratchElem>
fn scratch_layout(&self) -> Vec<ScratchElem>
Self::eval_in. Empty for a node that evaluates over
Values alone, which is every node but a native cone.Source§fn eval_in(
&self,
scratch: &mut [ScratchBuf],
inputs: &[Value],
outputs: &mut [Value],
)
fn eval_in( &self, scratch: &mut [ScratchBuf], inputs: &[Value], outputs: &mut [Value], )
Self::eval with the node’s scratch, which the evaluating
state owns and hands in: storage belongs to the state, never to
the node, which is shared by every state of the program.Source§fn commutativity(&self) -> Commutativity
fn commutativity(&self) -> Commutativity
Source§fn accepts_none_inputs(&self) -> bool
fn accepts_none_inputs(&self) -> bool
Value::None inputs
directly rather than have the kernel propagate None through
it. Default: false — most nodes follow none_semantics.md Rule 1
(None in → None out, no eval invocation). Read moreSource§fn compiled_u64(&self) -> Option<CompiledU64Op>
fn compiled_u64(&self) -> Option<CompiledU64Op>
Source§fn jit_constants(&self) -> Vec<u64>
fn jit_constants(&self) -> Vec<u64>
Source§fn purity(&self) -> Purity
fn purity(&self) -> Purity
runtime_model.md’s D2 axiom. Default:
Purity::Pure. Override to declare an observable
side channel (Purity::SideChannel) or
eval-call-spanning state (Purity::Nondeterministic). Read moreSource§fn simd_variant(&self) -> Option<SimdVariant>
fn simd_variant(&self) -> Option<SimdVariant>
Source§fn fusion_subgraph(&self) -> Option<FusionSubgraph<'_>>
fn fusion_subgraph(&self) -> Option<FusionSubgraph<'_>>
PolydatProgram::canonical_hash) walks THROUGH fusion
nodes into this subgraph, so identity is invariant to the
engine mix: jit=off and jit=auto compiles of the same
source hash identically, and resume-skip matching survives
mode changes. Default None: ordinary nodes hash as
themselves.Auto Trait Implementations§
impl Freeze for DatasetOpen
impl RefUnwindSafe for DatasetOpen
impl Send for DatasetOpen
impl Sync for DatasetOpen
impl Unpin for DatasetOpen
impl UnsafeUnpin for DatasetOpen
impl UnwindSafe for DatasetOpen
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> 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