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
44pub fn api_version() -> i32 {
45 api::API::get().unwrap().version()
46}
47
48#[macro_export(local_inner_macros)]
59macro_rules! owned_map {
60 ($({$key:literal: $x:expr }),*) => {
61 {
62 let mut temp_map = $crate::map::OwnedMap::new();
63 $(
64 temp_map.set($key, $x).unwrap();
65 )*
66 temp_map
67 }
68 };
69}
70
71pub use ffi::version as MakeVersion;