Trait ipfs_api_prelude::Backend [−][src]
pub trait Backend {
type HttpRequest;
type HttpResponse;
type Error: Display + From<ApiError> + From<Error> + 'static;
Show 13 methods
fn build_base_request<Req>(
&self,
req: &Req,
form: Option<Form<'static>>
) -> Result<Self::HttpRequest, Self::Error>
where
Req: ApiRequest;
fn get_header(
res: &Self::HttpResponse,
key: HeaderName
) -> Option<&HeaderValue>;
fn request_raw<'life0, 'async_trait, Req>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<(StatusCode, Bytes), Self::Error>> + 'async_trait>>
where
Req: ApiRequest + Serialize,
Req: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
fn response_to_byte_stream(
res: Self::HttpResponse
) -> Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>;
fn request_stream<Res, F, OutStream>(
&self,
req: Self::HttpRequest,
process: F
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin>
where
OutStream: Stream<Item = Result<Res, Self::Error>> + Unpin,
F: 'static + Fn(Self::HttpResponse) -> OutStream;
fn process_error_from_body(body: Bytes) -> Self::Error { ... }
fn process_json_response<Res>(
status: StatusCode,
body: Bytes
) -> Result<Res, Self::Error>
where
for<'de> Res: 'static + Deserialize<'de>,
{ ... }
fn process_stream_response<D, Res>(
res: Self::HttpResponse,
decoder: D
) -> FramedRead<StreamReader<Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>>, D>
where
D: Decoder<Item = Res, Error = Error>,
{ ... }
fn request<'life0, 'async_trait, Req, Res>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<Res, Self::Error>> + 'async_trait>>
where
Req: ApiRequest + Serialize,
for<'de> Res: 'static + Deserialize<'de>,
Req: 'async_trait,
Res: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
{ ... }
fn request_empty<'life0, 'async_trait, Req>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + 'async_trait>>
where
Req: ApiRequest + Serialize,
Req: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
{ ... }
fn request_string<'life0, 'async_trait, Req>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<String, Self::Error>> + 'async_trait>>
where
Req: ApiRequest + Serialize,
Req: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
{ ... }
fn request_stream_bytes(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin> { ... }
fn request_stream_json<Res>(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin>
where
for<'de> Res: 'static + Deserialize<'de>,
{ ... }
}
Associated Types
type HttpRequest
type HttpRequest
HTTP request type.
type HttpResponse
type HttpResponse
HTTP response type.
Required methods
fn build_base_request<Req>(
&self,
req: &Req,
form: Option<Form<'static>>
) -> Result<Self::HttpRequest, Self::Error> where
Req: ApiRequest,
fn build_base_request<Req>(
&self,
req: &Req,
form: Option<Form<'static>>
) -> Result<Self::HttpRequest, Self::Error> where
Req: ApiRequest,
Builds the url for an api call.
fn get_header(res: &Self::HttpResponse, key: HeaderName) -> Option<&HeaderValue>
fn get_header(res: &Self::HttpResponse, key: HeaderName) -> Option<&HeaderValue>
Get the value of a header from an HTTP response.
fn request_raw<'life0, 'async_trait, Req>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<(StatusCode, Bytes), Self::Error>> + 'async_trait>> where
Req: ApiRequest + Serialize,
Req: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
fn request_raw<'life0, 'async_trait, Req>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<(StatusCode, Bytes), Self::Error>> + 'async_trait>> where
Req: ApiRequest + Serialize,
Req: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
Generates a request, and returns the unprocessed response future.
fn response_to_byte_stream(
res: Self::HttpResponse
) -> Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>
fn request_stream<Res, F, OutStream>(
&self,
req: Self::HttpRequest,
process: F
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin> where
OutStream: Stream<Item = Result<Res, Self::Error>> + Unpin,
F: 'static + Fn(Self::HttpResponse) -> OutStream,
fn request_stream<Res, F, OutStream>(
&self,
req: Self::HttpRequest,
process: F
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin> where
OutStream: Stream<Item = Result<Res, Self::Error>> + Unpin,
F: 'static + Fn(Self::HttpResponse) -> OutStream,
Generic method for making a request that expects back a streaming response.
Provided methods
fn process_error_from_body(body: Bytes) -> Self::Error
fn process_error_from_body(body: Bytes) -> Self::Error
Builds an Api error from a response body.
fn process_json_response<Res>(
status: StatusCode,
body: Bytes
) -> Result<Res, Self::Error> where
for<'de> Res: 'static + Deserialize<'de>,
fn process_json_response<Res>(
status: StatusCode,
body: Bytes
) -> Result<Res, Self::Error> where
for<'de> Res: 'static + Deserialize<'de>,
Processes a response that expects a json encoded body, returning an error or a deserialized json response.
fn process_stream_response<D, Res>(
res: Self::HttpResponse,
decoder: D
) -> FramedRead<StreamReader<Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>>, D> where
D: Decoder<Item = Res, Error = Error>,
fn process_stream_response<D, Res>(
res: Self::HttpResponse,
decoder: D
) -> FramedRead<StreamReader<Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>>, D> where
D: Decoder<Item = Res, Error = Error>,
Processes a response that returns a stream of json deserializable results.
fn request<'life0, 'async_trait, Req, Res>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<Res, Self::Error>> + 'async_trait>> where
Req: ApiRequest + Serialize,
for<'de> Res: 'static + Deserialize<'de>,
Req: 'async_trait,
Res: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
fn request<'life0, 'async_trait, Req, Res>(
&'life0 self,
req: Req,
form: Option<Form<'static>>
) -> Pin<Box<dyn Future<Output = Result<Res, Self::Error>> + 'async_trait>> where
Req: ApiRequest + Serialize,
for<'de> Res: 'static + Deserialize<'de>,
Req: 'async_trait,
Res: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
Generic method for making a request to the Ipfs server, and getting a deserializable response.
Generic method for making a request to the Ipfs server, and getting back a response with no body.
Generic method for making a request to the Ipfs server, and getting back a raw String response.
fn request_stream_bytes(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>
fn request_stream_bytes(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Unpin>
Generic method for making a request to the Ipfs server, and getting back a raw stream of bytes.
fn request_stream_json<Res>(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin> where
for<'de> Res: 'static + Deserialize<'de>,
fn request_stream_json<Res>(
&self,
req: Self::HttpRequest
) -> Box<dyn Stream<Item = Result<Res, Self::Error>> + Unpin> where
for<'de> Res: 'static + Deserialize<'de>,
Generic method to return a streaming response of deserialized json objects delineated by new line separators.