#[repr(C)]pub struct ImmersiveFunctionDescriptor {
pub iri_hash: u64,
pub args: [ImmersiveValueKind; 4],
pub arg_count: u8,
pub result: ImmersiveValueKind,
pub execution: ExecutionClass,
pub deterministic: bool,
pub exactness: ExactnessClass,
pub max_input_bytes: u32,
pub max_output_bytes: u32,
}Expand description
Typed function descriptor for a QISP extension function (plan §4.2, verbatim
field set plus the ExactnessClass referenced there).
Fixed-size, #[repr(C)], Copy — connects a function IRI (as a compile-time
q_hash) to its typed signature, execution class, determinism, exactness, and
I/O byte budgets. It carries no owned buffers; the resource limits reference the
canonical geometry capability manifests rather than duplicating them.
Fields§
§iri_hash: u64q_hash of the function’s absolute IRI (e.g. qispf:intersects).
args: [ImmersiveValueKind; 4]Positional argument kinds (only the first arg_count are meaningful).
arg_count: u8Number of populated entries in args (0..=4).
result: ImmersiveValueKindResult value kind.
execution: ExecutionClassExecution class (hot / cold-sync / async).
deterministic: boolWhether repeated evaluation with the same key yields the same term (referential transparency within a query snapshot — plan §4.4).
exactness: ExactnessClassExactness profile the descriptor is registered under.
max_input_bytes: u32Maximum accepted input size in bytes (admission control).
max_output_bytes: u32Maximum producible output size in bytes (admission control).
Implementations§
Source§impl ImmersiveFunctionDescriptor
impl ImmersiveFunctionDescriptor
Sourcepub const fn new(
iri_hash: u64,
args: [ImmersiveValueKind; 4],
arg_count: u8,
result: ImmersiveValueKind,
execution: ExecutionClass,
deterministic: bool,
exactness: ExactnessClass,
max_input_bytes: u32,
max_output_bytes: u32,
) -> Self
pub const fn new( iri_hash: u64, args: [ImmersiveValueKind; 4], arg_count: u8, result: ImmersiveValueKind, execution: ExecutionClass, deterministic: bool, exactness: ExactnessClass, max_input_bytes: u32, max_output_bytes: u32, ) -> Self
Const-friendly constructor so registries can be built in const/static
tables. arg_count is clamped to the 4-slot capacity.
Sourcepub fn arg_kinds(&self) -> &[ImmersiveValueKind]
pub fn arg_kinds(&self) -> &[ImmersiveValueKind]
The meaningful (populated) argument kinds.
Sourcepub const fn is_async(&self) -> bool
pub const fn is_async(&self) -> bool
Whether this function must be submitted as a job (cannot run inline).
Sourcepub const fn legal_in_filter(&self) -> bool
pub const fn legal_in_filter(&self) -> bool
Whether this function is legal inside a SPARQL FILTER.
A HotZeroHeap or ColdBoundedSync deterministic function is legal;
an AsyncRequired or non-deterministic function is not (plan §4.2, §4.4).
Sourcepub const fn legal_in_bind(&self) -> bool
pub const fn legal_in_bind(&self) -> bool
Whether this function is legal inside a SPARQL BIND. Same rule as
FILTER: snapshot-pure, synchronous, deterministic (plan §4.4).
Trait Implementations§
Source§impl Clone for ImmersiveFunctionDescriptor
impl Clone for ImmersiveFunctionDescriptor
Source§fn clone(&self) -> ImmersiveFunctionDescriptor
fn clone(&self) -> ImmersiveFunctionDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ImmersiveFunctionDescriptor
impl Debug for ImmersiveFunctionDescriptor
Source§impl PartialEq for ImmersiveFunctionDescriptor
impl PartialEq for ImmersiveFunctionDescriptor
Source§fn eq(&self, other: &ImmersiveFunctionDescriptor) -> bool
fn eq(&self, other: &ImmersiveFunctionDescriptor) -> bool
self and other values to be equal, and is used by ==.impl Copy for ImmersiveFunctionDescriptor
impl Eq for ImmersiveFunctionDescriptor
impl StructuralPartialEq for ImmersiveFunctionDescriptor
Auto Trait Implementations§
impl Freeze for ImmersiveFunctionDescriptor
impl RefUnwindSafe for ImmersiveFunctionDescriptor
impl Send for ImmersiveFunctionDescriptor
impl Sync for ImmersiveFunctionDescriptor
impl Unpin for ImmersiveFunctionDescriptor
impl UnsafeUnpin for ImmersiveFunctionDescriptor
impl UnwindSafe for ImmersiveFunctionDescriptor
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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