aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/plugin/plugin_interface.rs
blob: a7bb384b10b2ff39a2114704f3b3546ecb1bb308 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! ref: composer/src/Composer/Plugin/PluginInterface.php

use crate::composer::Composer;
use crate::io::io_interface::IOInterface;

pub const PLUGIN_API_VERSION: &'static str = "2.9.0";

pub trait PluginInterface: std::fmt::Debug {
    fn activate(&mut self, composer: &Composer, io: &dyn IOInterface);

    fn deactivate(&mut self, composer: &Composer, io: &dyn IOInterface);

    fn uninstall(&mut self, composer: &Composer, io: &dyn IOInterface);

    fn clone_box(&self) -> Box<dyn PluginInterface> {
        todo!()
    }
}