[][src]Struct mpart_async::server::MultipartField

pub struct MultipartField<S, E> where
    S: Stream<Item = Result<Bytes, E>> + Unpin,
    E: Into<Box<dyn StdError + Send + Sync + 'static>>, 
{ /* fields omitted */ }

A single field of a MultipartStream which itself is a stream

This represents either an uploaded file, or a simple text value

Each field will have some headers and then a body. There are no assumptions made when parsing about what headers are present, but some of the helper methods here (such as content_type() & filename()) will return an error if they aren't present. The body will be returned as an inner stream of bytes from the request, but up to the end of the field.

Fields are not concurrent against their parent multipart request. This is because multipart submissions are a single http request and we don't support going backwards or skipping bytes. In other words you can't read from multiple fields from the same request at the same time: you must wait for one field to finish being read before moving on.

Implementations

impl<S, E> MultipartField<S, E> where
    S: Stream<Item = Result<Bytes, E>> + Unpin,
    E: Into<Box<dyn StdError + Send + Sync + 'static>>, 
[src]

pub fn headers(&self) -> &HeaderMap<HeaderValue>[src]

Return the headers for the field

You can use self.headers.get("my-header").and_then(|val| val.to_str().ok()) to get out the header if present

pub fn content_type<'a>(&'a self) -> Result<&'a str, MultipartError>[src]

Return the content type of the field (if present or error)

pub fn filename<'a>(&'a self) -> Result<&'a str, MultipartError>[src]

Return the filename of the field (if present or error)

pub fn name<'a>(&'a self) -> Result<&'a str, MultipartError>[src]

Return the name of the field (if present or error)

Trait Implementations

impl<S, E> Stream for MultipartField<S, E> where
    S: Stream<Item = Result<Bytes, E>> + Unpin,
    E: Into<Box<dyn StdError + Send + Sync + 'static>>, 
[src]

type Item = Result<Bytes, MultipartError>

Values yielded by the stream.

Auto Trait Implementations

impl<S, E> RefUnwindSafe for MultipartField<S, E>[src]

impl<S, E> Send for MultipartField<S, E> where
    S: Send
[src]

impl<S, E> Sync for MultipartField<S, E> where
    S: Send
[src]

impl<S, E> Unpin for MultipartField<S, E>[src]

impl<S, E> UnwindSafe for MultipartField<S, E>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<St> StreamExt for St where
    St: Stream + ?Sized
[src]

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,