khive_runtime/
pack_metadata.rs1#[doc(hidden)]
11pub use khive_types::Pack;
12
13#[macro_export]
24macro_rules! pack_runtime_metadata {
25 () => {
26 fn name(&self) -> &str {
27 <Self as $crate::pack_metadata::Pack>::NAME
28 }
29
30 fn note_kinds(&self) -> &'static [&'static str] {
31 <Self as $crate::pack_metadata::Pack>::NOTE_KINDS
32 }
33
34 fn entity_kinds(&self) -> &'static [&'static str] {
35 <Self as $crate::pack_metadata::Pack>::ENTITY_KINDS
36 }
37
38 fn brain_consumer_kinds(&self) -> &'static [&'static str] {
39 <Self as $crate::pack_metadata::Pack>::BRAIN_CONSUMER_KINDS
40 }
41
42 fn handlers(&self) -> &'static [$crate::pack::HandlerDef] {
43 <Self as $crate::pack_metadata::Pack>::HANDLERS
44 }
45
46 fn edge_rules(&self) -> &'static [$crate::pack::EdgeEndpointRule] {
47 <Self as $crate::pack_metadata::Pack>::EDGE_RULES
48 }
49
50 fn entity_types(&self) -> &'static [$crate::pack::EntityTypeDef] {
51 <Self as $crate::pack_metadata::Pack>::ENTITY_TYPES
52 }
53
54 fn requires(&self) -> &'static [&'static str] {
55 <Self as $crate::pack_metadata::Pack>::REQUIRES
56 }
57
58 fn note_kind_specs(&self) -> &'static [$crate::pack::NoteKindSpec] {
59 <Self as $crate::pack_metadata::Pack>::NOTE_KIND_SPECS
60 }
61
62 fn note_embedding_policies(&self) -> &'static [$crate::pack::NoteEmbeddingPolicySpec] {
63 <Self as $crate::pack_metadata::Pack>::NOTE_EMBEDDING_POLICIES
64 }
65
66 fn schema_column_additions(&self) -> &'static [$crate::pack::PackColumnAddition] {
67 <Self as $crate::pack_metadata::Pack>::SCHEMA_COLUMN_ADDITIONS
68 }
69
70 fn schema_plan(&self) -> $crate::SchemaPlan {
71 match <Self as $crate::pack_metadata::Pack>::SCHEMA_PLAN {
72 ::core::option::Option::Some(plan) => $crate::SchemaPlan {
73 pack: plan.pack,
74 statements: plan.statements,
75 },
76 ::core::option::Option::None => $crate::SchemaPlan::empty(),
77 }
78 }
79 };
80}
81
82#[macro_export]
88macro_rules! pack_factory_metadata {
89 ($pack:ty) => {
90 fn name(&self) -> &'static str {
91 <$pack as $crate::pack_metadata::Pack>::NAME
92 }
93
94 fn requires(&self) -> &'static [&'static str] {
95 <$pack as $crate::pack_metadata::Pack>::REQUIRES
96 }
97 };
98}