retrace_frontend/capture
Optional capture coordination. Observe only application-approved transitions. Map the returned effects/messages into your application. They are not events to record. Stop the owned client when the application unmounts.
Types
pub type Info {
Info(
session: wire.Session,
captured: Int,
saved: Int,
delivery: client.Status,
failure: option.Option(String),
)
}
Constructors
-
Info( session: wire.Session, captured: Int, saved: Int, delivery: client.Status, failure: option.Option(String), )
Values
pub fn observe(
state: State,
before: model,
message: message,
encode_model: fn(model) -> String,
encode_message: fn(message) -> wire.Event,
) -> #(State, effect.Effect(Message))
Observe after accepting a transition, passing its state BEFORE reduction. This helper never runs application effects. Record their resulting messages through this same hook. A failure stops capture; your update still proceeds.
pub fn retry(state: State) -> effect.Effect(Message)
pub fn session(
user_ref: String,
build: String,
contract: String,
platform: String,
) -> wire.Session
Start a new identity; every application instance needs a distinct session.
pub fn start(
session: wire.Session,
config: client.Config,
storage: client.Storage,
transport: client.Transport,
) -> Result(#(State, effect.Effect(Message)), retrace.Error(Nil))
pub fn start_with_clock(
session: wire.Session,
config: client.Config,
storage: client.Storage,
transport: client.Transport,
clock: fn() -> Int,
) -> Result(#(State, effect.Effect(Message)), retrace.Error(Nil))
The clock returns elapsed milliseconds since this session began.
pub fn stop(state: State) -> effect.Effect(Message)
Run before discarding the application state. Persisted batches remain queued.