Skip to main content

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