use futures::{AsyncBufRead, AsyncWrite};
use std::time::{Duration, Instant};
use crate::structures::connection::http_connection::HttpConnection;
pub struct HttpConnectionPoolState<R: AsyncBufRead + Unpin, W: AsyncWrite + Unpin> {
pub time_stamp: Instant,
pub connection: HttpConnection<R, W>,
pub idle_timeout: Duration,
}
impl<R: AsyncBufRead + Unpin, W: AsyncWrite + Unpin> HttpConnectionPoolState<R, W> {
pub fn new(connection: HttpConnection<R, W>, idle_timeout: Duration) -> Self {
HttpConnectionPoolState {
time_stamp: Instant::now(),
connection,
idle_timeout,
}
}
pub fn stale(&self) -> bool {
self.time_stamp + self.idle_timeout < Instant::now()
}
}