Struct mpart_async::server::MultipartStream
source · pub struct MultipartStream<S, E>where
S: Stream<Item = Result<Bytes, E>> + Unpin,
E: Into<Box<dyn StdError + Send + Sync + 'static>>,{ /* private fields */ }
Expand description
The main MultipartStream
struct which will contain one or more fields (a stream of streams)
You can construct this given a boundary and a stream of bytes from a server request.
Please Note: If you are reading in a field, you must exhaust the field’s bytes before moving onto the next field
let mut stream = MultipartStream::new(boundary, body.map_ok(|mut buf| {
let mut ret = BytesMut::with_capacity(buf.remaining());
ret.put(buf);
ret.freeze()
}));
while let Ok(Some(mut field)) = stream.try_next().await {
println!("Field received:{}", field.name().unwrap());
if let Ok(filename) = field.filename() {
println!("Field filename:{}", filename);
}
while let Ok(Some(bytes)) = field.try_next().await {
println!("Bytes received:{}", bytes.len());
}
}
Implementations§
Trait Implementations§
source§impl<S, E> Stream for MultipartStream<S, E>
impl<S, E> Stream for MultipartStream<S, E>
§type Item = Result<MultipartField<S, E>, MultipartError>
type Item = Result<MultipartField<S, E>, MultipartError>
Values yielded by the stream.
Auto Trait Implementations§
impl<S, E> RefUnwindSafe for MultipartStream<S, E>
impl<S, E> Send for MultipartStream<S, E>where
S: Send,
impl<S, E> Sync for MultipartStream<S, E>where
S: Send,
impl<S, E> Unpin for MultipartStream<S, E>
impl<S, E> UnwindSafe for MultipartStream<S, E>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more