Skip to main content

Crate claw_store

Crate claw_store 

Source
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.

Structs§

ClawStore