1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use std::cell::RefCell; use std::rc::Rc; use super::action::Action; use super::action::TypedAction; use super::action::Action::Flag; use super::generic::StoreConstAction; use super::{StoreTrue, StoreFalse}; impl TypedAction<bool> for StoreTrue { fn bind<'x>(&self, cell: Rc<RefCell<&'x mut bool>>) -> Action<'x> { return Flag(Box::new(StoreConstAction { cell: cell, value: true })); } } impl TypedAction<bool> for StoreFalse { fn bind<'x>(&self, cell: Rc<RefCell<&'x mut bool>>) -> Action<'x> { return Flag(Box::new(StoreConstAction { cell: cell, value: false })); } }