Crate bl4_idb

Crate bl4_idb 

Source
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.