Skip to main content

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};