Swap Arc<Option> into Option<Arc>

This commit is contained in:
Igor Katson 2024-11-16 10:58:26 +00:00
parent 1dbdeb5bbe
commit 855e7ccaeb
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5

View file

@ -13,15 +13,12 @@ pub struct LimitsConfig {
pub download_bps: Option<NonZero<u32>>, pub download_bps: Option<NonZero<u32>>,
} }
struct Limit(RwLock<Arc<Option<RateLimiter>>>); struct Limit(RwLock<Option<Arc<RateLimiter>>>);
impl Limit { impl Limit {
fn new_inner(bps: Option<NonZero<u32>>) -> Arc<Option<RateLimiter>> { fn new_inner(bps: Option<NonZero<u32>>) -> Option<Arc<RateLimiter>> {
let bps = match bps { let bps = bps?;
Some(bps) => bps, Some(Arc::new(RateLimiter::direct(Quota::per_second(bps))))
None => return Arc::new(None),
};
Arc::new(Some(RateLimiter::direct(Quota::per_second(bps))))
} }
fn new(bps: Option<NonZero<u32>>) -> Self { fn new(bps: Option<NonZero<u32>>) -> Self {