Skip to main content

bonds_core/
lib.rs

1//! # bonds-core
2//!
3//! Core library for creating and managing bonds (symlink-based directory links)
4//! backed by SQLite persistence.
5//!
6//! ## Quick example
7//! ```no_run
8//! use bonds_core::{BondError, BondManager};
9//! use std::path::PathBuf;
10//!
11//! // `BondManager::new(None)` uses ~/.bonds/bonds.db by default.
12//! let manager = BondManager::new(None)?;
13//! let source = PathBuf::from("/path/to/source");
14//! let target = PathBuf::from("/path/to/target-link");
15//!
16//! // This creates a symlink on disk and persists the record in SQLite.
17//! let _bond = manager.create_bond(source, target, Some("my-bond".to_string()))?;
18//! # Ok::<(), BondError>(())
19//! ```
20
21/// Bond domain model types (for example, `Bond`).
22pub mod bond;
23/// User configuration loading/saving (`~/.bonds/config.toml`).
24pub mod config;
25/// Public error types returned by this crate.
26pub mod error;
27/// High-level manager for bond lifecycle operations.
28pub mod manager;
29
30pub use bond::Bond;
31pub use config::BondsConfig;
32pub use error::{BondError, ErrorKind};
33pub use manager::BondManager;