tracks lexicons and how many times they appeared on the jetstream

refactor(server): use vec instead of writeablebyteview for value to reduce size of values

ptr.pet a58727c0 a10342d6

verified
Changed files
+6 -11
server
src
+6 -11
server/src/db/handle.rs
··· 17 17 use crate::{ 18 18 db::{EventRecord, NsidHit, block}, 19 19 error::AppResult, 20 - utils::{ 21 - CLOCK, DefaultRateTracker, RateTracker, ReadVariableExt, WritableByteView, 22 - varints_unsigned_encoded, 23 - }, 20 + utils::{CLOCK, DefaultRateTracker, RateTracker, ReadVariableExt, varints_unsigned_encoded}, 24 21 }; 25 22 26 23 pub type ItemDecoder = block::ItemDecoder<Cursor<Slice>, NsidHit>; 27 - pub type ItemEncoder = block::ItemEncoder<WritableByteView, NsidHit>; 24 + pub type ItemEncoder = block::ItemEncoder<Vec<u8>, NsidHit>; 28 25 pub type Item = block::Item<NsidHit>; 29 26 30 27 pub struct Block { 31 28 pub written: usize, 32 29 pub key: ByteView, 33 - pub data: ByteView, 30 + pub data: Vec<u8>, 34 31 } 35 32 36 33 pub struct LexiconHandle { ··· 184 181 ) 185 182 .into()); 186 183 } 187 - let mut writer = ItemEncoder::new( 188 - WritableByteView::with_size(ItemEncoder::encoded_len(count)), 189 - count, 190 - ); 184 + let mut writer = 185 + ItemEncoder::new(Vec::with_capacity(ItemEncoder::encoded_len(count)), count); 191 186 let mut start_timestamp = None; 192 187 let mut end_timestamp = None; 193 188 let mut written = 0_usize; ··· 212 207 return Ok(Block { 213 208 written, 214 209 key, 215 - data: value.into_inner(), 210 + data: value, 216 211 }); 217 212 } 218 213 Err(std::io::Error::new(std::io::ErrorKind::WriteZero, "no items are in queue").into())