Skip to main content

mant_engine/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs)]
3
4mod bounded;
5mod catalog;
6mod definitions;
7mod executable;
8mod inline;
9mod mandoc;
10mod manual;
11mod manual_paths;
12mod markdown;
13mod markdown_mapping;
14mod output;
15mod projection;
16mod query;
17mod scope;
18mod search;
19mod source;
20mod text_safety;
21mod tldr;
22
23pub use catalog::{
24    AvailableDocument, AvailableDocumentKind, AvailableDocumentOrigin, CatalogError,
25    discover_documents, list_available_documents, query_available_documents,
26};
27pub use executable::find_host_executable;
28pub use mandoc::{
29    MAX_MANUAL_BYTES, ManualError, ManualErrorKind, lower_mandoc_document, parse_manual_bytes,
30    parse_manual_page, parse_manual_source,
31};
32pub use mant_ir::ResolvedContent;
33pub use manual::{is_command_manual_section, is_manual_section, parenthesized_manual_reference};
34pub use manual_paths::discover_manual_roots;
35pub use markdown::{MarkdownParseError, ParsedMarkdown, TldrDirectiveError, parse_markdown};
36pub use output::{
37    MarkdownOptions, SearchTextRole, render_excerpt_json, render_excerpt_markdown,
38    render_excerpt_markdown_with_options, render_excerpt_text, render_markdown,
39    render_markdown_with_options, render_outline_json, render_outline_markdown,
40    render_outline_text, render_query_json, render_query_man, render_query_text,
41    render_search_json, render_search_markdown, render_search_text, render_search_text_with,
42    render_update_json,
43};
44pub use projection::{
45    ProjectionError, SelectorCandidate, build_outline, build_outline_with_detail, select_excerpt,
46    select_explanation,
47};
48pub use query::{
49    DocumentResolver, MAX_MARKDOWN_BYTES, ManualLoadError, QueryError, QueryExecutionError,
50    QueryPolicy, QueryViewResult, execute_query, project_query_view, query_markdown_text,
51    query_roff_bytes, resolve_query, resolve_query_with_policy, validate_query_request,
52};
53pub use scope::{LoadedDocumentScope, ScopeQueryError, validate_scope_query_request};
54pub use search::{SearchError, search_query, validate_search_query};
55pub use source::{LocateError, ManualIndex, ManualPage, ManualRequest, locate_manual_source_in};
56pub use tldr::{
57    HostPlatform, TldrCacheError, TldrPageLocation, TldrParseError, get_system_tldr_cache_dirs,
58    get_tldr_cache_dir, get_tldr_languages, get_tldr_platforms, get_tldr_read_cache_dirs,
59    normalize_tldr_topic, parse_tldr_command, parse_tldr_page, read_cached_tldr_page,
60};
61#[cfg(feature = "tldr-update")]
62pub use tldr::{TldrUpdateError, update_tldr_cache};
63
64/// Reports the native contract version through the engine layer.
65#[must_use]
66pub const fn native_api_version() -> &'static str {
67    mant_protocol::NATIVE_API_VERSION
68}
69
70#[cfg(test)]
71mod tests {
72    use super::native_api_version;
73
74    #[test]
75    fn exposes_the_native_api_version() {
76        assert_eq!(native_api_version(), "0.9");
77    }
78}