pub_just/
ran.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use super::*;

#[derive(Default)]
pub struct Ran<'src>(BTreeMap<Namepath<'src>, BTreeSet<Vec<String>>>);

impl<'src> Ran<'src> {
  pub fn has_run(&self, recipe: &Namepath<'src>, arguments: &[String]) -> bool {
    self
      .0
      .get(recipe)
      .is_some_and(|ran| ran.contains(arguments))
  }

  pub fn ran(&mut self, recipe: &Namepath<'src>, arguments: Vec<String>) {
    self.0.entry(recipe.clone()).or_default().insert(arguments);
  }
}