use bytes::Bytes;
use http::{HeaderMap, Method, StatusCode, Uri};
use crate::Error;
pub trait Client {
type Response: Response;
async fn request(
&self,
method: Method,
uri: &Uri,
headers: HeaderMap,
) -> (Option<Uri>, Result<Self::Response, Error>);
}
pub trait Response {
fn status(&self) -> StatusCode;
fn headers(&self) -> &HeaderMap;
async fn chunk(&mut self, uri: &Uri) -> Result<Option<Bytes>, Error>;
}