Skip to main content

solverforge_scoring/api/
node_sharing.rs

1#[derive(Debug, PartialEq, Eq, Hash)]
2pub struct SharedNodeId(pub usize);
3
4#[derive(Debug, PartialEq, Eq, Hash)]
5pub enum SharedNodeOperation {
6    Grouped,
7    ProjectedGrouped,
8    CrossGrouped,
9    CrossComplementedGrouped,
10    ProjectedComplementedGrouped,
11}
12
13#[derive(Debug, PartialEq, Eq)]
14pub struct SharedNodeDiagnostics {
15    pub id: SharedNodeId,
16    pub fingerprint: String,
17    pub operation: SharedNodeOperation,
18    pub terminal_consumers: Vec<String>,
19    pub update_count: usize,
20    pub changed_key_count: usize,
21}
22
23impl SharedNodeDiagnostics {
24    pub fn new(
25        id: SharedNodeId,
26        fingerprint: impl Into<String>,
27        operation: SharedNodeOperation,
28        terminal_consumers: Vec<String>,
29        update_count: usize,
30        changed_key_count: usize,
31    ) -> Self {
32        Self {
33            id,
34            fingerprint: fingerprint.into(),
35            operation,
36            terminal_consumers,
37            update_count,
38            changed_key_count,
39        }
40    }
41}