linkmarks_core/lib.rs
1//! # linkmarks-core
2//!
3//! Domain model, traits, URL canonicalization, and local dedupe for
4//! LinkMarks. This crate has no I/O beyond pure parsing helpers —
5//! all filesystem, network, and database concerns live in the
6//! bridges and the CLI.
7//!
8//! See:
9//! - `model` — `Bookmark`, `SourceRef`, `Collection`, `Tag`
10//! - `traits` — `BookmarkSource`, `BookmarkSink`
11//! - `canonical` — URL canonicalization rules
12//! - `dedupe` — local deterministic dedupe by canonical URL
13//! - `errors` — error types
14//! - `parser` — shared parsing helpers
15//! - `paths` — XDG-aware filesystem paths
16//! - `migrator` — forward-only SQLite migrator
17//! - `store` — SQLite-backed bookmark store
18//! - `config` — TOML config loader
19
20#![deny(missing_docs)]
21#![deny(unsafe_code)]
22
23pub mod canonical;
24pub mod canonical_config;
25pub mod config;
26pub mod dedupe;
27pub mod errors;
28pub mod migrator;
29pub mod model;
30pub mod parser;
31pub mod paths;
32pub mod storage;
33pub mod store;
34pub mod traits;
35
36pub use canonical::{canonicalize, CanonicalizeError};
37pub use canonical_config::CanonicalConfig;
38pub use config::{self as config_loader};
39pub use dedupe::{dedupe, ConflictRecord, DedupeReport};
40pub use errors::CoreError;
41pub use migrator::{Migration, MAX_SUPPORTED_VERSION};
42pub use model::{Bookmark, BookmarkId, Collection, CollectionId, SourceKind, SourceRef, Tag};
43pub use store::Store;
44pub use traits::{BookmarkSink, BookmarkSource, Page, WriteReport};
45
46/// Library version (re-exported from Cargo.toml).
47pub const VERSION: &str = env!("CARGO_PKG_VERSION");