use crate::config::Config;
pub fn encode_len_prefixed(bytes: &[u8], cfg: Config) -> Vec<u8> {
let mut out = Vec::with_capacity(bytes.len() + 8);
if cfg.use_varint {
let mut v = bytes.len() as u64;
loop {
let mut b = (v & 0x7F) as u8;
v >>= 7;
if v != 0 {
b |= 0x80;
}
out.push(b);
if v == 0 { break; }
}
} else {
out.extend_from_slice(&(bytes.len() as u64).to_le_bytes());
}
out.extend_from_slice(bytes);
out
}
pub fn encode_str(s: &str, cfg: Config) -> Vec<u8> {
encode_len_prefixed(s.as_bytes(), cfg)
}