gix_pack::cache::lru

Struct MemoryCappedHashmap

Source
pub struct MemoryCappedHashmap { /* private fields */ }
Available on crate feature pack-cache-lru-dynamic and (crate features pack-cache-lru-dynamic or pack-cache-lru-static) only.
Expand description

An LRU cache with hash map backing and an eviction rule based on the memory usage for object data in bytes.

Implementations§

Source§

impl MemoryCappedHashmap

Source

pub fn new(memory_cap_in_bytes: usize) -> MemoryCappedHashmap

Return a new instance which evicts least recently used items if it uses more than memory_cap_in_bytes object data.

Trait Implementations§

Source§

impl DecodeEntry for MemoryCappedHashmap

Source§

fn put( &mut self, pack_id: u32, offset: u64, data: &[u8], kind: Kind, compressed_size: usize, )

Store a fully decoded object at offset of kind with compressed_size and data in the cache. Read more
Source§

fn get( &mut self, pack_id: u32, offset: u64, out: &mut Vec<u8>, ) -> Option<(Kind, usize)>

Attempt to fetch the object at offset and store its decoded bytes in out, as previously stored with DecodeEntry::put(), and return its (object kind, decompressed_size)

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.