pub struct NdjsonResponse<S, T> { /* private fields */ }Expand description
Builder for creating NDJSON streaming responses.
This wraps a stream of serializable items and converts it to an HTTP response
with the appropriate Content-Type: application/x-ndjson header.
§Example
ⓘ
use fastapi_core::ndjson::NdjsonResponse;
use fastapi_core::Response;
use asupersync::stream;
use serde::Serialize;
#[derive(Serialize)]
struct Record { id: i64, value: f64 }
async fn export_data() -> Response {
let records = stream::iter(vec![
Record { id: 1, value: 1.5 },
Record { id: 2, value: 2.7 },
Record { id: 3, value: 3.14 },
]);
NdjsonResponse::new(records).into_response()
}§Headers Set
Content-Type: application/x-ndjsonCache-Control: no-cache(streaming data shouldn’t be cached)Transfer-Encoding: chunked(implicit for streaming)
Implementations§
Source§impl<S, T> NdjsonResponse<S, T>
impl<S, T> NdjsonResponse<S, T>
Sourcepub fn new(stream: S) -> Self
pub fn new(stream: S) -> Self
Create a new NDJSON response from a stream of serializable items.
Sourcepub fn with_config(stream: S, config: NdjsonConfig) -> Self
pub fn with_config(stream: S, config: NdjsonConfig) -> Self
Create an NDJSON response with custom configuration.
Sourcepub fn into_response(self) -> Response
pub fn into_response(self) -> Response
Convert to an HTTP Response.
Sets the appropriate headers for NDJSON streaming:
Content-Type: application/x-ndjsonCache-Control: no-cacheX-Accel-Buffering: no(disables nginx buffering)
Auto Trait Implementations§
impl<S, T> Freeze for NdjsonResponse<S, T>where
S: Freeze,
impl<S, T> RefUnwindSafe for NdjsonResponse<S, T>where
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<S, T> Send for NdjsonResponse<S, T>
impl<S, T> Sync for NdjsonResponse<S, T>
impl<S, T> Unpin for NdjsonResponse<S, T>
impl<S, T> UnwindSafe for NdjsonResponse<S, T>where
S: UnwindSafe,
T: 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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).