krabka_throttle/runtime/
state.rs1use {super::TokenBucket, std::sync::Arc};
8
9#[derive(Debug)]
11pub struct ThrottleState {
12 pub leader_out: Arc<TokenBucket>,
13 pub follower_in: Arc<TokenBucket>,
14 pub alter_log_dirs: Arc<TokenBucket>,
15}
16
17impl ThrottleState {
18 #[must_use]
19 pub fn new() -> Self {
20 Self {
21 leader_out: Arc::new(TokenBucket::new()),
22 follower_in: Arc::new(TokenBucket::new()),
23 alter_log_dirs: Arc::new(TokenBucket::new()),
24 }
25 }
26}
27
28impl Default for ThrottleState {
29 fn default() -> Self { Self::new() }
30}