aviutl2/lib.rs
1//! # aviutl2-rs
2//!
3//! AviUtl2 SDKのRustラッパー。
4//! このクレートは、AviUtl2のプラグインをRustらしく開発できるようにすることを目的としています。
5//!
6//! ## モジュール
7//!
8//! - [`input`][]:AviUtl2の入力プラグインを実装するためのモジュール。
9//! - [`output`][]:AviUtl2の出力プラグインを実装するためのモジュール。
10//! - [`filter`][]:AviUtl2のフィルタプラグインを実装するためのモジュール。
11//! - [`module`][]:AviUtl2のスクリプトモジュールプラグインを実装するためのモジュール。
12//! - [`generic`][]:AviUtl2の汎用プラグインを実装するためのモジュール。
13//! - [`logger`][]:AviUtl2のロガーへのインターフェースを提供するモジュール。
14//! - [`config`][]:AviUtl2の設定関連機能へのインターフェースを提供するモジュール。
15//! - [`cache`][]:AviUtl2のキャッシュ関連機能へのインターフェースを提供するモジュール。
16//! - [`common`][]:共通の型や関数を提供するモジュール。(トップレベルに再エクスポートされています)
17//! - [`utils`][]:ユーティリティ関数を提供するモジュール。
18//!
19//! 詳細は各モジュールのドキュメントを参照してください。
20//!
21//! ## Feature Flags
22//!
23//! - `input`(デフォルト):入力プラグイン機能を有効にします。
24//! - `output`(デフォルト):出力プラグイン機能を有効にします。
25//! - `filter`(デフォルト):フィルタプラグイン機能を有効にします。
26//! - `module`(デフォルト):スクリプトモジュールプラグイン機能を有効にします。
27//! - `generic`(デフォルト):汎用プラグイン機能を有効にします。
28//! - `wrap_log`(デフォルト):ログ出力時に自動で改行を追加します。
29//! - `aviutl2-alias`:(デフォルト)`aviutl2_alias`クレートを依存関係として追加し、いくつかの関数を追加します。
30//! - `image`:`image`クレートを使用して画像の読み書きをサポートします。
31//! - `serde`:`serde`を使用してプロジェクトファイルへのデータの保存と読み込みをサポートします。
32//!
33//! ## Note
34//!
35//! ### 内部アイテムについて
36//!
37//! このクレートにて、`__`で始まる名前のモジュールや関数やマクロは内部実装用です。
38//! マクロなどを通じて利用されることを意図しており、直接使用した場合の互換性は保証されません。
39//! これらのアイテムはsemverの保証対象外であり、予告なく変更または削除される可能性があります。
40#![cfg_attr(docsrs, feature(doc_cfg))]
41
42#[macro_use]
43mod internal_macros;
44
45#[cfg(feature = "aviutl2-alias")]
46pub use aviutl2_alias as alias;
47pub use aviutl2_sys as sys;
48
49pub use anyhow;
50pub use comptime_if;
51pub use half;
52pub use tracing;
53pub use tracing_subscriber;
54
55#[cfg(feature = "image")]
56pub use image;
57pub use num_rational;
58pub use raw_window_handle;
59
60#[doc(inline)]
61pub use aviutl2_macros::plugin;
62
63#[cfg(feature = "input")]
64pub mod input;
65
66#[cfg(feature = "output")]
67pub mod output;
68
69#[cfg(feature = "filter")]
70pub mod filter;
71
72#[cfg(feature = "module")]
73pub mod module;
74
75#[cfg(feature = "generic")]
76pub mod generic;
77
78#[doc(hidden)]
79#[path = "internal_base.rs"]
80pub mod __internal_base;
81
82pub mod cache;
83pub mod common;
84pub mod config;
85pub mod logger;
86pub mod utils;
87pub use common::*;
88
89#[macro_export]
90#[doc(hidden)]
91macro_rules! __internal_module {
92 ($($item:item)*) => {
93 const _: () = {
94 $($item)*
95 };
96 }
97}
98
99#[doc(hidden)]
100pub fn __catch_unwind_with_panic_info<F, R>(f: F) -> Result<R, String>
101where
102 F: FnOnce() -> R + std::panic::UnwindSafe,
103{
104 utils::catch_unwind_with_panic_info(f)
105}