Struct actix_web_lab::respond::DisplayStream
source · pub struct DisplayStream<S> { /* private fields */ }
Expand description
A buffered line formatting body stream.
Each item yielded by the stream will be written to the response body using its
Display
implementation.
This has significant memory efficiency advantages over returning an array of lines when the data set is very large because it avoids buffering the entire response.
Examples
fn streaming_data_source() -> impl Stream<Item = u32> {
// get item stream from source
}
async fn handler() -> impl Responder {
let data_stream = streaming_data_source();
DisplayStream::new_infallible(data_stream)
.into_responder()
}
Implementations§
source§impl<S> DisplayStream<S>
impl<S> DisplayStream<S>
source§impl<S> DisplayStream<S>
impl<S> DisplayStream<S>
sourcepub fn new_infallible(stream: S) -> DisplayStream<InfallibleStream<S>>
pub fn new_infallible(stream: S) -> DisplayStream<InfallibleStream<S>>
Constructs a new DisplayStream
from an infallible stream of lines.
source§impl<S, T, E> DisplayStream<S>where
S: Stream<Item = Result<T, E>>,
T: Display,
E: Into<Box<dyn StdError>> + 'static,
impl<S, T, E> DisplayStream<S>where S: Stream<Item = Result<T, E>>, T: Display, E: Into<Box<dyn StdError>> + 'static,
sourcepub fn into_body_stream(self) -> impl MessageBody
pub fn into_body_stream(self) -> impl MessageBody
Creates a chunked body stream that serializes as CSV on-the-fly.
sourcepub fn into_responder(self) -> impl Responderwhere
S: 'static,
T: 'static,
E: 'static,
pub fn into_responder(self) -> impl Responderwhere S: 'static, T: 'static, E: 'static,
Creates a Responder
type with a line-by-line serializing stream and text/plain
content-type header.
sourcepub fn into_chunk_stream(self) -> impl Stream<Item = Result<Bytes, E>>
pub fn into_chunk_stream(self) -> impl Stream<Item = Result<Bytes, E>>
Creates a stream of serialized chunks.
Trait Implementations§
impl<'__pin, S> Unpin for DisplayStream<S>where __Origin<'__pin, S>: Unpin,
Auto Trait Implementations§
impl<S> RefUnwindSafe for DisplayStream<S>where S: RefUnwindSafe,
impl<S> Send for DisplayStream<S>where S: Send,
impl<S> Sync for DisplayStream<S>where S: Sync,
impl<S> UnwindSafe for DisplayStream<S>where S: UnwindSafe,
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