Skip to main content

Crate cliban_core

Crate cliban_core 

Source
Expand description

cliban-core — cliban’s storage + domain layer in Rust.

The Store writer-thread actor over a single rusqlite connection, plus domain contexts for projects, milestones, issues, labels, relations, and the per-issue activity log. No daemon, no sockets — the CLI and TUI link this crate and open the SQLite file in process.

Re-exports§

pub use error::Error;
pub use error::Result;
pub use store::Store;

Modules§

audit
Recording what the tool did, so the timeline is trustworthy without anyone remembering to write it down.
contexts
Domain contexts. Each function takes &rusqlite::Connection and runs on the store’s writer thread via crate::store::Store::call.
error
Error type for the store + contexts.
migrations
Migration runner. The project Markdown description remains the durable project-memory store, so no separate notes schema is needed.
paths
XDG-aware paths for the cliban SQLite DB and config.
projection
JSON projection structs — the CLI to_map shapes the core serializes.
rows
Row to struct mappers. Column order here is the single source of truth for the SELECT <COLS> strings in the contexts.
schema
Row structs for cliban-core’s tables. Plain data carriers loaded from SQLite; validation lives in the contexts. Timestamps are DateTime<Utc>, dates NaiveDate.
sections
Locating H2 sections in the issue/milestone description markdown.
store
The store: a Store handle (Clone + Send + Sync) over a single writer thread that owns the one rusqlite Connection.
time
Timestamp + date formatting helpers matching Ecto’s SQLite TEXT encoding.