pub struct RateLimitConfig {
pub max_requests: u32,
pub window_secs: u64,
pub burst_size: u32,
pub enabled: bool,
}Expand description
Rate limiting configuration
§Examples
Using the default configuration:
use chie_shared::RateLimitConfig;
let config = RateLimitConfig::default();
assert_eq!(config.max_requests, 100);
assert_eq!(config.window_secs, 60);
assert_eq!(config.burst_size, 20);
assert!(config.enabled);
assert!(config.validate().is_ok());Building a strict rate limit configuration:
use chie_shared::RateLimitConfigBuilder;
let config = RateLimitConfigBuilder::new()
.max_requests(10)
.window_secs(1) // 10 requests per second
.burst_size(5) // Allow small bursts
.enabled(true)
.build();
assert_eq!(config.max_requests, 10);
assert_eq!(config.window_secs, 1);
assert!(config.validate().is_ok());Fields§
§max_requests: u32Maximum requests per time window
window_secs: u64Time window in seconds
burst_size: u32Burst allowance (requests above limit temporarily)
enabled: boolEnable rate limiting
Implementations§
Source§impl RateLimitConfig
impl RateLimitConfig
Sourcepub fn validate(&self) -> ChieResult<()>
pub fn validate(&self) -> ChieResult<()>
Trait Implementations§
Source§impl Clone for RateLimitConfig
impl Clone for RateLimitConfig
Source§fn clone(&self) -> RateLimitConfig
fn clone(&self) -> RateLimitConfig
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 RateLimitConfig
impl Debug for RateLimitConfig
Source§impl Default for RateLimitConfig
impl Default for RateLimitConfig
Source§impl<'de> Deserialize<'de> for RateLimitConfig
impl<'de> Deserialize<'de> for RateLimitConfig
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 RateLimitConfig
impl RefUnwindSafe for RateLimitConfig
impl Send for RateLimitConfig
impl Sync for RateLimitConfig
impl Unpin for RateLimitConfig
impl UnwindSafe for RateLimitConfig
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