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
sourceimpl<S: Clone> Clone for TextStream<S>
impl<S: Clone> Clone for TextStream<S>
sourcefn clone(&self) -> TextStream<S>
fn clone(&self) -> TextStream<S>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<S: Debug> Debug for TextStream<S>
impl<S: Debug> Debug for TextStream<S>
sourceimpl<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 T where
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for T where
T: 'a,
fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self>
impl<'a, T> AsTaggedImplicit<'a> for T where
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for T where
T: 'a,
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
sourcefn 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.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more