pub struct WebUIHandler { /* private fields */ }Expand description
The main WebUI handler that processes protocols and renders them.
The handler is stateless: plugin instances are created per-render from
the stored factory function, allowing concurrent renders with &self.
Implementations§
Source§impl WebUIHandler
impl WebUIHandler
Sourcepub fn stream_response<'a, W: FlushWriter + ?Sized>(
&'a self,
protocol: &'a Protocol,
options: &RenderOptions<'a>,
writer: &'a mut W,
) -> Result<StreamingResponse<'a, W>>
pub fn stream_response<'a, W: FlushWriter + ?Sized>( &'a self, protocol: &'a Protocol, options: &RenderOptions<'a>, writer: &'a mut W, ) -> Result<StreamingResponse<'a, W>>
Create a runtime-discovered progressive response.
Source§impl WebUIHandler
impl WebUIHandler
Sourcepub fn render_streaming<'a, W: FlushWriter + ?Sized>(
&self,
protocol: &'a Protocol,
state: &Value,
options: &RenderOptions<'a>,
writer: &'a mut W,
) -> Result<()>
pub fn render_streaming<'a, W: FlushWriter + ?Sized>( &self, protocol: &'a Protocol, state: &Value, options: &RenderOptions<'a>, writer: &'a mut W, ) -> Result<()>
Render every runtime boundary in document order as final.
Drives the same start → resume → advance → … cycle the public step
machine exposes, against one frozen snapshot: the value is snapshotted
when the response starts and every occurrence commits against that
snapshot, so a large state is projected once per response rather than
re-merged once per boundary. Having no host to hand bytes to between a
commit and the parent bytes that follow it, the helper fuses those two
goals into one continuation setup per boundary; the emitted bytes and
flush positions are identical to driving the steps separately. Hosts
that need asynchronous work — or genuinely new state — between
occurrences should use Self::stream_response or StreamingSession.
Source§impl WebUIHandler
impl WebUIHandler
Sourcepub fn with_plugin(factory: fn() -> Box<dyn HandlerPlugin>) -> Self
pub fn with_plugin(factory: fn() -> Box<dyn HandlerPlugin>) -> Self
Create a new WebUI handler with a plugin factory.
Each render call creates a fresh plugin instance from the factory,
enabling concurrent renders with &self.
Sourcepub fn render<'a>(
&self,
protocol: &'a Protocol,
state: &'a Value,
options: &RenderOptions<'a>,
writer: &'a mut dyn ResponseWriter,
) -> Result<()>
pub fn render<'a>( &self, protocol: &'a Protocol, state: &'a Value, options: &RenderOptions<'a>, writer: &'a mut dyn ResponseWriter, ) -> Result<()>
Render the UI based on the protocol and state.