Skip to main content

Crate cadvm_core

Crate cadvm_core 

Source
Expand description

cadvm-core — the version-control engine for cadvm.

This crate owns the repository model: commits, manifests, refs, branches and HEAD, plus the operations over them (snapshot, status, diff, checkout, switch, revert, gc). It is deliberately UI-free — all terminal formatting lives in cadvm-cli.

Everything here is pure Rust. There is no geometry, no CAD kernel and no FFI; STEP files are treated as opaque text with light metadata scanning (see step).

Re-exports§

pub use config::Config;
pub use error::CoreError;
pub use error::Result;
pub use format::CadFormat;
pub use model::Author;
pub use model::Commit;
pub use model::CommitBody;
pub use model::FileEntry;
pub use model::Manifest;
pub use model::MANIFEST_VERSION;
pub use repo::Head;
pub use repo::Repository;
pub use repo::DEFAULT_BRANCH;
pub use repo::REPO_DIR;
pub use status::working_tree_status;
pub use status::WorkingTreeStatus;
pub use step::EntityTypeCount;
pub use step::StepMetadata;

Modules§

checkout
Working-tree mutation: checkout, switch and revert.
config
Repository configuration (.cadvm/config.json) and author resolution.
diff
Manifest-level diffs (added / removed / modified files + metadata deltas).
error
Error type shared across cadvm-core.
format
Supported CAD file formats.
gc
Garbage collection: drop objects unreachable from any ref.
geom
Bridge to the cadvm-geom C++/OCCT helper (Step 2: geometric diff).
ignore
.cadvmignore support: a small, dependency-free pattern matcher.
index
Working-tree hash cache (.cadvm/index.json).
mesh
Lightweight metadata for triangle-mesh formats (STL, OBJ).
meshdiff
Mesh-based geometric diff for STL/OBJ — pure Rust, no Open CASCADE.
model
Core data types: commits, manifests and file entries.
repo
The Repository handle: on-disk layout, refs, HEAD and object I/O.
revision
Revision resolution: HEAD, HEAD~N, branch names, full and short hashes.
snapshot
Creating snapshots (commits) from the working tree.
status
Working-tree status: compare the working tree against a manifest.
step
Lightweight, textual analysis of STEP/STP files.
verify
Geometric verification: assert that a diff matches expectations.
worktree
Working-tree scanning helpers (find tracked-format files, hash them).

Structs§

BlobRef
How a tracked file is laid out in the store: the whole-file raw hash plus the ordered list of fixed-size chunks that reconstruct it.
ChunkRef
A reference to a stored chunk: its hash plus where it sits in the source file.
ObjectId
A content-addressed object identifier (blake3:<hex>).
Store
A content-addressed object store rooted at a .cadvm/objects directory.

Enums§

Category
The kind of object being stored. Each maps to a sub-directory under <objects>/.