standing_relations/feedback/context/
tracker.rs1use std::{
2 io::{self, Write},
3 sync::{Arc, RwLock},
4};
5
6use crate::core::{self, TrackingIndex};
7
8pub struct ContextTracker {
9 inner: core::ContextTracker,
10 extra_edges: Arc<RwLock<Vec<(TrackingIndex, TrackingIndex)>>>,
11}
12
13impl ContextTracker {
14 pub fn dump_dot(&self, file: impl Write) -> Result<(), io::Error> {
15 self.inner
16 .dump_dot(file, &*self.extra_edges.read().unwrap())
17 }
18
19 pub(super) fn new(
20 inner: core::ContextTracker,
21 extra_edges: Arc<RwLock<Vec<(TrackingIndex, TrackingIndex)>>>,
22 ) -> ContextTracker {
23 ContextTracker { inner, extra_edges }
24 }
25}