Expand description
Step-based WASM program runner for FrankenTUI.
StepProgram drives an ftui_runtime::program::Model through
init / event / update / view / present cycles without threads or blocking.
The host (JavaScript) controls the event loop:
- Push events via
StepProgram::push_event. - Advance time via
StepProgram::advance_time. - Call
StepProgram::stepto process one batch of events and render. - Read the rendered buffer via
StepProgram::take_outputs.
§Example
ⓘ
use ftui_web::step_program::StepProgram;
use ftui_core::event::Event;
use core::time::Duration;
let mut prog = StepProgram::new(MyModel::default(), 80, 24);
prog.init().unwrap();
// Host-driven frame loop
prog.push_event(Event::Tick);
prog.advance_time(Duration::from_millis(16));
let result = prog.step().unwrap();
if result.rendered {
let outputs = prog.take_outputs();
// Send outputs.last_buffer to the renderer...
}Structs§
- Step
Program - Host-driven, non-blocking program runner for WASM.
- Step
Result - Result of a single
StepProgram::stepcall.