aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/archiver/archiver_interface.rs
blob: d50c96a34b9dfb988828f4ddff6d7465711847f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! ref: composer/src/Composer/Package/Archiver/ArchiverInterface.php

pub trait ArchiverInterface {
    fn archive(
        &self,
        sources: String,
        target: String,
        format: String,
        excludes: Vec<String>,
        ignore_filters: bool,
    ) -> anyhow::Result<String>;

    fn supports(&self, format: String, source_type: Option<String>) -> bool;

    /// PHP `$archiver instanceof X` checks; allow downcasting from `dyn ArchiverInterface`.
    fn as_any(&self) -> &dyn std::any::Any;
}