#[menus]Available on crate feature
generic only.Expand description
汎用プラグインのメニュー登録実装を生成するマクロ。
このマクロはimplブロックに対して適用されます。
implブロック内で定義された関数が汎用プラグインのメニューとして登録されます。
ブロック内の関数はすべて以下のシグネチャのうちいずれかを持つ必要があります:
fn func1(edit_handle: &mut aviutl2::generic::EditSection) -> ()
fn func2(edit_handle: &mut aviutl2::generic::EditSection) -> Result<(), E>
where
Box<dyn std::error::Error>: From<E>,§Attributes
§import
汎用プラグインのインポートメニューとして登録します。
name: メニューに表示される名前を指定します。error: エラー発生時のハンドリング方法を指定します。"alert"、"log"、"ignore"のいずれかを指定します。"alert": エラー発生時にアラートダイアログを表示します。(デフォルト)"log": エラー発生時にログにエラーメッセージを出力します。"ignore": エラー発生時に何も行いません。
§export
汎用プラグインのエクスポートメニューとして登録します。
パラメーターはimport属性と同様です。
§layer
汎用プラグインのレイヤーメニューとして登録します。
パラメーターはimport属性と同様です。
§object
汎用プラグインのオブジェクトメニューとして登録します。
パラメーターはimport属性と同様です。
§Example
#[aviutl2::plugin(GenericPlugin)]
struct MyGenericPlugin;
#[aviutl2::generic::menus]
impl MyGenericPlugin {
#[import(name = ".txtファイルをインポート")]
fn import_text(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
// ...
}
#[export(name = ".txtファイルをエクスポート")]
fn export_text(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
// ...
}
#[layer(name = "レイヤーを複製")]
fn duplicate_layer(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
// ...
}
#[object(name = "オブジェクトを削除")]
fn delete_object(edit_handle: &mut aviutl2::generic::EditSection) -> aviutl2::AnyResult<()> {
// ...
}
}