turbo_tasks/graph/
control_flow.rs1pub enum VisitControlFlow<Node, Abort = !> {
3 Continue(Node),
5 Skip(Node),
7 Abort(Abort),
9}
10
11impl<Node, Abort> VisitControlFlow<Node, Abort> {
12 pub fn map_node<Map, Mapped>(self, mut map: Map) -> VisitControlFlow<Mapped, Abort>
14 where
15 Map: FnMut(Node) -> Mapped,
16 {
17 match self {
18 VisitControlFlow::Continue(node) => VisitControlFlow::Continue(map(node)),
19 VisitControlFlow::Skip(node) => VisitControlFlow::Skip(map(node)),
20 VisitControlFlow::Abort(abort) => VisitControlFlow::Abort(abort),
21 }
22 }
23
24 pub fn map_abort<Map, Mapped>(self, mut map: Map) -> VisitControlFlow<Node, Mapped>
26 where
27 Map: FnMut(Abort) -> Mapped,
28 {
29 match self {
30 VisitControlFlow::Continue(node) => VisitControlFlow::Continue(node),
31 VisitControlFlow::Skip(node) => VisitControlFlow::Skip(node),
32 VisitControlFlow::Abort(abort) => VisitControlFlow::Abort(map(abort)),
33 }
34 }
35}