use crate::request_rate::rate_to_string::rate_to_string;
use serde::{Deserialize, Serialize};
use std::time::Duration;
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]
pub struct TargetRate {
pub requests: u16,
pub duration: Duration,
}
impl std::convert::From<&TargetRate> for String {
fn from(target_rate: &TargetRate) -> Self {
rate_to_string(
u64::from(target_rate.requests),
&target_rate.duration,
"request",
"requests",
)
} }
impl std::default::Default for TargetRate {
fn default() -> Self {
Self {
requests: 0, duration: Duration::from_secs(1),
} } }
impl std::fmt::Display for TargetRate {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{}", String::from(self))
} }