slack_morphism/ratectl/
tier.rs

1use crate::ratectl::*;
2use lazy_static::lazy_static;
3use std::collections::HashMap;
4
5#[derive(Debug, Eq, PartialEq, Clone, Hash)]
6pub enum SlackApiMethodRateTier {
7    Tier1,
8    Tier2,
9    Tier3,
10    Tier4,
11}
12
13lazy_static! {
14    pub static ref SLACK_TIERS_DEFAULT_LIMITS_MAP: HashMap<SlackApiMethodRateTier, SlackApiRateControlLimit> =
15        vec![
16            (
17                SlackApiMethodRateTier::Tier1,
18                SlackApiRateControlLimit::new(5, std::time::Duration::from_secs(60))
19            ),
20            (
21                SlackApiMethodRateTier::Tier2,
22                SlackApiRateControlLimit::new(20, std::time::Duration::from_secs(60))
23            ),
24            (
25                SlackApiMethodRateTier::Tier3,
26                SlackApiRateControlLimit::new(50, std::time::Duration::from_secs(60))
27            ),
28            (
29                SlackApiMethodRateTier::Tier4,
30                SlackApiRateControlLimit::new(100, std::time::Duration::from_secs(60))
31            )
32        ]
33        .into_iter()
34        .collect();
35}