1#![feature(doc_cfg)]
7pub extern crate rustsynth_sys;
8pub use rustsynth_sys as ffi;
9
10#[cfg(feature = "proc-macro")]
11extern crate rustsynth_derive;
12#[doc(cfg(feature = "proc-macro"))]
13#[cfg(feature = "proc-macro")]
14pub use rustsynth_derive::*;
15
16mod api;
17pub mod core;
18pub mod filter;
19pub mod format;
20pub mod frame;
21pub mod function;
22pub mod log;
23pub mod map;
24pub mod node;
25pub mod plugin;
26#[cfg(feature = "vsscript-functions")]
27#[doc(cfg(feature = "vsscript-functions"))]
28pub mod vsscript;
29pub use api::init_api;
30
31pub mod prelude {
32 pub use super::{
36 core::{CoreCreationFlags, CoreRef},
37 filter::{Filter, FilterMode, RequestPattern},
38 format::{VideoFormat, VideoInfo},
39 frame::Frame,
40 node::Node,
41 };
42}
43
44#[must_use]
45pub fn api_version() -> i32 {
46 api::API::get().unwrap().version()
47}
48
49#[macro_export(local_inner_macros)]
60macro_rules! owned_map {
61 ($({$key:literal: $x:expr }),*) => {
62 {
63 let mut temp_map = $crate::map::Map::new().unwrap();
64 $(
65 temp_map.set($key, $x).unwrap();
66 )*
67 temp_map
68 }
69 };
70}
71
72pub use ffi::version as MakeVersion;