1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//! `animedb` is a Rust-first anime and manga metadata crate for local media servers.
//!
//! It exposes two integration modes:
//!
//! - local-first with SQLite schema management, sync, merge, provenance, and FTS search
//! (enabled by default with `local-db` feature; requires rusqlite)
//! - remote-first with normalized access to supported providers without local persistence
//! (enabled by default with `remote` feature)
//!
//! The easiest entry points are [`AnimeDb`] for local catalogs and [`RemoteApi`] for direct
//! provider access.
//!
//! # Feature flags
//!
//! - `local-db` (default): local SQLite storage, sync state persistence, and the
//! [`AnimeDb`] type. This feature pulls in `rusqlite` with a bundled SQLite.
//! - `remote` (default): remote provider clients ([`AniListProvider`], [`TvmazeProvider`], etc.)
//! and the normalized data model ([`CanonicalMedia`], [`SearchOptions`], etc.).
//!
//! To use animedb as a pure remote-only client (no SQLite dependency), disable both
//! default features and enable only `remote`:
//! ```toml
//! animedb = { version = "0.1", default-features = false, features = ["remote"] }
//! ```
// ---------------------------------------------------------------------------
// Pure data types: always available (no SQLite dependency)
// ---------------------------------------------------------------------------
pub use ;
pub use ;
// Provider trait and concrete provider structs.
pub use ;
pub use ;
// Re-export sync-related types — they are pure data, no SQLite needed.
pub use ;
// ---------------------------------------------------------------------------
// local-db only: requires rusqlite
// ---------------------------------------------------------------------------
pub use ;
pub use ;