pub trait Endpoint {
type ParseResponseOutput;
type RetryReason;
// Required methods
fn render_request(&self) -> Result<Request<Vec<u8>>, Error>;
fn parse_response(
&mut self,
response: Response<Vec<u8>>,
) -> Result<EndpointParseResponseOutput<Self::ParseResponseOutput, Self::RetryReason>, Error>;
}