Skip to main content

bpm_engine_runtime/
scheduler.rs

1use bpm_engine_core::{ProcessInstance, Token};
2
3pub trait TokenScheduler {
4    fn poll<'a>(&self, instance: &'a ProcessInstance) -> Vec<&'a Token>;
5}
6
7pub struct DefaultTokenScheduler;
8
9impl TokenScheduler for DefaultTokenScheduler {
10    fn poll<'a>(&self, instance: &'a ProcessInstance) -> Vec<&'a Token> {
11        instance.tokens.iter().filter(|t| !t.waiting()).collect()
12    }
13}