pub struct ResourceLimits {
pub max_peer_connections: usize,
pub max_relay_connections: usize,
pub max_memory_mb: usize,
pub crdt_document_limit_mb: usize,
pub connection_timeout: Duration,
pub anti_entropy_max_interval: Duration,
pub upload_rate_limit_mbps: Option<u64>,
pub download_rate_limit_mbps: Option<u64>,
}Expand description
Resource limits manager
Enforces resource constraints to prevent:
- Connection exhaustion
- Out-of-memory conditions
- Bandwidth saturation
- Excessive sync intervals
Fields§
§max_peer_connections: usize§max_relay_connections: usize§max_memory_mb: usize§crdt_document_limit_mb: usize§connection_timeout: Duration§anti_entropy_max_interval: Duration§upload_rate_limit_mbps: Option<u64>§download_rate_limit_mbps: Option<u64>Implementations§
Source§impl ResourceLimits
impl ResourceLimits
Sourcepub fn from_config(config: ResourceLimitsConfig) -> Self
pub fn from_config(config: ResourceLimitsConfig) -> Self
Create resource limits from configuration
Sourcepub fn low_resource() -> Self
pub fn low_resource() -> Self
Create low-resource preset for constrained devices
Sourcepub fn high_performance() -> Self
pub fn high_performance() -> Self
Create high-performance preset for powerful devices
Sourcepub fn enforce_peer_limit(&self, current: usize) -> ResourceLimitResult<()>
pub fn enforce_peer_limit(&self, current: usize) -> ResourceLimitResult<()>
Enforce peer connection limit
Sourcepub fn enforce_memory_limit(&self, current_mb: usize) -> ResourceLimitResult<()>
pub fn enforce_memory_limit(&self, current_mb: usize) -> ResourceLimitResult<()>
Enforce memory limit
Sourcepub fn enforce_relay_limit(&self, current: usize) -> ResourceLimitResult<()>
pub fn enforce_relay_limit(&self, current: usize) -> ResourceLimitResult<()>
Enforce relay connection limit
Sourcepub fn enforce_document_limit(&self, size_mb: usize) -> ResourceLimitResult<()>
pub fn enforce_document_limit(&self, size_mb: usize) -> ResourceLimitResult<()>
Enforce CRDT document size limit
Sourcepub fn check_memory_usage(&self, current_mb: usize) -> ResourceLimitResult<()>
pub fn check_memory_usage(&self, current_mb: usize) -> ResourceLimitResult<()>
Check memory usage against limit
Sourcepub fn enforce_upload_rate(&self, current_mbps: f64) -> ResourceLimitResult<()>
pub fn enforce_upload_rate(&self, current_mbps: f64) -> ResourceLimitResult<()>
Enforce upload rate limit
Sourcepub fn enforce_download_rate(
&self,
current_mbps: f64,
) -> ResourceLimitResult<()>
pub fn enforce_download_rate( &self, current_mbps: f64, ) -> ResourceLimitResult<()>
Enforce download rate limit
Sourcepub fn upload_rate_bytes_per_sec(&self) -> Option<u64>
pub fn upload_rate_bytes_per_sec(&self) -> Option<u64>
Convert upload rate limit to bytes per second
Sourcepub fn download_rate_bytes_per_sec(&self) -> Option<u64>
pub fn download_rate_bytes_per_sec(&self) -> Option<u64>
Convert download rate limit to bytes per second
Sourcepub fn validate(&self) -> ResourceLimitResult<()>
pub fn validate(&self) -> ResourceLimitResult<()>
Validate configuration for consistency
Sourcepub fn check_all(&self, usage: &ResourceUsage) -> ResourceLimitResult<()>
pub fn check_all(&self, usage: &ResourceUsage) -> ResourceLimitResult<()>
Check all limits against current usage
Sourcepub fn measure_current_usage(&self) -> ResourceUsage
pub fn measure_current_usage(&self) -> ResourceUsage
Get current resource usage from system
Trait Implementations§
Source§impl Clone for ResourceLimits
impl Clone for ResourceLimits
Source§fn clone(&self) -> ResourceLimits
fn clone(&self) -> ResourceLimits
Returns a duplicate of the value. Read more
1.0.0 · 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 ResourceLimits
impl Debug for ResourceLimits
Auto Trait Implementations§
impl Freeze for ResourceLimits
impl RefUnwindSafe for ResourceLimits
impl Send for ResourceLimits
impl Sync for ResourceLimits
impl Unpin for ResourceLimits
impl UnwindSafe for ResourceLimits
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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