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

HTTP request type.

HTTP response type.

Error type for Result.

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.

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