Skip to main content

cadvm_core/
lib.rs

1//! `cadvm-core` — the version-control engine for cadvm.
2//!
3//! This crate owns the repository model: commits, manifests, refs, branches and
4//! HEAD, plus the operations over them (snapshot, status, diff, checkout,
5//! switch, revert, gc). It is deliberately UI-free — all terminal formatting
6//! lives in `cadvm-cli`.
7//!
8//! Everything here is pure Rust. There is no geometry, no CAD kernel and no FFI;
9//! STEP files are treated as opaque text with light metadata scanning (see
10//! [`step`]).
11
12pub mod checkout;
13pub mod config;
14pub mod diff;
15pub mod error;
16pub mod format;
17pub mod gc;
18pub mod geom;
19pub mod ignore;
20pub mod index;
21pub mod mesh;
22pub mod meshdiff;
23pub mod model;
24pub mod repo;
25pub mod revision;
26pub mod snapshot;
27pub mod status;
28pub mod step;
29pub mod verify;
30pub mod worktree;
31
32pub use config::Config;
33pub use error::{CoreError, Result};
34pub use format::CadFormat;
35pub use model::{Author, Commit, CommitBody, FileEntry, Manifest, MANIFEST_VERSION};
36pub use repo::{Head, Repository, DEFAULT_BRANCH, REPO_DIR};
37pub use status::{working_tree_status, WorkingTreeStatus};
38pub use step::{EntityTypeCount, StepMetadata};
39
40// Re-export storage primitives so downstream crates can depend on `cadvm-core`
41// alone for the common types.
42pub use cadvm_store::{BlobRef, Category, ChunkRef, ObjectId, Store};