1#![warn(missing_docs)]
41
42#[cfg(feature = "ast")]
43pub mod ast;
44pub mod bootstrap;
45pub mod brain;
46pub mod context;
47pub mod doctor;
48pub mod error;
49pub mod exporter;
50pub mod fts;
51pub mod id;
52pub mod ignore;
53pub mod indexer;
54pub mod mmap;
55pub mod mutator;
56pub mod note;
57#[cfg(feature = "obsidian")]
58pub mod obsidian;
59pub mod query;
60pub mod registry;
61pub mod storage;
62pub mod symbols;
63pub mod types;
64pub mod watch;
65
66pub use bootstrap::{
67 bootstrap_noninteractive, bootstrap_workspace, BootstrapAction, BootstrapMode,
68 BootstrapOptions, BootstrapReport,
69};
70pub use brain::Brain;
71pub use context::ContextOptions;
72pub use doctor::{run_doctor, DoctorFinding, DoctorReport, DoctorSeverity};
73pub use error::{BrainError, Result};
74pub use exporter::{BrainExporter, BrainImporter, PortableBrainBundle, BUNDLE_VERSION};
75pub use ignore::{recommended_ignore_extras, write_rustbrainignore, IgnoreSet};
76pub use indexer::WorkspaceIndexer;
77pub use mmap::{CsrCompiler, CsrMmapGraph, MMAP_VERSION};
78pub use note::{create_note, default_dir_for_type, slugify_title, NoteCreated, NoteNewOptions};
79pub use query::{PendingLink, QueryOptions, RankedHit};
80pub use registry::{GlobalRankedHit, GlobalRegistry};
81pub use storage::{Database, SCHEMA_VERSION};
82pub use symbols::{extract_symbol_refs, symbol_node_id, SymbolRef};
83pub use types::{
84 xml_escape, ContextBundle, ContextNode, ContextRole, Edge, Node, NodeType, SyncStats,
85};
86pub use watch::WatchConfig;
87
88#[cfg(feature = "ast")]
89pub use ast::{compute_symbol_hash, AstError, CodeAstParser, SymbolAnchor};
90
91#[cfg(feature = "obsidian")]
92pub use obsidian::{
93 extract_wikilinks, parse_frontmatter, CanvasEdge, CanvasNode, Frontmatter, ObsidianCanvas,
94 WikiLink,
95};
96
97#[cfg(feature = "jshift")]
98pub use mutator::{extract_json_field_slice, update_json_field_inplace};
99
100#[cfg(feature = "watch")]
101pub use watch::watch_workspace;