#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![allow(
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::must_use_candidate,
clippy::cast_possible_truncation,
clippy::cast_precision_loss,
clippy::cast_sign_loss,
clippy::redundant_closure_for_method_calls,
clippy::similar_names,
dead_code,
clippy::pedantic
)]
pub mod context;
pub mod data_flow;
pub mod edge_weight;
pub mod error;
pub mod filters;
pub mod frame;
pub mod graph;
pub mod graph_stats;
pub mod layout;
pub mod metrics_graph;
pub mod node;
pub mod node_registry;
pub mod optimization;
pub mod port;
pub mod processing_graph;
pub mod profiling;
pub mod scheduler;
pub mod serialize;
pub mod visualization;
pub mod graph_validation;
pub mod pipeline_graph;
pub mod subgraph;
pub mod cycle_detect;
pub mod graph_merge;
pub mod topological;
pub mod dependency_graph;
pub mod graph_partition;
pub mod node_cache;
pub mod dsl;
pub mod async_exec;
pub mod graph_evaluator;
pub mod graph_rewrite;
pub mod lock_free_ring;
pub mod node_priority;
pub mod port_buffer;
pub mod hot_swap;
pub use context::{GraphContext, ProcessingStats};
pub use error::{GraphError, GraphResult};
pub use frame::{
simd_copy_frame, FilterFrame, FramePool, FramePoolConfig, FrameRef, SharedFrame, ZeroCopyPort,
};
pub use graph::{FilterGraph, GraphBuilder};
pub use graph_stats::{LatencyHistogram, NodeLatencyStats};
pub use lock_free_ring::{spsc_channel, SpscConsumer, SpscProducer, SpscRingBuffer};
pub use node::{Node, NodeConfig, NodeId, NodeState, NodeType};
pub use port::{Connection, InputPort, OutputPort, PortFormat, PortId, PortType};
pub use processing_graph::RetryPolicy;
pub use topological::{CycleError, FastTopoSorter};