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