dfir_rs/scheduled/
subgraph.rs

1use super::HandoffTag;
2use super::context::Context;
3use super::graph::HandoffData;
4use crate::util::slot_vec::SlotVec;
5
6/// Represents a compiled subgraph. Used internally by [Dataflow] to erase the input/output [Handoff] types.
7pub(crate) trait Subgraph {
8    // TODO: pass in some scheduling info?
9    fn run(&mut self, context: &mut Context, handoffs: &mut SlotVec<HandoffTag, HandoffData>);
10}
11impl<F> Subgraph for F
12where
13    F: FnMut(&mut Context, &mut SlotVec<HandoffTag, HandoffData>),
14{
15    fn run(&mut self, context: &mut Context, handoffs: &mut SlotVec<HandoffTag, HandoffData>) {
16        (self)(context, handoffs);
17    }
18}