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.
Uses one prepared render context and borrows the caller’s state for the
complete traversal. Every compiler-selected flush still reaches the
transport, but the synchronous convenience path does not clone the state
or rebuild the continuation context at each boundary. Hosts that need
asynchronous work 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.