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>>;
}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>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".