1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Object repositories for type-safe data persistence.
//!
//! This module provides `ObjectRepository`, a type-safe wrapper around collections
//! that automatically handles serialization and deserialization of Rust types.
//!
//! # Repositories vs Collections
//!
//! - **Collections** work with `Document` objects and are schemaless
//! - **Repositories** work with strongly-typed Rust structs and provide compile-time safety
//!
//! # Creating Repositories
//!
//! ```rust,ignore
//! use nitrite::repository::ObjectRepository;
//! use nitrite_derive::{NitriteEntity, Convertible};
//!
//! #[derive(NitriteEntity, Convertible)]
//! pub struct User {
//! pub name: String,
//! pub age: u32,
//! }
//!
//! // Get or create a repository
//! let repo = db.repository::<User>()?;
//!
//! // Or create a keyed repository for multiple instances
//! let repo_prod = db.keyed_repository::<User>("prod")?;
//! let repo_test = db.keyed_repository::<User>("test")?;
//! ```
//!
//! # Operations
//!
//! Repositories support the same operations as collections:
//! - Insert/update/remove documents
//! - Query with filters and options
//! - Create indexes
//! - Event listeners
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;