pub struct KanonakNode {
pub id: Option<String>,
pub type_uri: Option<String>,
pub types: Option<Vec<String>>,
pub name: Option<String>,
pub content_hash: Option<String>,
pub version: Option<String>,
pub extra: Map<String, Value>,
}Expand description
The $-envelope as data — composed into a generated struct via
#[serde(flatten)], so an instance carries its own identity and serializes
straight to the normalized-JSON wire form. extra holds open-world
assertions outside the type-model, keyed by predicate URI; being the
innermost flatten map, it also collects unknown wire fields on deserialize.
Fields§
§id: Option<String>The resource’s canonical URI. Required to form a subject.
type_uri: Option<String>The durable class URI — the value of the synthesized type triple.
types: Option<Vec<String>>A multi-typed node’s FULL type set (0.4.0, runtime#10) — present only
when the node carries more than one type statement. Sorted by UTF-8
bytes, at least two members, no duplicates, $type a member; each
member emits one type statement in canonical form. Exposed ONLY as the
$types envelope — deliberately no unprefixed types accessor, because
an ontology can model a property literally named types; the $ prefix
exists to avoid exactly that collision.
name: Option<String>An embedded value’s authored dict-key — HASH-RELEVANT (serialized into
the canonical form). Only meaningful when the instance is used as an
embedded value; None for subjects.
content_hash: Option<String>Package provenance on read; ignored if echoed back on write.
version: Option<String>Package provenance on read; ignored if echoed back on write.
extra: Map<String, Value>Open-world assertions outside the type-model, keyed by predicate URI. Rides the wire as sibling fields (flatten semantics).
Implementations§
Source§impl KanonakNode
impl KanonakNode
Sourcepub fn type_matches(
&self,
class_uri: &str,
schema: &Json,
) -> Result<bool, CodecError>
pub fn type_matches( &self, class_uri: &str, schema: &Json, ) -> Result<bool, CodecError>
Whether this instance is of the class class_uri — crate::type_matches
over the envelope’s $types, else its $type (runtime#28). What a
generated type guard calls through KanonakResource::kanonak_node.