//! ref: composer/src/Composer/Repository/AdvisoryProviderInterface.php use indexmap::IndexMap; use shirabe_semver::constraint::constraint_interface::ConstraintInterface; use crate::advisory::partial_security_advisory::PartialSecurityAdvisory; use crate::advisory::security_advisory::SecurityAdvisory; #[derive(Debug)] pub enum PartialOrSecurityAdvisory { Partial(PartialSecurityAdvisory), Full(SecurityAdvisory), } #[derive(Debug)] pub struct SecurityAdvisoryResult { pub names_found: Vec, pub advisories: IndexMap>, } pub trait AdvisoryProviderInterface { fn has_security_advisories(&self) -> bool; fn get_security_advisories(&self, package_constraint_map: IndexMap>, allow_partial_advisories: bool) -> anyhow::Result; }