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

The type of a data chunk.

Commonly ::hyper::Chunk but may be something more exotic.

Required Methods

Returns the length of the entity’s body in bytes.

Gets the body bytes indicated by range.

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.

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.

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.

Provided Methods

Returns true iff the entity’s body has length 0.

Implementors