Skip to main content

StrToVecI32

Struct StrToVecI32 

Source
pub struct StrToVecI32 { /* private fields */ }
Expand description

str_to_vec_i32(s) — a JSON array of integers as a vec_i32 wire.

The public name for a parse the crate already performed internally at the boundary: a host holding a list as text — a column it selected, a facet it loaded, a literal in a workload — gets it onto a wire the list operations read. The as cast does not do this, because text to a typed vector can fail on its input and the adapter catalog only inserts conversions that cannot (Type System §3); naming it is the caller saying it accepts that.

Fails by name on anything that is not a JSON array of integers in range, rather than skipping the element: a list silently short one entry is a wrong count everywhere downstream.

Implementations§

Source§

impl StrToVecI32

Source

pub fn new() -> Self

A str_to_vec_i32 node with the given constant arguments.

Trait Implementations§

Source§

impl Default for StrToVecI32

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PolydatNode for StrToVecI32

Source§

fn meta(&self) -> &NodeMeta

Return this node’s metadata (port names and types).
Source§

fn eval(&self, inputs: &[Value], outputs: &mut [Value])

Evaluate the node: read from inputs, write to outputs. Read more
Source§

fn compiled_slot( &self, wire_types: &[PortType], _engine: Engine, ) -> 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. Read more
Source§

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], )

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

Declare which inputs are interchangeable for this node. Read more
Source§

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 more
Source§

fn compiled_u64(&self) -> Option<Box<dyn Fn(&[u64], &mut [u64]) + Send + Sync>>

Return a compiled u64-only evaluation closure, if this node operates entirely in u64 space. Read more
Source§

fn jit_constants(&self) -> Vec<u64>

Return assembly-time constants for JIT compilation. Read more
Source§

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 more
Source§

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<'_>>

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§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.