pub trait GenericPlugin:
Send
+ Sync
+ Sized {
// Required methods
fn new(info: AviUtl2Info) -> AnyResult<Self>;
fn register(&mut self, registry: &mut HostAppHandle<'_>);
// Provided methods
fn on_project_load(&mut self, _project: &mut ProjectFile) { ... }
fn on_project_save(&mut self, _project: &mut ProjectFile) { ... }
fn with_instance<R>(f: impl FnOnce(&Self) -> R) -> R
where Self: GenericSingleton { ... }
fn with_instance_mut<R>(f: impl FnOnce(&mut Self) -> R) -> R
where Self: GenericSingleton { ... }
}Available on crate feature
generic only.Expand description
汎用プラグインのトレイト。
このトレイトを実装し、crate::register_generic_plugin! マクロを使用してプラグインを登録します。
Required Methods§
Sourcefn new(info: AviUtl2Info) -> AnyResult<Self>
fn new(info: AviUtl2Info) -> AnyResult<Self>
プラグインを初期化する。
Sourcefn register(&mut self, registry: &mut HostAppHandle<'_>)
fn register(&mut self, registry: &mut HostAppHandle<'_>)
プラグインをホストに登録する。
Provided Methods§
Sourcefn on_project_load(&mut self, _project: &mut ProjectFile)
fn on_project_load(&mut self, _project: &mut ProjectFile)
プロジェクトファイルのロードを処理する。
プロジェクトの初期化時にも呼ばれます。
Sourcefn on_project_save(&mut self, _project: &mut ProjectFile)
fn on_project_save(&mut self, _project: &mut ProjectFile)
プロジェクトファイルをセーブする直前に呼ばれる。
Sourcefn with_instance<R>(f: impl FnOnce(&Self) -> R) -> Rwhere
Self: GenericSingleton,
fn with_instance<R>(f: impl FnOnce(&Self) -> R) -> Rwhere
Self: GenericSingleton,
Sourcefn with_instance_mut<R>(f: impl FnOnce(&mut Self) -> R) -> Rwhere
Self: GenericSingleton,
fn with_instance_mut<R>(f: impl FnOnce(&mut Self) -> R) -> Rwhere
Self: GenericSingleton,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.