// the rkey is stored as its canonical text (13-char base32 for TIDs), not
// tagged bytes: text order is MST order, so a repo's records lay out in
// exactly MST walk order and `generate_car` no longer re-sorts.
pub fn record_key_trimmed(did: &TrimmedDid, collection: &str, rkey: &DbRkey) -> Vec<u8> {
let mut key = record_prefix_trimmed(did);
let rkey = rkey.to_smolstr();
let mut key = Vec::with_capacity(did.len() + 1 + collection.len() + 1 + rkey.len());
did.write_to_vec(&mut key);
key.push(REC_SEP);
key.extend_from_slice(collection.as_bytes());
key.push(REC_PATH_SEP);
key.extend_from_slice(rkey.to_smolstr().as_bytes());
key.extend_from_slice(rkey.as_bytes());
key
}
// key format: {DID} 00 {collection} 2f {rkey text}
556 unmodified lines
Expand all