Expand description
Content-addressed repository storage for Claw VCS.
claw-store owns .claw/ layout operations: loose object storage, refs,
HEAD, reflogs, lockfiles, and object loading through COF decoding. It keeps
storage behavior separate from CLI and network concerns.
§Example
use claw_core::object::Object;
use claw_core::types::Blob;
use claw_store::ClawStore;
let temp = tempfile::tempdir()?;
let store = ClawStore::init(temp.path())?;
let id = store.store_object(&Object::Blob(Blob {
data: b"hello from claw".to_vec(),
media_type: Some("text/plain".to_string()),
}))?;
assert!(store.has_object(&id));
assert!(matches!(store.load_object(&id)?, Object::Blob(_)));Re-exports§
pub use error::StoreError;pub use head::HeadState;
Modules§
- error
- Store error types.
- head
- HEAD file read/write helpers.
- index
- Worktree index data structures.
- layout
.claw/repository layout helpers.- lockfile
- Filesystem lockfile helper.
- loose
- Loose object storage helpers.
- pack
- Packfile storage helpers.
- reflog
- Reference log helpers.
- refs
- Reference validation and storage helpers.
- repo
- Repository config read/write helpers.
- tree_
diff - Tree diff helpers used by snapshots.