Skip to main content

icydb_core/
lib.rs

1//! Core runtime for IcyDB: entity traits, values, executors, visitors, and
2//! the ergonomics exported via the `prelude`.
3extern crate self as icydb;
4#[macro_use]
5pub(crate) mod scalar_registry;
6pub mod db;
7pub mod error;
8pub mod model;
9pub mod obs;
10pub mod sanitize;
11pub mod serialize;
12pub mod traits;
13pub mod types;
14pub mod validate;
15pub mod value;
16pub mod view;
17pub mod visitor;
18
19#[cfg(test)]
20pub(crate) mod test_fixtures;
21
22///
23/// CONSTANTS
24///
25
26/// Maximum number of indexed fields allowed on an entity.
27///
28/// This limit keeps hashed index keys within bounded, storable sizes and
29/// simplifies sizing tests in the stores.
30pub const MAX_INDEX_FIELDS: usize = 4;
31
32///
33/// Prelude
34///
35/// Prelude contains only domain vocabulary.
36/// No errors, executors, stores, serializers, or helpers are re-exported here.
37///
38
39pub mod prelude {
40    pub use crate::{
41        model::{entity::EntityModel, index::IndexModel},
42        traits::{EntityIdentity, EntityKind, Path},
43        value::Value,
44    };
45}