Skip to main content

reifydb_core/interface/catalog/
mod.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Copyright (c) 2026 ReifyDB
3
4//! Trait and value-type contracts for every catalog object kind ReifyDB knows about.
5//!
6//! Each submodule defines the trait that downstream catalog implementations satisfy and the associated metadata types
7//! for one logical kind (namespaces, tables, views, sources, sinks, series, ring buffers, flows, dictionaries, sum
8//! types, handlers, procedures, migrations, policies, identities, tokens, and so on), plus the cross-cutting modules
9//! for stable identifiers (`id`), key construction (`key`), on-disk layout (`layout`), change records (`change`),
10//! configuration (`config`), and column properties (`property`).
11//!
12//! Invariant: introducing a new catalog object kind is a three-place change. The contract here, a new `KeyKind` byte in
13//! `key/kind.rs`, and the typed key in `key/`, must be added together. Skipping any of the three leaves the catalog
14//! inconsistent: an object with no on-disk identity, or a key with no contract, or a contract that no key can point at.
15
16pub mod authentication;
17pub mod binding;
18pub mod change;
19pub mod column;
20pub mod config;
21pub mod dictionary;
22pub mod flow;
23pub mod handler;
24pub mod id;
25pub mod identity;
26pub mod key;
27pub mod layout;
28pub mod migration;
29pub mod namespace;
30pub mod policy;
31pub mod procedure;
32pub mod property;
33pub mod ringbuffer;
34pub mod series;
35pub mod shape;
36pub mod sink;
37pub mod source;
38pub mod subscription;
39pub mod sumtype;
40pub mod table;
41pub mod task;
42pub mod test;
43pub mod token;
44pub mod view;
45pub mod vtable;