Skip to main content

Crate zennode

Crate zennode 

Source
Expand description

Self-documenting node definitions for image processing pipelines.

zennode provides a trait-based system for defining pipeline operations with full parameter schemas, RIAPI querystring parsing, and JSON Schema generation — all with permanent backwards compatibility.

§Quick Start

use zennode::*;

#[derive(Node, Clone, Debug, Default)]
#[node(id = "myfilter.brightness", group = Tone, role = Filter)]
pub struct Brightness {
    /// Amount of brightness adjustment
    #[param(range(-1.0..=1.0), default = 0.0, identity = 0.0, step = 0.05)]
    #[param(unit = "", section = "Main")]
    pub amount: f32,
}

§Features

  • derive (default) — enables #[derive(Node)] and #[derive(NodeEnum)]
  • std (default) — enables std::error::Error impl
  • serde — enables serde Serialize/Deserialize on param types
  • json-schema — enables JSON Schema generation (implies serde)

Re-exports§

pub use error::NodeError;
pub use format::AlphaHandling;
pub use format::FormatHint;
pub use format::PixelFormatPreference;
pub use kv::KvEntrySnapshot;
pub use kv::KvPairs;
pub use kv::KvWarning;
pub use kv::KvWarningKind;
pub use ordering::CoalesceInfo;
pub use ordering::NodeRole;
pub use param::ParamMap;
pub use param::ParamValue;
pub use registry::KvResult;
pub use registry::NodeRegistry;
pub use schema::EnumVariant;
pub use schema::JsonParam;
pub use schema::NodeGroup;
pub use schema::NodeParams;
pub use schema::NodeSchema;
pub use schema::ParamDesc;
pub use schema::ParamKind;
pub use schema::SliderMapping;
pub use schema::TaggedVariant;
pub use traits::NodeDef;
pub use traits::NodeInstance;
pub use version::VersionSet;

Modules§

error
Error types for node operations.
format
Pixel format preference types.
kv
RIAPI key-value parsing with consumption tracking.
nodes
zennode does not define any built-in nodes. See nodes module docs. zennode does not define any built-in nodes.
ordering
Node classification and coalescing types.
param
Runtime parameter value types.
registry
Node registry — aggregation point for node definitions.
schema
Static schema types for node definitions.
traits
Core traits for node definitions and instances.
version
Version management for node registries.

Type Aliases§

Phase
Backwards compatibility alias.

Derive Macros§

Node
Derive macro for defining a pipeline node from a struct.
NodeEnum
Derive macro for enum types used as node parameters.