Skip to main content

ezu_graph/
lib.rs

1//! Typed DAG evaluator for the Ezu Style Spec.
2//!
3//! - [`port`] — `PortKind`, `PortSpec`, `CoordSpace`
4//! - [`buf`] / [`value`] — concrete buffers and the `PortValue` enum
5//! - [`node`] — the `Node` trait every operation implements
6//! - [`graph`] — `GraphBuilder` / `Graph` with topo sort, type checking,
7//!   cycle detection, and pad propagation
8//! - [`registry`] / [`build`] — turn a parsed `ezu_style::Document`
9//!   into a typed `Graph` using a registry of node factories
10//! - [`eval`] / [`cache`] / [`evaluator`] — render a tile
11
12pub mod buf;
13pub mod build;
14pub mod cache;
15pub mod eval;
16pub mod evaluator;
17pub mod graph;
18pub mod node;
19pub mod port;
20pub mod registry;
21pub mod value;
22
23pub use buf::{GeoScale, OpaqueValue, RasterBuf, ScalarField};
24pub use build::{build_graph, BuildGraphError};
25pub use cache::{Cache, CacheKey, Hash128};
26pub use eval::{
27    Asset, AssetError, AssetLoader, CanvasInfo, EvalCtx, EvalError, NoAssets, ParamValues, TileId,
28};
29pub use evaluator::{Evaluator, RenderError};
30pub use graph::{BuildError, Edge, Graph, GraphBuilder, NodeId, NodeIx, MAX_PAD};
31pub use node::Node;
32pub use port::{CoordSpace, PortKind, PortSpec};
33pub use registry::{
34    schema_frag, take_input_ref, take_optional_input_ref, BuiltNode, Connection, FactoryCtx,
35    FactoryError, NodeFactory, NodeRegistry, StaticOp,
36};
37
38#[doc(hidden)]
39pub use inventory;
40pub use value::{PortValue, ScalarValue};
41
42#[cfg(test)]
43mod tests;