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>>
Start a host-driven progressive HTML response.
§Errors
Returns an error when the entry is missing or its compiled streaming structure is malformed.
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 an opt-in progressive hydration response.
Boundary signals are validated in document order and every committed
checkpoint is flushed through writer. Unlike Self::render, this
mode emits boundary envelopes instead of a page-wide #webui-data
block and requires structural head_start and body_end signals.
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.