pub trait EngineFactory: Send + Sync {
// Required methods
fn id(&self) -> &'static str;
fn step_kinds(&self) -> &'static [StepKindSpec];
fn doctor(&self) -> Vec<DoctorCheck>;
fn open(
&self,
ctx: &ScenarioCtx,
) -> Result<Box<dyn EngineSession>, EngineError>;
}Expand description
Compiled-in engine entry point: identity, capability discovery, and session
opening (ADR-0002). Registered in proef-cli’s registry, one line per engine.
Required Methods§
Sourcefn step_kinds(&self) -> &'static [StepKindSpec]
fn step_kinds(&self) -> &'static [StepKindSpec]
The pack step kinds this engine claims, with their payload schemas.
Sourcefn doctor(&self) -> Vec<DoctorCheck>
fn doctor(&self) -> Vec<DoctorCheck>
Environment checks surfaced through proef doctor.
Sourcefn open(&self, ctx: &ScenarioCtx) -> Result<Box<dyn EngineSession>, EngineError>
fn open(&self, ctx: &ScenarioCtx) -> Result<Box<dyn EngineSession>, EngineError>
Open a session for one scenario. Sessions are opened lazily on the first
batch routed to this engine and torn down via EngineSession::finish.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".