flow-graph-interpreter 0.22.0

An intepreter for flow-based programs
Documentation
use wick_packet::Entity;

pub(crate) fn path_to_entity(path: &str) -> Entity {
  path
    .split_once("::")
    .map_or_else(|| Entity::local(path), |(path, op)| Entity::operation(path, op))
}

pub(crate) struct Bucket<T> {
  inner: std::sync::Arc<parking_lot::Mutex<Option<T>>>,
}

impl<T> Bucket<T> {
  pub(crate) fn new(inner: T) -> Self {
    Self {
      inner: std::sync::Arc::new(parking_lot::Mutex::new(Some(inner))),
    }
  }

  pub(crate) fn take(&self) -> Option<T> {
    self.inner.lock().take()
  }

  #[allow(dead_code)]
  pub(crate) fn replace(&self, inner: T) -> Option<T> {
    self.inner.lock().replace(inner)
  }
}