use std::time::SystemTime;
use crate::Stats;
use std::net::SocketAddr;
use std::time::Instant;
pub(crate) struct StatsBuilder {
start: SystemTime,
timer: Instant,
request_size: usize,
}
impl StatsBuilder {
pub fn start(request_size: usize) -> StatsBuilder {
StatsBuilder {
start: SystemTime::now(),
timer: Instant::now(),
request_size,
}
}
pub fn end(self, server: SocketAddr, response_size: usize) -> Stats {
Stats {
start: self.start,
duration: self.timer.elapsed(),
request_size: self.request_size,
server,
response_size,
}
}
}