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