Added the playlist generator
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
use tokio::sync::Mutex;
|
||||
use tokio::time::Instant;
|
||||
|
||||
/// A simple rate limiter that enforces a minimum interval between requests.
|
||||
/// Can be cloned (via Arc) to share across multiple clients.
|
||||
#[derive(Clone)]
|
||||
pub struct RateLimiter {
|
||||
last_request: Mutex<Instant>,
|
||||
last_request: Arc<Mutex<Instant>>,
|
||||
interval: Duration,
|
||||
}
|
||||
|
||||
impl RateLimiter {
|
||||
pub fn new(interval: Duration) -> Self {
|
||||
Self {
|
||||
last_request: Mutex::new(Instant::now() - interval),
|
||||
last_request: Arc::new(Mutex::new(Instant::now() - interval)),
|
||||
interval,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user