Struct trust_dns_https::HttpsSerialResponse
source · pub struct HttpsSerialResponse(_);
Expand description
A future that will resolve to a DnsResponse upon completion
Trait Implementations
sourceimpl Future for HttpsSerialResponse
impl Future for HttpsSerialResponse
sourcefn poll(&mut self) -> Poll<Self::Item, Self::Error>
fn poll(&mut self) -> Poll<Self::Item, Self::Error>
This indicates that the HTTP message was successfully sent, and we now have the response.RecvStream
If the request fails, this will return the error, and it should be assumed that the Stream portion of this will have no date.
5.2. The HTTP Response
An HTTP response with a 2xx status code ([RFC7231] Section 6.3)
indicates a valid DNS response to the query made in the HTTP request.
A valid DNS response includes both success and failure responses.
For example, a DNS failure response such as SERVFAIL or NXDOMAIN will
be the message in a successful 2xx HTTP response even though there
was a failure at the DNS layer. Responses with non-successful HTTP
status codes do not contain DNS answers to the question in the
corresponding request. Some of these non-successful HTTP responses
(e.g., redirects or authentication failures) could mean that clients
need to make new requests to satisfy the original question.
Different response media types will provide more or less information
from a DNS response. For example, one response type might include
the information from the DNS header bytes while another might omit
it. The amount and type of information that a media type gives is
solely up to the format, and not defined in this protocol.
The only response type defined in this document is "application/dns-
message", but it is possible that other response formats will be
defined in the future.
The DNS response for "application/dns-message" in Section 7 MAY have
one or more EDNS options [RFC6891], depending on the extension
definition of the extensions given in the DNS request.
Each DNS request-response pair is matched to one HTTP exchange. The
responses may be processed and transported in any order using HTTP's
multi-streaming functionality ([RFC7540] Section 5).
Section 6.1 discusses the relationship between DNS and HTTP response
caching.
A DNS API server MUST be able to process application/dns-message
request messages.
A DNS API server SHOULD respond with HTTP status code 415
(Unsupported Media Type) upon receiving a media type it is unable to
process.
type Item = DnsResponse
type Item = DnsResponse
The type of value that this future will resolved with if it is
successful. Read more
type Error = ProtoError
type Error = ProtoError
The type of error that this future will resolve with if it fails in a
normal fashion. Read more
sourcefn wait(self) -> Result<Self::Item, Self::Error>where
Self: Sized,
fn wait(self) -> Result<Self::Item, Self::Error>where
Self: Sized,
Block the current thread until this future is resolved. Read more
sourcefn map<F, U>(self, f: F) -> Map<Self, F>where
F: FnOnce(Self::Item) -> U,
Self: Sized,
fn map<F, U>(self, f: F) -> Map<Self, F>where
F: FnOnce(Self::Item) -> U,
Self: Sized,
Map this future’s result to a different type, returning a new future of
the resulting type. Read more
sourcefn map_err<F, E>(self, f: F) -> MapErr<Self, F>where
F: FnOnce(Self::Error) -> E,
Self: Sized,
fn map_err<F, E>(self, f: F) -> MapErr<Self, F>where
F: FnOnce(Self::Error) -> E,
Self: Sized,
Map this future’s error to a different error, returning a new future. Read more
sourcefn from_err<E>(self) -> FromErr<Self, E>where
E: From<Self::Error>,
Self: Sized,
fn from_err<E>(self) -> FromErr<Self, E>where
E: From<Self::Error>,
Self: Sized,
Map this future’s error to any error implementing
From
for
this future’s Error
, returning a new future. Read moresourcefn then<F, B>(self, f: F) -> Then<Self, B, F>where
F: FnOnce(Result<Self::Item, Self::Error>) -> B,
B: IntoFuture,
Self: Sized,
fn then<F, B>(self, f: F) -> Then<Self, B, F>where
F: FnOnce(Result<Self::Item, Self::Error>) -> B,
B: IntoFuture,
Self: Sized,
Chain on a computation for when a future finished, passing the result of
the future to the provided closure
f
. Read moresourcefn and_then<F, B>(self, f: F) -> AndThen<Self, B, F>where
F: FnOnce(Self::Item) -> B,
B: IntoFuture<Error = Self::Error>,
Self: Sized,
fn and_then<F, B>(self, f: F) -> AndThen<Self, B, F>where
F: FnOnce(Self::Item) -> B,
B: IntoFuture<Error = Self::Error>,
Self: Sized,
Execute another future after this one has resolved successfully. Read more
sourcefn or_else<F, B>(self, f: F) -> OrElse<Self, B, F>where
F: FnOnce(Self::Error) -> B,
B: IntoFuture<Item = Self::Item>,
Self: Sized,
fn or_else<F, B>(self, f: F) -> OrElse<Self, B, F>where
F: FnOnce(Self::Error) -> B,
B: IntoFuture<Item = Self::Item>,
Self: Sized,
Execute another future if this one resolves with an error. Read more
sourcefn select<B>(self, other: B) -> Select<Self, <B as IntoFuture>::Future>where
B: IntoFuture<Item = Self::Item, Error = Self::Error>,
Self: Sized,
fn select<B>(self, other: B) -> Select<Self, <B as IntoFuture>::Future>where
B: IntoFuture<Item = Self::Item, Error = Self::Error>,
Self: Sized,
Waits for either one of two futures to complete. Read more
sourcefn select2<B>(self, other: B) -> Select2<Self, <B as IntoFuture>::Future>where
B: IntoFuture,
Self: Sized,
fn select2<B>(self, other: B) -> Select2<Self, <B as IntoFuture>::Future>where
B: IntoFuture,
Self: Sized,
Waits for either one of two differently-typed futures to complete. Read more
sourcefn join<B>(self, other: B) -> Join<Self, <B as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
Self: Sized,
fn join<B>(self, other: B) -> Join<Self, <B as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
Self: Sized,
Joins the result of two futures, waiting for them both to complete. Read more
sourcefn join3<B, C>(
self,
b: B,
c: C
) -> Join3<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
Self: Sized,
fn join3<B, C>(
self,
b: B,
c: C
) -> Join3<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
Self: Sized,
Same as
join
, but with more futures.sourcefn join4<B, C, D>(
self,
b: B,
c: C,
d: D
) -> Join4<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future, <D as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
D: IntoFuture<Error = Self::Error>,
Self: Sized,
fn join4<B, C, D>(
self,
b: B,
c: C,
d: D
) -> Join4<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future, <D as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
D: IntoFuture<Error = Self::Error>,
Self: Sized,
Same as
join
, but with more futures.sourcefn join5<B, C, D, E>(
self,
b: B,
c: C,
d: D,
e: E
) -> Join5<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future, <D as IntoFuture>::Future, <E as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
D: IntoFuture<Error = Self::Error>,
E: IntoFuture<Error = Self::Error>,
Self: Sized,
fn join5<B, C, D, E>(
self,
b: B,
c: C,
d: D,
e: E
) -> Join5<Self, <B as IntoFuture>::Future, <C as IntoFuture>::Future, <D as IntoFuture>::Future, <E as IntoFuture>::Future>where
B: IntoFuture<Error = Self::Error>,
C: IntoFuture<Error = Self::Error>,
D: IntoFuture<Error = Self::Error>,
E: IntoFuture<Error = Self::Error>,
Self: Sized,
Same as
join
, but with more futures.sourcefn into_stream(self) -> IntoStream<Self>where
Self: Sized,
fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
Convert this future into a single element stream. Read more
sourcefn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Fuse a future such that
poll
will never again be called once it has
completed. Read moresourcefn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnOnce(&Self::Item),
Self: Sized,
fn inspect<F>(self, f: F) -> Inspect<Self, F>where
F: FnOnce(&Self::Item),
Self: Sized,
Do something with the item of a future, passing it on. Read more
Create a cloneable handle to this future where all handles will resolve
to the same result. Read more
Auto Trait Implementations
impl !RefUnwindSafe for HttpsSerialResponse
impl Send for HttpsSerialResponse
impl Sync for HttpsSerialResponse
impl Unpin for HttpsSerialResponse
impl !UnwindSafe for HttpsSerialResponse
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more