blob: c0212de82d1de0a53639757abc8789d51407750d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
//! ref: composer/src/Composer/Plugin/PluginInterface.php
use crate::composer::ComposerHandle;
use crate::io::IOInterface;
use crate::plugin::Capable;
use std::cell::RefCell;
use std::rc::Rc;
pub const PLUGIN_API_VERSION: &'static str = "2.9.0";
pub trait PluginInterface: std::fmt::Debug {
fn activate(&mut self, composer: &ComposerHandle, io: Rc<RefCell<dyn IOInterface>>);
fn deactivate(&mut self, composer: &ComposerHandle, io: Rc<RefCell<dyn IOInterface>>);
fn uninstall(&mut self, composer: &ComposerHandle, io: Rc<RefCell<dyn IOInterface>>);
fn clone_box(&self) -> Box<dyn PluginInterface> {
todo!()
}
// TODO(plugin): PHP-side `instanceof` checks for EventSubscriberInterface / Capable.
// EventSubscriberInterface is not dyn-compatible (its only method is associated, not
// a `&self` method), so we expose a boolean predicate instead.
fn is_event_subscriber_interface(&self) -> bool {
false
}
fn as_capable(&self) -> Option<&dyn Capable> {
None
}
}
|