Struct rocket::response::stream::TextStream
source · pub struct TextStream<S>(pub S);
Expand description
A potentially infinite stream of text: T: AsRef<str>
.
A TextStream
can be constructed from any Stream
of items of type T
where T: AsRef<str>
. This includes &str
, String
, Cow<str>
,
&RawStr
, and more. The stream can be constructed directly, via
TextStream(..)
or TextStream::from()
, or through generator syntax via
TextStream!
.
Responder
TextStream
is a (potentially infinite) responder. The response
Content-Type
is set to Text
. The body is
unsized, and values are sent as soon as
they are yielded by the internal iterator.
Example
Use TextStream!
to yield 10 strings, one every second, of the form "n: $k"
for $k
from 0
to 10
exclusive:
use rocket::response::stream::TextStream;
use rocket::futures::stream::{repeat, StreamExt};
use rocket::tokio::time::{self, Duration};
#[get("/text")]
fn text() -> TextStream![&'static str] {
TextStream(repeat("hi"))
}
#[get("/text/stream")]
fn stream() -> TextStream![String] {
TextStream! {
let mut interval = time::interval(Duration::from_secs(1));
for i in 0..10 {
yield format!("n: {}", i);
interval.tick().await;
}
}
}
The syntax of TextStream!
as an expression is identical to that of
stream!
.
Tuple Fields§
§0: S
Trait Implementations§
source§impl<S: Clone> Clone for TextStream<S>
impl<S: Clone> Clone for TextStream<S>
source§fn clone(&self) -> TextStream<S>
fn clone(&self) -> TextStream<S>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<S: Debug> Debug for TextStream<S>
impl<S: Debug> Debug for TextStream<S>
source§impl<S> From<S> for TextStream<S>
impl<S> From<S> for TextStream<S>
Auto Trait Implementations§
impl<S> RefUnwindSafe for TextStream<S>where S: RefUnwindSafe,
impl<S> Send for TextStream<S>where S: Send,
impl<S> Sync for TextStream<S>where S: Sync,
impl<S> Unpin for TextStream<S>where S: Unpin,
impl<S> UnwindSafe for TextStream<S>where S: UnwindSafe,
Blanket Implementations§
§impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for Twhere T: 'a,
§impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for Twhere T: 'a,
§impl<T> FromFd for Twhere
T: From<OwnedFd>,
impl<T> FromFd for Twhere T: From<OwnedFd>,
§impl<T> FromFilelike for Twhere
T: From<OwnedFd>,
impl<T> FromFilelike for Twhere T: From<OwnedFd>,
§fn from_filelike(owned: OwnedFd) -> T
fn from_filelike(owned: OwnedFd) -> T
Constructs a new instance of
Self
from the given filelike object. Read more§fn from_into_filelike<Owned>(owned: Owned) -> Twhere
Owned: IntoFilelike,
fn from_into_filelike<Owned>(owned: Owned) -> Twhere Owned: IntoFilelike,
Constructs a new instance of
Self
from the given filelike object
converted from into_owned
. Read more§impl<T> FromSocketlike for Twhere
T: From<OwnedFd>,
impl<T> FromSocketlike for Twhere T: From<OwnedFd>,
§fn from_socketlike(owned: OwnedFd) -> T
fn from_socketlike(owned: OwnedFd) -> T
Constructs a new instance of
Self
from the given socketlike object.§fn from_into_socketlike<Owned>(owned: Owned) -> Twhere
Owned: IntoSocketlike,
fn from_into_socketlike<Owned>(owned: Owned) -> Twhere Owned: IntoSocketlike,
Constructs a new instance of
Self
from the given socketlike object
converted from into_owned
.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
§fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A>where A: Array<Item = T>,
Converts
self
into a collection.