node/snark/
mod.rs

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}