Skip to main content

mant_core/
lib.rs

1//! Manual source, query, and output engine independent from its process hosts.
2
3mod bounded;
4mod catalog;
5mod definitions;
6mod executable;
7mod inline;
8mod mandoc;
9mod markdown;
10mod output;
11mod projection;
12mod query;
13mod search;
14mod source;
15mod text_safety;
16mod tldr;
17
18pub use catalog::{
19    AvailableDocument, AvailableDocumentKind, AvailableDocumentOrigin, list_available_documents,
20};
21pub use mandoc::{
22    MAX_MANUAL_BYTES, ManualError, ManualErrorKind, lower_mandoc_document, parse_manual_page,
23    parse_manual_source,
24};
25pub use markdown::{MarkdownParseError, ParsedMarkdown, TldrDirectiveError, parse_markdown};
26pub use output::{
27    MarkdownOptions, render_excerpt_json, render_excerpt_markdown,
28    render_excerpt_markdown_with_options, render_excerpt_text, render_markdown,
29    render_markdown_with_options, render_outline_json, render_outline_markdown,
30    render_outline_text, render_query_json, render_query_man, render_query_text,
31    render_search_json, render_search_markdown, render_search_text, render_update_json,
32};
33pub use projection::{
34    ProjectionError, SelectorCandidate, build_outline, build_outline_with_detail, select_excerpt,
35    select_explanation,
36};
37pub use query::{
38    DocumentResolver, MAX_MARKDOWN_BYTES, ManualLoadError, QueryError, QueryExecutionError,
39    QueryPolicy, QueryViewResult, execute_query, project_query_view, query_markdown_text,
40    resolve_query, resolve_query_with_policy, validate_query_request,
41};
42pub use search::{SearchError, search_query, validate_search_query};
43pub use source::{
44    LocateError, ManualIndex, ManualPage, ManualRequest, discover_manual_roots,
45    locate_manual_source_in,
46};
47pub use tldr::{
48    HostPlatform, TldrCacheError, TldrPageLocation, TldrParseError, TldrUpdateError,
49    get_system_tldr_cache_dirs, get_tldr_cache_dir, get_tldr_languages, get_tldr_platforms,
50    get_tldr_read_cache_dirs, normalize_tldr_topic, parse_tldr_command, parse_tldr_page,
51    read_cached_tldr_page, update_tldr_cache,
52};
53
54/// Reports the native contract version through the engine layer.
55#[must_use]
56pub const fn native_api_version() -> &'static str {
57    mant_ast::NATIVE_API_VERSION
58}
59
60#[cfg(test)]
61mod tests {
62    use super::native_api_version;
63
64    #[test]
65    fn exposes_the_ast_contract_version() {
66        assert_eq!(native_api_version(), "6");
67    }
68}