Skip to main content

khive_types/
lib.rs

1//! khive-types — core primitives and substrate data types.
2//!
3//! `#![no_std]` compatible. Minimal dependencies. No ID generation, no clock
4//! access, no panics. Substrate structs (Note, Entity, Event) are merged into
5//! this crate — they are the data shape that the rest of the runtime operates on.
6
7#![no_std]
8#![forbid(unsafe_code)]
9
10extern crate alloc;
11
12#[cfg(feature = "std")]
13extern crate std;
14
15pub mod edge;
16pub mod entity;
17pub mod error;
18pub mod event;
19pub mod header;
20pub mod id;
21pub mod khive_error;
22pub mod namespace;
23pub mod note;
24pub mod pack;
25pub mod substrate;
26pub mod timestamp;
27pub mod vector;
28
29pub use edge::{EdgeCategory, EdgeRelation};
30pub use entity::{Entity, EntityKind, Link, PropertyValue};
31pub use error::{TypeError, UnknownVariant};
32pub use event::{Event, EventBuilder, EventOutcome};
33pub use header::Header;
34pub use id::{Id128, ParseIdError};
35pub use khive_error::{Details, ErrorCode, ErrorDomain, ErrorKind, KhiveError, RetryHint};
36pub use namespace::Namespace;
37pub use note::{Note, NoteKind, NoteStatus};
38pub use pack::{EdgeEndpointRule, EndpointKind, Pack, VerbDef};
39pub use substrate::{SubstrateKind, SUBSTRATE_COUNT};
40pub use timestamp::Timestamp;
41pub use vector::DistanceMetric;