use wdev::Device;
use super::super::storage_session::StorageSession;
impl<'a, D: Device> StorageSession<'a, D> {
pub fn promote_range_index_to_tail(&self) -> usize {
0
}
pub fn restore_range_index_stub(&self) -> bool {
true
}
pub fn write_scan_to_output(&self, output: &mut Vec<u8>, records: &[Vec<u8>]) {
output.reserve(16 + records.iter().map(|r| r.len() + 8).sum::<usize>());
output.push(b'*');
output.extend_from_slice(itoa::Buffer::new().format(records.len()).as_bytes());
output.extend_from_slice(b"\r\n");
for record in records {
output.push(b'$');
output.extend_from_slice(itoa::Buffer::new().format(record.len()).as_bytes());
output.extend_from_slice(b"\r\n");
output.extend_from_slice(record);
output.extend_from_slice(b"\r\n");
}
}
pub fn try_write_record_resp(&self, output: &mut Vec<u8>, record: &[u8]) -> bool {
if record.is_empty() {
output.extend_from_slice(b"$-1\r\n");
return false;
}
output.push(b'$');
output.extend_from_slice(itoa::Buffer::new().format(record.len()).as_bytes());
output.extend_from_slice(b"\r\n");
output.extend_from_slice(record);
output.extend_from_slice(b"\r\n");
true
}
pub fn backfill_array_header(&self, output: &mut [u8], header_pos: usize, count: usize) {
let mut buf = itoa::Buffer::new();
let digits = buf.format(count);
let end = header_pos + 1 + digits.len() + 2;
if end <= output.len() {
output[header_pos] = b'*';
output[header_pos + 1..header_pos + 1 + digits.len()].copy_from_slice(digits.as_bytes());
output[end - 2..end].copy_from_slice(b"\r\n");
}
}
pub fn extract_tree_ptr(&self) -> Option<()> {
None
}
}