p2p/connection/
p2p_connection_reducer.rs1use openmina_core::Substate;
2use redux::ActionWithMeta;
3
4use super::{
5 incoming::P2pConnectionIncomingState, outgoing::P2pConnectionOutgoingState,
6 P2pConnectionAction, P2pConnectionState,
7};
8use crate::P2pState;
9
10impl P2pConnectionState {
11 pub fn reducer<Action, State>(
12 state_context: Substate<Action, State, P2pState>,
13 action: ActionWithMeta<P2pConnectionAction>,
14 ) -> Result<(), String>
15 where
16 State: crate::P2pStateTrait,
17 Action: crate::P2pActionTrait<State>,
18 {
19 let (action, meta) = action.split();
20
21 match action {
22 P2pConnectionAction::Outgoing(action) => {
23 P2pConnectionOutgoingState::reducer(state_context, meta.with_action(action))
24 }
25 P2pConnectionAction::Incoming(action) => {
26 P2pConnectionIncomingState::reducer(state_context, meta.with_action(action))
27 }
28 }
29 }
30}