httpio 0.2.4

A transport-agnostic, async HTTP/1.1 client library for any runtime.
Documentation
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()
    }
}