pub struct CoinStoreConfig {
pub backend: StorageBackend,
pub storage_path: PathBuf,
pub max_snapshots: usize,
pub max_query_results: usize,
pub lmdb_map_size: usize,
pub rocksdb_write_buffer_size: usize,
pub rocksdb_max_open_files: i32,
pub bloom_filter: bool,
}Expand description
Tunable parameters for constructing a crate::coin_store::CoinStore.
Use Default::default for SPEC defaults, then chain with_* to override only what you need.
Field semantics follow SPEC §2.6; backend-specific fields apply only when that engine is open
(e.g. lmdb_map_size is ignored for RocksDB-only runs).
§Requirement: API-003
§Spec: docs/requirements/domains/crate_api/specs/API-003.md
Fields§
§backend: StorageBackendStorage engine to open (LMDB vs RocksDB).
storage_path: PathBufRoot directory for database files.
max_snapshots: usizeRetention cap for on-disk state snapshots (future PRF-008).
max_query_results: usizeUpper bound for batch query result size (QRY domain; Chia max_items parity).
lmdb_map_size: usizeLMDB map size (heed / EnvOpenOptions::map_size).
rocksdb_write_buffer_size: usizeRocksDB write_buffer_size (memtable budget per column family group).
rocksdb_max_open_files: i32RocksDB max_open_files (API-003 / SPEC §2.6 default 1000).
RocksDB engine note: RocksDbBackend in src/storage/rocksdb.rs opens with FIFO compaction on
archive_coin_records and state_snapshots (STO-006). The upstream
rocksdb crate requires max_open_files = -1 in that configuration, so the backend does not
apply this field when opening the DB. The field and Self::with_rocksdb_max_open_files remain for
forward compatibility, tests that assert config round-trips, and any alternate layout that drops FIFO.
bloom_filter: boolWhen true, RocksDB uses a block-based bloom filter (see BLOOM_FILTER_BITS_PER_KEY).
Implementations§
Source§impl CoinStoreConfig
impl CoinStoreConfig
Sourcepub fn default_with_path(path: impl AsRef<Path>) -> Self
pub fn default_with_path(path: impl AsRef<Path>) -> Self
Defaults with a caller-supplied storage path (the common case for CoinStore::new).
Equivalent to CoinStoreConfig::default() then Self::with_storage_path.
Sourcepub fn with_backend(self, backend: StorageBackend) -> Self
pub fn with_backend(self, backend: StorageBackend) -> Self
Builder: select LMDB vs RocksDB.
Sourcepub fn with_storage_path(self, path: impl Into<PathBuf>) -> Self
pub fn with_storage_path(self, path: impl Into<PathBuf>) -> Self
Builder: filesystem directory for the database.
Sourcepub fn with_max_snapshots(self, count: usize) -> Self
pub fn with_max_snapshots(self, count: usize) -> Self
Builder: snapshot retention count.
Sourcepub fn with_max_query_results(self, count: usize) -> Self
pub fn with_max_query_results(self, count: usize) -> Self
Builder: batch query result ceiling.
Sourcepub fn with_lmdb_map_size(self, size: usize) -> Self
pub fn with_lmdb_map_size(self, size: usize) -> Self
Builder: LMDB environment map size in bytes.
Sourcepub fn with_rocksdb_write_buffer_size(self, size: usize) -> Self
pub fn with_rocksdb_write_buffer_size(self, size: usize) -> Self
Builder: RocksDB write buffer size in bytes.
Sourcepub fn with_rocksdb_max_open_files(self, count: i32) -> Self
pub fn with_rocksdb_max_open_files(self, count: i32) -> Self
Builder: RocksDB max_open_files (stored on config; see CoinStoreConfig::rocksdb_max_open_files for when it applies).
Sourcepub fn with_bloom_filter(self, enabled: bool) -> Self
pub fn with_bloom_filter(self, enabled: bool) -> Self
Builder: enable or disable RocksDB bloom filters (ignored for LMDB).
Trait Implementations§
Source§impl Clone for CoinStoreConfig
impl Clone for CoinStoreConfig
Source§fn clone(&self) -> CoinStoreConfig
fn clone(&self) -> CoinStoreConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CoinStoreConfig
impl Debug for CoinStoreConfig
Source§impl Default for CoinStoreConfig
impl Default for CoinStoreConfig
Source§impl PartialEq for CoinStoreConfig
impl PartialEq for CoinStoreConfig
impl Eq for CoinStoreConfig
impl StructuralPartialEq for CoinStoreConfig
Auto Trait Implementations§
impl Freeze for CoinStoreConfig
impl RefUnwindSafe for CoinStoreConfig
impl Send for CoinStoreConfig
impl Sync for CoinStoreConfig
impl Unpin for CoinStoreConfig
impl UnsafeUnpin for CoinStoreConfig
impl UnwindSafe for CoinStoreConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.