brink-db 0.0.15

Incremental project database for inkle's ink narrative scripting language
Documentation
//! Incremental project database for inkle's ink narrative scripting language.
//!
//! `ProjectDb` is the query-shaped project model (scripting-substrate spec
//! §3): file texts are salsa inputs, and every pipeline stage — parse, HIR,
//! include graph, symbol index, resolution, signatures, analysis, LIR,
//! `StoryData` — is a memoized tracked query with dependency tracking and
//! early cutoff. This crate is the only one that knows salsa exists; stage
//! crates (`brink-syntax`, `brink-ir`, `brink-analyzer`,
//! `brink-codegen-inkb`) export plain functions the queries call. The
//! compiler (one-shot), LSP, and IDE all use `ProjectDb` as their project
//! model.

mod db;
mod determinism;
mod include_graph;
#[cfg(feature = "memory-introspection")]
mod memory;
mod modules;
mod queries;

pub use brink_analyzer::{
    BodyTypes, EffectAtoms, EffectRow, InferenceResult, InferredSig, Sig, Ty,
};
pub use brink_ir::FileId;
pub use db::{ProjectDb, compute_relative_path, resolve_include_path};
#[cfg(feature = "memory-introspection")]
pub use memory::{IngredientKind, IngredientMemory};
pub use queries::{
    CompileProduct, FileDiagnostics, LirProduct, ResolvedProject, has_recognized_source_extension,
    is_native_source_path, partition_diagnostics,
};
// Extracted to the `brink-source-tree` L0 leaf (decision-log 2026-07-23,
// issue #1323 ruling on #1325) so `brink-project-config` can depend on the
// seam without a cycle through this crate. Re-exported here so
// `brink_db::SourceTree`/`brink_db::InMemory` keep resolving for existing
// consumers (`brink-driver`'s `discover_native` among them) unchanged.
pub use brink_source_tree::{InMemory, SourceTree};