1mod model_type_indexer;
2mod plugin;
3
4pub use model_type_indexer::ModelTypeIndexer;
5pub use plugin::{AfterImportPlugin, DeletePlugin, InitEntryPlugin, Plugin, ReferencePlugin};
6use std::cell::RefCell;
7use std::clone::Clone;
8use std::rc::Rc;
9
10#[derive(Clone)]
11pub struct Plugins {
12 pub init_plugins: Vec<Rc<RefCell<dyn InitEntryPlugin>>>,
13 pub after_import_plugins: Vec<Rc<RefCell<dyn AfterImportPlugin>>>,
14 pub plugins: Vec<Rc<RefCell<dyn Plugin>>>,
15 pub delete_plugins: Vec<Rc<RefCell<dyn DeletePlugin>>>,
16 pub reference_plugins: Vec<Rc<RefCell<dyn ReferencePlugin>>>,
17}
18
19impl Plugins {
20 pub fn new() -> Self {
21 Plugins {
22 init_plugins: vec![],
23 after_import_plugins: vec![],
24 plugins: vec![],
25 delete_plugins: vec![],
26 reference_plugins: vec![],
27 }
28 }
29}