use girt::{EntryMode, ObjectId, Tree, TreeEntry};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let tree = Tree::new(
girt::ObjectFormat::Sha1,
vec![TreeEntry {
mode: EntryMode::Blob,
name: b"hello.txt".to_vec(),
id: ObjectId::for_blob(girt::ObjectFormat::Sha1, b"hello from girt\n"),
}],
)?;
let payload = tree.encode();
let parsed = Tree::parse(girt::ObjectFormat::Sha1, &payload)?;
parsed.validate()?;
assert_eq!(parsed.entries(), tree.entries());
println!("tree {} ({} payload bytes)", tree.id(), payload.len());
Ok(())
}