//! ref: composer/src/Composer/Package/Archiver/ArchiverInterface.php use std::any::Any; pub trait ArchiverInterface { fn archive( &self, sources: String, target: String, format: String, excludes: Vec, ignore_filters: bool, ) -> anyhow::Result; fn supports(&self, format: String, source_type: Option) -> bool; /// PHP `$archiver instanceof X` checks; allow downcasting from `dyn ArchiverInterface`. fn as_any(&self) -> &dyn Any; }