Skip to main content

odb_blob/
odb_blob.rs

1//! Write a blob into the object database and read it back with [`Odb::write`] and [`Odb::read`].
2//!
3//! Run: `cargo run -p grit-lib --example odb_blob`
4
5use grit_lib::objects::{Object, ObjectKind};
6use grit_lib::repo::init_repository;
7
8fn main() -> grit_lib::error::Result<()> {
9    let root = tempfile::tempdir()?;
10    let repo = init_repository(root.path(), false, "main", None, "files")?;
11
12    let payload = b"hello, object database\n";
13    let oid = repo.odb.write(ObjectKind::Blob, payload)?;
14    println!("stored blob: {oid}");
15
16    let Object { kind, data } = repo.odb.read(&oid)?;
17    assert_eq!(kind, ObjectKind::Blob);
18    println!("round-trip: {}", String::from_utf8_lossy(&data));
19
20    Ok(())
21}