Complete the pinned parity example module closure

Adopt only tests/common/mod.rs from exact T835 checkpoint 29cb24a878. The already-adopted 223aa125 parity example references this missing module, preventing root cargo fmt. No in-progress product fixes or full test suites are incorporated.
This commit is contained in:
2026-11-04 11:04:33 +09:00
parent 3078d0cee9
commit 267f4d6842
@@ -0,0 +1,77 @@
use content_history::{ContentId, Entry, History, Object, ObjectId, Tree};
pub fn objects() -> Vec<Object> {
let empty = Object::Blob(Vec::new());
let text = Object::Blob(b"a\r\n\xc3\xa9\0".to_vec());
let ObjectId::Blob(empty_id) = empty.id() else {
unreachable!()
};
let ObjectId::Blob(text_id) = text.id() else {
unreachable!()
};
let entries = vec![
Entry {
key: "é".into(),
target: ContentId::Blob(text_id),
},
Entry {
key: "z".into(),
target: ContentId::Blob(empty_id),
},
];
let map = Object::Tree(Tree::map(entries.clone()).unwrap());
let sequence = Object::Tree(Tree::sequence(entries).unwrap());
let ObjectId::Tree(root) = map.id() else {
unreachable!()
};
let first = Object::History(History {
root,
parent: None,
actor: "user:編集".into(),
timestamp_micros: -1,
});
let ObjectId::History(parent) = first.id() else {
unreachable!()
};
let returned = Object::History(History {
root,
parent: Some(parent),
actor: "user:編集".into(),
timestamp_micros: 0,
});
vec![
empty,
text,
Object::Tree(Tree::map(vec![]).unwrap()),
Object::Tree(Tree::sequence(vec![]).unwrap()),
map,
sequence,
first,
returned,
Object::Tree(
Tree::map(vec![Entry {
key: "nested".into(),
target: ContentId::Tree(root),
}])
.unwrap(),
),
]
}
pub fn digest_bytes(object: &Object) -> [u8; 32] {
match object.id() {
ObjectId::Blob(id) => *id.as_bytes(),
ObjectId::Tree(id) => *id.as_bytes(),
ObjectId::History(id) => *id.as_bytes(),
}
}
pub fn parity_word(index: u32) -> u32 {
let objects = objects();
let Some(object) = objects.get(index as usize / 8) else {
return u32::MAX;
};
let hash = digest_bytes(object);
let offset = (index as usize % 8) * 4;
u32::from_be_bytes(hash[offset..offset + 4].try_into().unwrap())
}