pub struct Env {
pub name: String,
/* private fields */
}Expand description
Environment variable read, frozen at construction.
Signature: env(name: const str) -> str. Reads the named env
var once at workload-compile time; the captured value is
returned on every eval. Errors at construction when the
variable is unset — use env_or for a defaulted form.
SRD-80b Phase E: fallible construction. The body returns
Result<String, String>; the macro runs it once inside
try_new, caches the Ok value, and propagates Err as a
build-time error.
Fields§
§name: StringThe name argument, as given at construction.
Implementations§
Trait Implementations§
Source§impl PolydatNode for Env
impl PolydatNode for Env
Source§fn compiled_slot(&self, wire_types: &[PortType]) -> Option<CompiledSlotKit>
fn compiled_slot(&self, wire_types: &[PortType]) -> Option<CompiledSlotKit>
Return a slot-compiled closure for nodes with typed-slice
ports (§8.4 layer 3): slice inputs read
(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.Source§fn scratch_layout(&self) -> Vec<ScratchElem>
fn scratch_layout(&self) -> Vec<ScratchElem>
The scratch entries a state owns for this node’s evaluation
(axiom S3), one per entry in the order the node expects them
in
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
Declare which inputs are interchangeable for this node. Read more
Source§fn accepts_none_inputs(&self) -> bool
fn accepts_none_inputs(&self) -> bool
True iff this node should receive
Value::None inputs
directly rather than have the kernel propagate None through
it. Default: false — most nodes follow SRD-74 Rule 1
(None in → None out, no eval invocation). Read moreSource§fn compiled_u64(&self) -> Option<CompiledU64Op>
fn compiled_u64(&self) -> Option<CompiledU64Op>
Return a compiled u64-only evaluation closure, if this node
operates entirely in u64 space. Read more
Source§fn jit_constants(&self) -> Vec<u64>
fn jit_constants(&self) -> Vec<u64>
Return assembly-time constants for JIT compilation. Read more
Source§fn purity(&self) -> Purity
fn purity(&self) -> Purity
Declare this node’s purity status per the
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>
Explicit SIMD-native implementation of this scalar node, if one has
been registered with a semantic contract. Read more
Source§fn fusion_subgraph(&self) -> Option<FusionSubgraph<'_>>
fn fusion_subgraph(&self) -> Option<FusionSubgraph<'_>>
A synthetic fusion node’s view of the subgraph it stands in
for (SRD-105 cone extraction). Program-identity hashing
(
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 Env
impl RefUnwindSafe for Env
impl Send for Env
impl Sync for Env
impl Unpin for Env
impl UnsafeUnpin for Env
impl UnwindSafe for Env
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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