use std::sync::Arc;
use crate::runnable::Runnable;
pub struct PregelNode {
pub channels: Vec<String>,
pub triggers: Vec<String>,
pub bound: Arc<dyn Runnable>,
pub writers: Vec<Arc<dyn Runnable>>,
pub retry_policy: Option<String>,
pub tags: Vec<String>,
}
impl PregelNode {
pub fn new(
channels: Vec<String>,
triggers: Vec<String>,
bound: Arc<dyn Runnable>,
) -> Self {
Self {
channels,
triggers,
bound,
writers: Vec::new(),
retry_policy: None,
tags: Vec::new(),
}
}
pub fn with_writer(mut self, writer: Arc<dyn Runnable>) -> Self {
self.writers.push(writer);
self
}
pub fn flat_writers(&self) -> &Vec<Arc<dyn Runnable>> {
&self.writers
}
}