Skip to main content

asbuilt_core/
lib.rs

1//! The language-agnostic core of asbuilt.
2//!
3//! A front-end (one per language; `asbuilt-rust` is the first) reads a
4//! code base and produces a [`Model`]: elements with ids, kinds, titles
5//! and paths, and relations between them labeled with the item names
6//! they reference. This crate owns that model, the `asbuilt.toml`
7//! [`Config`] that adds what no code can state (externals, the theme,
8//! the documentation settings), the `.c4` emitter and its reader, the
9//! drift check, and the generator of the documentation tree. It never
10//! spawns a process.
11
12#![doc(
13    html_logo_url = "https://padamson.github.io/asbuilt/mark.svg",
14    html_favicon_url = "https://padamson.github.io/asbuilt/mark.svg"
15)]
16
17pub mod check;
18pub mod config;
19pub mod docs;
20pub mod emit;
21pub mod error;
22pub mod externals;
23pub mod frontend;
24pub mod model;
25pub mod read;
26pub mod svg;
27pub mod theme;
28
29pub use check::{Change, ElementField, Outcome, compare, summarize};
30pub use config::{
31    ColorScheme, Config, DocsConfig, External, ExternalRelation, OutputConfig, ThemeColor,
32};
33pub use docs::{DocsOptions, Site};
34pub use emit::{EmitOptions, emit, view_ids};
35pub use error::{Error, Result};
36pub use frontend::{Frontend, survey};
37pub use model::{Deployment, Element, ElementKind, Id, Model, Relation, RelationKind};
38pub use read::{Written, WrittenElement, WrittenRelation, read};