pub trait Pack {
const NAME: &'static str;
const NOTE_KINDS: &'static [&'static str];
const ENTITY_KINDS: &'static [&'static str];
const VERBS: &'static [VerbDef];
const EDGE_RULES: &'static [EdgeEndpointRule] = _;
const REQUIRES: &'static [&'static str] = _;
}Expand description
A composable module that contributes vocabulary, verbs, and edge endpoint rules to the khive runtime.
Packs declare what entity kinds, note kinds, and verbs they introduce, and
optionally extend the per-relation endpoint contract via EDGE_RULES.
The runtime merges vocabularies from all loaded packs and rejects
unregistered kinds at the service boundary.
The closed EdgeRelation enum (ADR-021) is not extensible — only its
per-relation endpoint contract is (ADR-031).
Required Associated Constants§
Sourceconst NOTE_KINDS: &'static [&'static str]
const NOTE_KINDS: &'static [&'static str]
Note kinds this pack contributes to the runtime vocabulary.
Sourceconst ENTITY_KINDS: &'static [&'static str]
const ENTITY_KINDS: &'static [&'static str]
Entity kinds this pack contributes to the runtime vocabulary.
Provided Associated Constants§
Sourceconst EDGE_RULES: &'static [EdgeEndpointRule] = _
const EDGE_RULES: &'static [EdgeEndpointRule] = _
Additional edge endpoint rules this pack contributes (ADR-031).
Defaults to empty — packs that introduce no new endpoint pairs (or only rely on the ADR-002 base contract) can ignore this.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.