Expand description
Items Database Library for Borderlands 4
This library provides a trait-based abstraction for item database operations, with implementations for SQLite (sync) and SQLx (async, SQLite + PostgreSQL).
§Features
sqlite-sync(default) - Synchronous SQLite using rusqlite (for CLI)sqlx-sqlite- Async SQLite using SQLx (for server)sqlx-postgres- Async PostgreSQL using SQLx (for server)attachments- Enable screenshot/image attachment storage
§Example (Sync)
use bl4_idb::{SqliteDb, ItemsRepository, ItemFilter};
let db = SqliteDb::open("items.db").unwrap();
db.init().unwrap();
// List all items
let items = db.list_items(&ItemFilter::default()).unwrap();§Example (Async with SQLx SQLite)
ⓘ
// Requires feature "sqlx-sqlite"
use bl4_idb::{sqlx_impl::sqlite::SqlxSqliteDb, sqlx_impl::AsyncItemsRepository, ItemFilter};
async fn example() {
let db = SqlxSqliteDb::connect("sqlite:items.db").await.unwrap();
db.init().await.unwrap();
// List all items
let items = db.list_items(&ItemFilter::default()).await.unwrap();
}Re-exports§
pub use repository::BulkRepository;pub use repository::BulkResult;pub use repository::BulkValueSet;pub use repository::ImportExportRepository;pub use repository::ItemsRepository;pub use repository::RepoError;pub use repository::RepoResult;pub use sqlite::SqliteDb;pub use sqlite::DEFAULT_DB_PATH;pub use types::*;
Modules§
- repository
- Repository trait for items database operations.
- sqlite
- SQLite implementation using rusqlite (synchronous).
- types
- Shared types for the items database.