use crate::common::Record;
pub const VAR_VALUE_LEN: usize = 256;
pub fn make_key(id: u64) -> [u8; 8] {
id.to_be_bytes()
}
pub fn make_const_value(id: u64) -> [u8; 16] {
let mut v = [0u8; 16];
v[..8].copy_from_slice(&id.to_be_bytes());
v[8..].copy_from_slice(&id.wrapping_mul(0x517c_c1b7_2722_0a95).to_be_bytes());
v
}
pub fn make_var_value(id: u64) -> Vec<u8> {
let mut v = vec![0u8; VAR_VALUE_LEN];
let seed = id.wrapping_mul(0x9e37_79b9_7f4a_7c15);
for (i, b) in v.iter_mut().enumerate() {
*b = (seed.wrapping_add(i as u64) & 0xff) as u8;
}
v
}
pub fn make_record(id: u64) -> Record {
Record {
id,
value: id.wrapping_mul(0x517c_c1b7_2722_0a95),
tags: vec![format!("tag-{}", id % 10), format!("cat-{}", id % 5)],
}
}
pub fn make_group_key(group: u32, id: u32) -> [u8; 8] {
let mut key = [0u8; 8];
key[..4].copy_from_slice(&group.to_be_bytes());
key[4..].copy_from_slice(&id.to_be_bytes());
key
}