ndn_pipeline/
lib.rs

1//! # ndn-pipeline -- Packet processing pipeline stages
2//!
3//! Defines the fixed-stage pipeline through which every NDN packet flows.
4//! Each stage receives a [`PacketContext`] by value and returns an [`Action`]
5//! that drives dispatch (`Continue`, `Send`, `Satisfy`, `Drop`, `Nack`).
6//!
7//! ## Key types
8//!
9//! - [`PipelineStage`] -- trait implemented by each processing step
10//! - [`PacketContext`] -- per-packet state passed by value through the pipeline
11//! - [`Action`] -- enum controlling packet fate after each stage
12//! - [`DecodedPacket`] -- lazily-decoded Interest or Data
13//! - `BoxedStage` -- type-erased pipeline stage (`Box<dyn PipelineStage>`)
14
15#![allow(missing_docs)]
16
17pub mod action;
18pub mod context;
19pub mod stage;
20
21pub use action::{Action, DropReason, ForwardingAction, NackReason};
22pub use context::{DecodedPacket, PacketContext};
23pub use ndn_transport::AnyMap;
24pub use stage::PipelineStage;