Skip to main content

Module step_program

Module step_program 

Source
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:

  1. Push events via StepProgram::push_event.
  2. Advance time via StepProgram::advance_time.
  3. Call StepProgram::step to process one batch of events and render.
  4. 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§

StepProgram
Host-driven, non-blocking program runner for WASM.
StepResult
Result of a single StepProgram::step call.