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}