1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate;
/// Handle passed to an [`ActiveNode`] implementation.
///
/// The `nodes` pointer points to the graph's node array cast to `()`.
/// Concrete implementations cast back to `[NodeVariant<f32, B>]`.
///
/// `queue` points to the shared command queue that the audio callback
/// must drain before each processing cycle.
/// A node that drives graph processing.
///
/// The implementation receives a [`GraphHandle`] in [`start`](Self::start).
/// It must drain the command queue at the beginning of every processing
/// cycle, apply parameters to the graph nodes, then run the signal DAG.
///
/// # Safety
///
/// The handle is valid only until the corresponding [`stop`](Self::stop)
/// returns.