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