use cordance_core::advise::AdviseFinding;
use cordance_core::pack::CordancePack;
pub trait AdviseRule: Send + Sync {
fn id(&self) -> &'static str;
fn doctrine_anchor(&self) -> &'static str;
fn check(&self, pack: &CordancePack) -> Vec<AdviseFinding>;
}
#[must_use]
pub fn all_rules() -> Vec<Box<dyn AdviseRule>> {
vec![
Box::new(build::RBuild1),
Box::new(secrets::RSecrets1),
Box::new(supply::RSupply1),
Box::new(secure::RSecure1),
Box::new(docs::RDocs1),
Box::new(contracts::RContracts1),
Box::new(trunk::RTrunk1),
Box::new(observe::RObserve1),
Box::new(naming::RNaming1),
Box::new(adr_readme::RAdrReadme1),
Box::new(changelog::RChangelog1),
Box::new(schema_version::RSchemaVersion1),
Box::new(gitignore::RGitignore1),
Box::new(license::RLicense1),
]
}
pub mod adr_readme;
pub mod build;
pub mod changelog;
pub mod contracts;
pub mod docs;
pub mod gitignore;
pub mod license;
pub mod naming;
pub mod observe;
pub mod schema_version;
pub mod secrets;
pub mod secure;
pub mod supply;
pub mod trunk;