pub trait LanguagePlugin: Send + Sync {
// Required methods
fn id(&self) -> &'static str;
fn display_name(&self) -> &'static str;
fn detect_project(&self, root: &Path) -> Result<ProjectInfo>;
fn discover_targets(&self, root: &Path) -> Result<Vec<VerificationTarget>>;
fn generate_tests(
&self,
target: &VerificationTarget,
plan: &VerificationPlan,
) -> Result<Vec<GeneratedArtifact>>;
fn run_tests(
&self,
root: &Path,
artifacts: &[GeneratedArtifact],
plan: &VerificationPlan,
) -> Result<TestRunResult>;
fn collect_coverage(&self, root: &Path) -> Result<Option<CoverageReport>>;
// Provided methods
fn capabilities(&self) -> Vec<PluginCapability> { ... }
fn replay_behavior(
&self,
_root: &Path,
_target: &VerificationTarget,
_case: &BehaviorReplayCase,
) -> Result<Option<BehaviorReplayObservation>> { ... }
fn replay_behaviors(
&self,
root: &Path,
target: &VerificationTarget,
cases: &[BehaviorReplayCase],
) -> Result<BTreeMap<String, BehaviorReplayObservation>> { ... }
fn promote_regression(
&self,
_root: &Path,
_report: &VerificationReport,
finding: &Failure,
index: usize,
) -> Result<Vec<GeneratedArtifact>> { ... }
}Required Methods§
fn id(&self) -> &'static str
fn display_name(&self) -> &'static str
fn detect_project(&self, root: &Path) -> Result<ProjectInfo>
fn discover_targets(&self, root: &Path) -> Result<Vec<VerificationTarget>>
fn generate_tests( &self, target: &VerificationTarget, plan: &VerificationPlan, ) -> Result<Vec<GeneratedArtifact>>
fn run_tests( &self, root: &Path, artifacts: &[GeneratedArtifact], plan: &VerificationPlan, ) -> Result<TestRunResult>
fn collect_coverage(&self, root: &Path) -> Result<Option<CoverageReport>>
Provided Methods§
fn capabilities(&self) -> Vec<PluginCapability>
fn replay_behavior( &self, _root: &Path, _target: &VerificationTarget, _case: &BehaviorReplayCase, ) -> Result<Option<BehaviorReplayObservation>>
fn replay_behaviors( &self, root: &Path, target: &VerificationTarget, cases: &[BehaviorReplayCase], ) -> Result<BTreeMap<String, BehaviorReplayObservation>>
fn promote_regression( &self, _root: &Path, _report: &VerificationReport, finding: &Failure, index: usize, ) -> Result<Vec<GeneratedArtifact>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".