#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
extern crate self as zennode;
pub mod error;
pub mod format;
pub mod kv;
pub mod ordering;
pub mod param;
pub mod registry;
pub mod schema;
pub mod traits;
pub mod version;
#[cfg(feature = "derive")]
pub mod nodes;
#[cfg(feature = "serde")]
pub mod serde_impl;
#[cfg(feature = "json-schema")]
pub mod json_schema;
pub use error::NodeError;
pub use format::{AlphaHandling, FormatHint, PixelFormatPreference};
pub use kv::{KvEntrySnapshot, KvPairs, KvWarning, KvWarningKind};
pub use ordering::{CoalesceInfo, NodeRole};
pub type Phase = NodeRole;
pub use param::{ParamMap, ParamValue};
pub use registry::{KvResult, NodeRegistry};
pub use schema::{
EdgeKind, EnumVariant, InputPort, JsonParam, NodeGroup, NodeParams, NodeSchema, ParamDesc,
ParamKind, SliderMapping, TaggedVariant,
};
pub use traits::{NodeDef, NodeInstance};
pub use version::VersionSet;
#[cfg(feature = "derive")]
pub use zennode_derive::{Node, NodeEnum};
#[doc(hidden)]
pub mod __private {
pub use alloc::boxed::Box;
pub use alloc::string::{String, ToString};
pub use alloc::vec::Vec;
pub use crate::schema::{NodeParams, ParamDesc, ParamKind, TaggedVariant};
#[cfg(feature = "serde")]
pub use serde_json;
}