gwr_models/registers/
test_helpers.rs1use std::cell::RefCell;
4use std::rc::Rc;
5
6use gwr_engine::traits::{Resolve, Resolver};
7
8pub struct TestResolver {
9 to_resolve: RefCell<Vec<Rc<dyn Resolve>>>,
10}
11
12impl TestResolver {
13 #[must_use]
14 pub fn new() -> Self {
15 Self {
16 to_resolve: RefCell::new(Vec::new()),
17 }
18 }
19}
20
21impl Default for TestResolver {
22 fn default() -> Self {
23 Self::new()
24 }
25}
26
27impl Resolver for TestResolver {
28 fn add_resolve(&self, resolve: Rc<dyn Resolve + 'static>) {
29 self.to_resolve.borrow_mut().push(resolve);
30 }
31}
32
33impl Resolve for TestResolver {
34 fn resolve(&self) {
35 for r in self.to_resolve.borrow_mut().drain(..) {
36 r.resolve();
37 }
38 }
39}