Skip to main content

nodedb_types/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2
3//! Shared NodeDB type definitions: strong IDs (TenantId, VShardId, RequestId,
4//! Lsn, Surrogate), error types (NodeDbError + ErrorCode + ErrorDetails), wire
5//! types for cross-plane and cross-node messages, value types, configuration
6//! schemas, and the approximate-aggregate sketches.
7//!
8//! Every NodeDB workspace crate depends on this. Items here form the stable
9//! cross-crate vocabulary; types specific to one engine live in that engine's
10//! crate.
11
12pub mod audit_dml;
13pub mod config;
14pub mod quota;
15
16pub mod approx;
17pub mod array_cell;
18pub mod array_route;
19pub mod ascii;
20pub mod backup_envelope;
21pub mod bbox;
22pub mod calvin;
23pub mod calvin_passive;
24pub mod clone;
25pub mod collection;
26pub mod collection_config;
27pub mod columnar;
28pub mod conversion;
29pub mod crdt_preview;
30pub mod datetime;
31pub mod decode_bounds;
32pub mod diagnostic;
33pub mod document;
34pub mod dropped_collection;
35pub mod error;
36pub mod fail_point;
37pub mod filter;
38pub mod geometry;
39pub mod graph;
40pub mod hlc;
41pub mod hnsw;
42pub mod id;
43pub mod id_gen;
44pub mod identity;
45pub mod json_msgpack;
46pub mod kv;
47pub mod kv_parsing;
48pub mod lsn;
49pub mod mirror;
50pub mod multi_vector;
51pub mod namespace;
52pub mod numeric_cmp;
53pub mod path_component;
54pub mod pg_compat;
55pub mod protocol;
56pub mod result;
57pub mod rls_write_check;
58pub mod row_identity;
59pub mod sparse_vector;
60pub mod sql_quote;
61pub mod surrogate;
62pub mod surrogate_bitmap;
63pub mod sync;
64pub mod temporal;
65pub mod text_search;
66pub mod timeseries;
67pub mod trace;
68pub mod typeguard;
69pub mod value;
70pub mod vector_ann;
71pub mod vector_distance;
72pub mod vector_dtype;
73pub mod vector_index_params;
74pub mod vector_index_stats;
75pub mod vector_model;
76pub mod volatility;
77pub mod wire_version;
78pub mod write_version;
79
80pub use approx::{CountMinSketch, HyperLogLog, SpaceSaving, TDigest};
81pub use array_cell::ArrayCell;
82pub use array_route::ShardBucket;
83pub use ascii::{
84    find_ascii_case_insensitive, find_ascii_case_insensitive_from, rfind_ascii_case_insensitive,
85    starts_with_ascii_case_insensitive, strip_prefix_ascii_case_insensitive,
86};
87pub use audit_dml::AuditDmlMode;
88pub use bbox::{BoundingBox, geometry_bbox};
89pub use clone::{CloneOrigin, CloneStatus, MAX_CLONE_DEPTH};
90pub use collection::{CollectionType, CollectionTypeParseError};
91pub use collection_config::{
92    KeySpec, PartitionStrategy, PayloadAtom, PayloadIndexKind, PrimaryEngine, VectorPrimaryConfig,
93};
94pub use columnar::{
95    ColumnDef, ColumnType, ColumnarProfile, ColumnarSchema, DocumentMode, SchemaError, StrictSchema,
96};
97pub use config::TuningConfig;
98pub use crdt_preview::CrdtPreviewResult;
99pub use datetime::{NdbDateTime, NdbDateTimeError, NdbDuration};
100pub use document::Document;
101pub use dropped_collection::DroppedCollection;
102pub use error::NodeDbError;
103pub use filter::{EdgeFilter, MetadataFilter};
104pub use graph::{Direction, GraphStats};
105pub use hlc::{ClockSkew, Hlc, HlcClock, MAX_CLOCK_SKEW_NS};
106pub use hnsw::{HnswCheckpoint, HnswNodeSnapshot, HnswParams};
107pub use id::{
108    CollectionId, CollectionKey, CollectionKeyError, DatabaseId, DocumentId, EdgeId,
109    EdgeIdParseError, IdError, IdType, NodeId, QualifiedCollection, ShapeId, TenantId,
110};
111pub use identity::KeyRepr;
112pub use json_msgpack::{
113    InstantKind, JsonValue, MsgpackError, MsgpackResult, NativeCell, json_from_msgpack,
114    json_to_msgpack, json_to_msgpack_or_empty, msgpack_to_json_string, read_instant,
115    value_from_msgpack, value_to_msgpack, write_instant,
116};
117pub use kv::{KV_DEFAULT_INLINE_THRESHOLD, KvConfig, KvTtlPolicy, is_valid_kv_key_type};
118pub use lsn::Lsn;
119pub use mirror::{MirrorLagRecord, MirrorMode, MirrorOrigin, MirrorStatus};
120pub use multi_vector::{MultiVector, MultiVectorError, MultiVectorScoreMode};
121pub use namespace::Namespace;
122pub use path_component::is_plain_path_component;
123pub use quota::{
124    PriorityClass, PriorityClassParseError, QuotaRecord, QuotaSpec, QuotaValidationError,
125};
126pub use result::{QueryResult, SearchResult, SubGraph};
127pub use rls_write_check::{RlsWriteCheck, WriteGateDecision};
128pub use row_identity::{
129    DEFAULT_IDENTITY_COLUMN, HEADLESS_SENTINEL_PREFIX, ROWID_COLUMN, RowIdentity, StorageKey,
130    declared_key, extract_pk_value, value_to_pk_string,
131};
132pub use sparse_vector::{SparseVector, SparseVectorError};
133pub use sql_quote::{quote_ident, quote_literal};
134pub use surrogate::Surrogate;
135pub use surrogate_bitmap::SurrogateBitmap;
136pub use sync::compensation::CompensationHint;
137pub use sync::shape::{ShapeDefinition, ShapeType};
138pub use sync::violation::ViolationType;
139pub use sync::wire::{SyncFrame, SyncMessageType};
140pub use temporal::{
141    BitemporalFilter, BitemporalInterval, LsnTimeAnchor, LsnTimeError, LsnTimeMap,
142    MAX_POSITIONS_PER_EPOCH, NANOS_PER_MS, OPEN_UPPER, OrdinalClock, SystemTimeScope,
143    ValidTimePredicate, calvin_txn_ordinal, ms_to_ordinal_upper, ordinal_to_ms,
144};
145pub use text_search::{Bm25Params, QueryMode, TextColumnFault, TextSearchParams};
146pub use trace::{SpanId, TraceId};
147pub use typeguard::TypeGuardFieldDef;
148pub use value::{NotScalar, Value, scalar_to_raw_bytes};
149pub use vector_ann::{VectorAnnOptions, VectorQuantization};
150pub use vector_dtype::VectorStorageDtype;
151pub use vector_index_params::StoredVectorIndexParams;
152pub use vector_index_stats::{
153    VectorIndexQuantization, VectorIndexStats, VectorIndexType, VectorIvfStats,
154};
155pub use vector_model::{VectorModelEntry, VectorModelMetadata};
156pub use volatility::Volatility;
157pub use write_version::{ShardVersion, WriteVersion};