Trait http_serve::Entity
source · pub trait Entity: 'static + Send {
type Error: Send;
type Data: 'static + Send + Buf + From<Vec<u8>> + From<&'static [u8]>;
fn len(&self) -> u64;
fn get_range(
&self,
range: Range<u64>
) -> Box<dyn Stream<Item = Self::Data, Error = Self::Error> + Send>;
fn add_headers(&self, _: &mut HeaderMap);
fn etag(&self) -> Option<HeaderValue>;
fn last_modified(&self) -> Option<SystemTime>;
fn is_empty(&self) -> bool { ... }
}
Expand description
A reusable, read-only, byte-rangeable HTTP entity for GET and HEAD serving. Must return exactly the same data on every call.
Required Associated Types
Required Methods
sourcefn get_range(
&self,
range: Range<u64>
) -> Box<dyn Stream<Item = Self::Data, Error = Self::Error> + Send>
fn get_range(
&self,
range: Range<u64>
) -> Box<dyn Stream<Item = Self::Data, Error = Self::Error> + Send>
Gets the body bytes indicated by range
.
sourcefn add_headers(&self, _: &mut HeaderMap)
fn add_headers(&self, _: &mut HeaderMap)
Adds entity headers such as Content-Type
to the supplied Headers
object.
In particular, these headers are the “other representation header fields” described by RFC
7233 section 4.1; they should exclude
Content-Range
, Date
, Cache-Control
, ETag
, Expires
, Content-Location
, and Vary
.
This function will be called only when that section says that headers such as
Content-Type
should be included in the response.
sourcefn etag(&self) -> Option<HeaderValue>
fn etag(&self) -> Option<HeaderValue>
Returns an etag for this entity, if available. Implementations are encouraged to provide a strong etag. RFC 7232 section 2.1 notes that only strong etags are usable for sub-range retrieval.
sourcefn last_modified(&self) -> Option<SystemTime>
fn last_modified(&self) -> Option<SystemTime>
Returns the last modified time of this entity, if available.
Note that serve
may serve an earlier Last-Modified:
date than the one returned here if
this time is in the future, as required by RFC 7232 section
2.2.1.