use mockforge_foundation::{
contract_diff_types::ContractDiffResult,
contract_drift_types::{ConsumerImpact, FitnessTestResult},
};
use mockforge_openapi::OpenApiSpec;
use std::fmt::Debug;
pub trait FitnessSource: Debug + Send + Sync {
#[allow(clippy::too_many_arguments)]
fn evaluate_fitness(
&self,
old_spec: Option<&OpenApiSpec>,
new_spec: &OpenApiSpec,
diff: &ContractDiffResult,
endpoint: &str,
method: &str,
workspace: Option<&str>,
service: Option<&str>,
) -> Option<Vec<FitnessTestResult>>;
}
pub trait ConsumerImpactSource: Debug + Send + Sync {
fn consumer_impact(&self, endpoint: &str, method: &str) -> Option<ConsumerImpact>;
}