rd_helpdb/lib.rs
1//! Reader for installed R package help databases (aliases, `.rdx`/`.rdb`,
2//! topic metadata, typed help-search, vignette, and demo indexes), built on
3//! top of `rd-rds`.
4//!
5//! An installed package directory looks like:
6//!
7//! ```text
8//! <pkg_dir>/help/<pkg>.rdx # RDS file: index
9//! <pkg_dir>/help/<pkg>.rdb # concatenated binary records
10//! <pkg_dir>/help/aliases.rds # RDS: named character vector alias -> topic
11//! <pkg_dir>/Meta/Rd.rds # RDS: topic metadata, independent of help files
12//! <pkg_dir>/Meta/hsearch.rds # RDS: help-search index
13//! <pkg_dir>/Meta/vignette.rds # optional RDS: vignette data frame
14//! <pkg_dir>/Meta/demo.rds # optional RDS: two-column demo matrix
15//! ```
16//!
17//! `rd-helpdb` does not discover installed packages (R's `.libPaths()`
18//! logic is out of scope): [`PackageHelpDb::open`] takes an explicit
19//! package directory.
20//! [`HelpTopicIndex::read_installed`] reads topic metadata without requiring
21//! the compiled help database, allowing consumers to retain title-only help.
22//! [`HelpSearchIndex::read_installed`] likewise reads the four typed
23//! `Meta/hsearch.rds` matrices without opening compiled help.
24
25mod db;
26pub mod demo;
27mod error;
28mod rds;
29pub mod search;
30pub mod topics;
31mod util;
32pub mod vignette;
33
34pub use db::PackageHelpDb;
35pub use demo::{DemoEntry, DemoIndex};
36pub use error::Error;
37pub use rds::{decode_rdb_record, read_rds_file};
38pub use search::{
39 HelpSearchAliasEntry, HelpSearchBaseEntry, HelpSearchConceptEntry, HelpSearchIndex,
40 HelpSearchKeywordEntry,
41};
42pub use topics::{HelpTopicEntry, HelpTopicIndex, HelpTopicText};
43pub use vignette::{VignetteEntry, VignetteIndex};