Struct forceps::CacheBuilder[][src]

pub struct CacheBuilder { /* fields omitted */ }
Expand description

A builder for the Cache object. Exposes APIs for configuring the initial setup of the database.

Examples

use forceps::CacheBuilder;

let cache = CacheBuilder::new("./cache")
    .dir_depth(3)
    .read_write_buffer(1024 * 16)
    .build()
    .await
    .unwrap();

Implementations

impl CacheBuilder[src]

pub fn new<P: AsRef<Path>>(path: P) -> Self[src]

Creates a new CacheBuilder, which can be used to customize and create a Cache instance.

The path supplied is the base directory of the cache instance.

Examples

use forceps::CacheBuilder;

let builder = CacheBuilder::new("./cache");
// Use other methods for configuration

pub fn dir_depth(self, depth: u8) -> Self[src]

Sets the depth of directories created in the cache folder.

Default is 2

This will set the depth of folders created and expected when reading and writing to the database. Increasing this value could increase the time to write to the database.

Breaking Warning

Changing this value on a live database without migrations will cause the database read operations to essentially skip over the data. This means that all data will be inaccessible, despite the metadata being accessible.

pub fn memory_lru_max_size(self, size: usize) -> Self[src]

Sets the maximum size (in bytes) for the in-memory Least-Recently-Used cache.

Default is 0

Setting this above 0 will create an in-memory store for recently-used entries. This will use up more RAM, but will also significantly increase speed on memcache HITs.

pub fn read_write_buffer(self, size: usize) -> Self[src]

Changes the in-memory buffer sizes for reading and writing fs operations.

Default is 8kb (8196)

Increasing this value may benefit performance as more bulk reading is involved. However, this option completely depends on the size of the data you are reading/writing.

pub fn track_access(self, toggle: bool) -> Self[src]

If set to true, this will track track the total hits and the last time an entry was accessed in the metadata.

Default is false

Be warned, turning this on will cause blocking metadata database calls to occur on read operations. This does not normally occur and can cause problems for async applications.

pub async fn build(self) -> Result<Cache>[src]

Builds the new Cache instance using the configured options of the builder.

Examples

use forceps::Cache;

let cache = Cache::new("./cache")
    .build()
    .await
    .unwrap();

Trait Implementations

impl Clone for CacheBuilder[src]

fn clone(&self) -> CacheBuilder[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for CacheBuilder[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for CacheBuilder[src]

fn default() -> Self[src]

Creates a CacheBuilder with the directory set to ./cache.

Examples

use forceps::CacheBuilder;

let cache = CacheBuilder::default()
    .build()
    .await
    .unwrap();

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V