pub struct MemoryLimits {
pub max_facts_per_namespace: usize,
pub max_chunks_per_document: usize,
pub max_content_bytes: usize,
pub max_embedding_concurrency: usize,
pub max_db_size_bytes: u64,
pub embedding_timeout: Duration,
}Expand description
Resource limits for the memory system.
Prevents runaway resource usage. All limits have defaults tuned for a laptop-class server (8GB RAM, SSD storage).
Fields§
§max_facts_per_namespace: usizeMaximum number of facts per namespace. Default: 100_000.
max_chunks_per_document: usizeMaximum number of chunks per document. Default: 1_000.
max_content_bytes: usizeMaximum content size in bytes for a single fact or message. Default: 1 MB (1_048_576 bytes).
max_embedding_concurrency: usizeMaximum number of concurrent embedding requests. Hard-capped at 32 regardless of config. Default: 8.
max_db_size_bytes: u64Maximum total database size in bytes. 0 = unlimited. Default: 0 (unlimited).
embedding_timeout: DurationEmbedding request timeout. Default: 30 seconds.
Implementations§
Source§impl MemoryLimits
impl MemoryLimits
Sourcepub fn normalize_and_validate(self) -> Result<Self, MemoryError>
pub fn normalize_and_validate(self) -> Result<Self, MemoryError>
Normalize and validate limits to hard caps.
Trait Implementations§
Source§impl Clone for MemoryLimits
impl Clone for MemoryLimits
Source§fn clone(&self) -> MemoryLimits
fn clone(&self) -> MemoryLimits
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MemoryLimits
impl Debug for MemoryLimits
Source§impl Default for MemoryLimits
impl Default for MemoryLimits
Source§impl<'de> Deserialize<'de> for MemoryLimits
impl<'de> Deserialize<'de> for MemoryLimits
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for MemoryLimits
impl RefUnwindSafe for MemoryLimits
impl Send for MemoryLimits
impl Sync for MemoryLimits
impl Unpin for MemoryLimits
impl UnsafeUnpin for MemoryLimits
impl UnwindSafe for MemoryLimits
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more