elif_orm/
lib.rs

1//! # elif-orm: Database Layer for elif.rs
2//!
3//! Production-ready ORM with modular architecture featuring:
4//! - Core database abstraction layer
5//! - Query building and execution
6//! - Model system with relationships
7//! - Migration and schema management
8//! - Factory system for testing
9//! - Connection pool management
10//!
11//! ## New Modular Architecture
12//!
13//! The ORM is organized into 6 main domains:
14//! - `backends/` - Database backend abstractions (PostgreSQL, etc.)
15//! - `connection/` - Connection pool management and health monitoring
16//! - `transactions/` - Transaction lifecycle and isolation management
17//! - `query/` - Query building and execution
18//! - `sql/` - SQL generation and security
19//! - `models/` - Model traits and CRUD operations
20//! - `relationships/` - Relationship system and loading
21//! - `loading/` - Eager/lazy loading strategies
22//! - `migrations/` - Schema migrations
23//! - `factories/` - Model factories and test data
24
25// New modular architecture
26pub mod backends;
27pub mod connection;
28pub mod factories;
29pub mod loading;
30pub mod migrations;
31pub mod models;
32pub mod query;
33pub mod relationships;
34pub mod sql;
35pub mod transactions;
36
37// Event system and observers
38pub mod event_error;
39pub mod events;
40pub mod observers;
41
42// Legacy modules (maintained for backward compatibility)
43pub mod database;
44pub mod error;
45pub mod factory;
46pub mod migration;
47pub mod migration_runner;
48pub mod model;
49pub mod security;
50pub mod transaction;
51
52#[cfg(test)]
53mod tests;
54
55#[cfg(test)]
56mod transaction_tests;
57
58#[cfg(test)]
59mod security_tests_minimal;
60
61#[cfg(test)]
62mod security_tests_comprehensive;
63
64#[cfg(test)]
65mod security_injection_tests;
66
67// Prelude-style re-exports for core functionality
68// Only export what actually exists in the modules
69
70// Error handling
71pub use error::{ModelError, ModelResult, OrmError, OrmResult};
72
73// Database core
74pub use database::{DatabasePool, DatabaseServiceProvider, PoolError, PoolHealthReport};
75
76// Model system
77pub use model::{CrudOperations, Model, PrimaryKey};
78
79// Query system
80pub use query::QueryBuilder;
81
82// Transaction management
83pub use transaction::{IsolationLevel, Transaction};
84
85// Migration system
86pub use migration::{
87    Migration, MigrationManager, MigrationRunResult as MigrationResult, MigrationStatus,
88    RollbackResult,
89};
90
91// Relationships (minimal exports to avoid conflicts)
92pub use relationships::{
93    relationship_traits::Relationship, RelationshipCache, RelationshipConstraint,
94    RelationshipMetadata, RelationshipRegistry, RelationshipType,
95};
96
97// Database backends
98pub use backends::{
99    DatabaseBackendRegistry, DatabaseBackendType, DatabasePoolConfig, PostgresBackend,
100};
101
102// Event system and observers
103pub use event_error::EventError;
104pub use events::{ModelEvent, ModelObserver};
105pub use model::lifecycle::ModelLifecycle;
106pub use observers::{GlobalObserverRegistry, ObserverManager, ObserverRegistry};
107
108// Derive macro re-exports (when implemented in future)
109// pub use elif_orm_derive::*;