pub trait Tracer {
// Required methods
fn enter_call(&mut self, node_id: &str, name: &str, args: &[Value]);
fn enter_effect(
&mut self,
node_id: &str,
kind: &str,
op: &str,
args: &[Value],
);
fn exit_ok(&mut self, value: &Value);
fn exit_err(&mut self, message: &str);
fn exit_call_tail(&mut self);
// Provided method
fn override_effect(&mut self, _node_id: &str) -> Option<Value> { ... }
}Expand description
Trace receiver. Implementors record the call/effect tree and may substitute effect responses (for replay).
Required Methods§
fn enter_call(&mut self, node_id: &str, name: &str, args: &[Value])
fn enter_effect(&mut self, node_id: &str, kind: &str, op: &str, args: &[Value])
fn exit_ok(&mut self, value: &Value)
fn exit_err(&mut self, message: &str)
Sourcefn exit_call_tail(&mut self)
fn exit_call_tail(&mut self)
Tail-call optimization: pop the current frame’s open call without re-entering the parent (the new call takes its place).
Provided Methods§
Sourcefn override_effect(&mut self, _node_id: &str) -> Option<Value>
fn override_effect(&mut self, _node_id: &str) -> Option<Value>
During replay, return Some(v) to substitute an effect’s output.