axion_db/
lib.rs

1#![allow(unused)]
2
3// axion-db/src/lib.rs
4
5// These modules contain the internal implementation details.
6// They are `pub` so they can be used by other modules within this crate,
7// but they will NOT be part of the public `prelude`.
8pub mod client;
9pub mod config;
10pub mod error;
11pub mod introspection;
12pub mod manager;
13pub mod metadata;
14pub mod types;
15
16/// The public-facing prelude for the `axion-db` crate.
17/// This is the ONLY part that the `axion` crate should interact with.
18/// It exposes the high-level manager and the data structures it returns.
19pub mod prelude {
20    // The primary entry point for using this crate.
21    pub use crate::manager::ModelManager;
22
23    // The configuration struct needed to create a ModelManager.
24    pub use crate::config::{DatabaseType, DbConfig, PoolOptionsConfig};
25
26    // The error types that can be returned.
27    pub use crate::error::{DbError, DbResult};
28
29    // The data structures that describe the database schema.
30    pub use crate::metadata::{
31        AxionDataType,
32        // We do not export function-related structs yet as they are not implemented.
33        ColumnMetadata,
34        DatabaseMetadata,
35        EnumMetadata,
36        ForeignKeyReference,
37        SchemaMetadata,
38        TableMetadata,
39        ViewMetadata,
40    };
41}