pub trait Backend {
    type HttpRequest;
    type HttpResponse;
    type Error: Display + From<ApiError> + From<Error> + 'static;

Show 14 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 + 'async_trait,
        Self: 'async_trait,
        'life0: 'async_trait
; fn response_to_byte_stream(
        res: Self::HttpResponse
    ) -> BoxStream<Bytes, Self::Error>; fn request_stream<Res, F>(
        &self,
        req: Self::HttpRequest,
        process: F
    ) -> BoxStream<Res, Self::Error>
    where
        F: 'static + Send + Fn(Self::HttpResponse) -> BoxStream<Res, Self::Error>
; fn with_credentials<U, P>(self, username: U, password: P) -> Self
    where
        U: Into<String>,
        P: Into<String>
; 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> + Send
, { ... } fn process_stream_response<D, Res>(
        res: Self::HttpResponse,
        decoder: D
    ) -> FramedRead<StreamReader<BoxStream<Bytes, Self::Error>>, 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 + 'async_trait,
        for<'de> Res: 'static + Deserialize<'de> + Send + 'async_trait,
        Self: 'async_trait,
        'life0: '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 + 'async_trait,
        Self: 'async_trait,
        'life0: '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 + 'async_trait,
        Self: 'async_trait,
        'life0: 'async_trait
, { ... } fn request_stream_bytes(
        &self,
        req: Self::HttpRequest
    ) -> BoxStream<Bytes, Self::Error> { ... } fn request_stream_json<Res>(
        &self,
        req: Self::HttpRequest
    ) -> BoxStream<Res, Self::Error>
    where
        for<'de> Res: 'static + Deserialize<'de> + Send
, { ... }
}

Required Associated Types§

Required Methods§

Builds the url for an api call.

Get the value of a header from an HTTP response.

Generates a request, and returns the unprocessed response future.

Generic method for making a request that expects back a streaming response.

Set basic authentication credentials to use on every request from this client.

Provided Methods§

Builds an Api error from a response body.

Processes a response that expects a json encoded body, returning an error or a deserialized json response.

Processes a response that returns a stream of json deserializable results.

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.

Generic method for making a request to the Ipfs server, and getting back a raw stream of bytes.

Generic method to return a streaming response of deserialized json objects delineated by new line separators.

Implementors§