gix_pack::cache::object

Struct MemoryCappedHashmap

source
pub struct MemoryCappedHashmap { /* private fields */ }
Available on crate feature object-cache-dynamic 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 capacity(&self) -> usize

The amount of bytes we can hold in total, or the value we saw in new(…).

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 Object for MemoryCappedHashmap

source§

fn put(&mut self, id: ObjectId, kind: Kind, data: &[u8])

Put the object going by id of kind with data into the cache.

source§

fn get(&mut self, id: &ObjectId, out: &mut Vec<u8>) -> Option<Kind>

Try to retrieve the object named id and place its data into out if available and return Some(kind) if found.

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.