Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub cache_size_bytes: usize,
    pub prefetch_count: u32,
    pub network_timeout_secs: u64,
}
Expand description

Aggregated configuration for the filesystem runtime.

This struct holds all tunable parameters for the system. It is typically constructed from command-line arguments or a configuration file and passed down to the core components during initialization. The configuration affects memory usage, I/O behavior, and network operation timeouts.

Fields§

§cache_size_bytes: usize

The maximum size of the in-memory block cache in bytes.

This parameter controls the memory footprint of the application. A larger cache improves read performance for repeated access but consumes more system RAM. The cache uses an LRU eviction policy when this limit is reached.

§prefetch_count: u32

The number of blocks to prefetch sequentially during read operations.

This setting optimizes read throughput for sequential access patterns by fetching ahead of the request cursor. A value of 0 disables prefetching, which may be desirable for random access workloads where prefetching would waste bandwidth.

§network_timeout_secs: u64

The timeout duration in seconds for network operations.

This applies to remote storage backends like S3 or HTTP. It ensures that operations do not hang indefinitely in case of network partitions or unresponsive servers. Operations that exceed this timeout will return an I/O error.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Self

Provides sensible default values for the configuration.

These defaults are chosen to provide a balance between performance and resource usage for a typical desktop environment: 512MB cache, 4-block prefetch, and 30-second network timeout. These values can be overridden based on available system resources and workload characteristics.

§Returns

Returns a new Config instance with default values.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

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

Source§

fn vzip(self) -> V