1pub use ::snark::*;
2
3pub mod block_verify;
4pub mod user_command_verify;
5pub mod work_verify;
6
7mod snark_effects;
8pub use snark_effects::*;
9
10impl<S> redux::SubStore<crate::State, SnarkState> for crate::Store<S>
11where
12 S: redux::Service,
13{
14 type SubAction = SnarkAction;
15 type Service = S;
16
17 fn state(&self) -> &SnarkState {
18 &self.state.get().snark
19 }
20
21 fn service(&mut self) -> &mut Self::Service {
22 &mut self.service
23 }
24
25 fn state_and_service(&mut self) -> (&SnarkState, &mut Self::Service) {
26 (&self.state.get().snark, &mut self.service)
27 }
28
29 fn dispatch<A>(&mut self, action: A) -> bool
30 where
31 A: Into<SnarkAction> + redux::EnablingCondition<SnarkState>,
32 {
33 crate::Store::sub_dispatch(self, action)
34 }
35
36 fn dispatch_callback<T>(&mut self, callback: redux::Callback<T>, args: T) -> bool
37 where
38 T: 'static,
39 SnarkAction: From<redux::AnyAction> + redux::EnablingCondition<SnarkState>,
40 {
41 crate::Store::dispatch_callback(self, callback, args)
42 }
43}