pub struct FkcKernel {Show 16 fields
pub kernel: String,
pub registrable: bool,
pub op_kind: Option<String>,
pub fused_op: Option<String>,
pub blurb: Option<String>,
pub backend: Option<String>,
pub kernel_source: Option<String>,
pub entry_point: Option<String>,
pub kernel_revision_hash: Option<String>,
pub variant: Option<String>,
pub accept: Option<AcceptBlock>,
pub return_: Option<ReturnBlock>,
pub caps: Option<CapsBlock>,
pub cost: Option<CostBlock>,
pub precision: Option<PrecisionBlock>,
pub determinism: Option<String>,
}Expand description
The per-kernel ```fkc structured contract (§3.3).
Exactly one of op_kind / fused_op is present (a primitive vs fused
contract) unless the section is describe-only (registrable: false,
§3.10), in which case op_kind/fused_op need not resolve to a real
dispatch target; the structural check is a validation step, not a parse
step.
Fields§
§kernel: StringUnique-within-file diagnostic kernel name.
registrable: boolDescribe-only marker (§3.10). When false this section is
documentation-only: it is NOT registered and is NOT required to
name a real dispatch op_kind/fused_op (the op may be ~ or a
descriptive non-dispatch token). Its descriptive fields (dtypes,
layout, quant) are STILL validated as docs. Defaults to true so
every existing contract registers exactly as before (additive
versioning, §11).
op_kind: Option<String>The Fuel OpKind this kernel implements (primitive contract).
fused_op: Option<String>OR a FusedOpId name (fused contract). Exactly one of these two.
blurb: Option<String>One-line blurb; MUST equal the prose blurb (§10.11, checked later).
backend: Option<String>Backend (inherited from front-matter unless overridden).
kernel_source: Option<String>kernel_source tag (inherited unless overridden).
entry_point: Option<String>Symbolic ref into the provider link registry → KernelRef (P9, §12.6).
kernel_revision_hash: Option<String>Revision hash hex, OR "auto" to derive (§4.7). String per §3.8.
variant: Option<String>OPAQUE specialization-variant tag (Baracuda variant:, e.g.
"splitk_partial"). Retained verbatim so a contract-declared variant
survives lowering and can ride into a telemetry record as an opaque
annotation; the entry point remains the true kernel identity. Purely a
string on both sides — Fuel never parses or validates it beyond being a
string (additive §11, no deny_unknown_fields). Distinct from
OpParamsSchema::variant, which names the OpParams Rust variant.
accept: Option<AcceptBlock>Accept contract (§3.6).
return_: Option<ReturnBlock>Return contract (§3.6). return is a reserved word.
caps: Option<CapsBlock>Capability block (§4.1–§4.6).
cost: Option<CostBlock>Cost block (§4.4).
precision: Option<PrecisionBlock>Precision block (§4.8) → PrecisionGuarantee.
determinism: Option<String>Determinism (§4.9): bitwise | same_hardware_bitwise | nondeterministic.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for FkcKernel
impl<'de> Deserialize<'de> for FkcKernel
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for FkcKernel
impl RefUnwindSafe for FkcKernel
impl Send for FkcKernel
impl Sync for FkcKernel
impl Unpin for FkcKernel
impl UnsafeUnpin for FkcKernel
impl UnwindSafe for FkcKernel
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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