@@ -9,13 +9,24 @@ impl<T: Config> Pallet<T> {
9
9
SubnetworkN :: < T > :: get ( netuid)
10
10
}
11
11
12
+ fn clear_element_at < N > ( position : u16 ) -> impl Fn ( & mut Vec < N > )
13
+ where
14
+ N : From < u8 > ,
15
+ {
16
+ move |vec : & mut Vec < N > | {
17
+ if vec. len ( ) > position as usize {
18
+ vec[ position as usize ] = N :: from ( 0 ) ;
19
+ } ;
20
+ }
21
+ }
22
+
12
23
/// Resets the trust, emission, consensus, incentive, dividends of the neuron to default
13
24
pub fn clear_neuron ( netuid : u16 , neuron_uid : u16 ) {
14
- Emission :: < T > :: mutate ( netuid, |v| v [ neuron_uid as usize ] = 0 ) ;
15
- Trust :: < T > :: mutate ( netuid, |v| v [ neuron_uid as usize ] = 0 ) ;
16
- Consensus :: < T > :: mutate ( netuid, |v| v [ neuron_uid as usize ] = 0 ) ;
17
- Incentive :: < T > :: mutate ( netuid, |v| v [ neuron_uid as usize ] = 0 ) ;
18
- Dividends :: < T > :: mutate ( netuid, |v| v [ neuron_uid as usize ] = 0 ) ;
25
+ Emission :: < T > :: mutate ( netuid, Self :: clear_element_at ( neuron_uid) ) ;
26
+ Trust :: < T > :: mutate ( netuid, Self :: clear_element_at ( neuron_uid) ) ;
27
+ Consensus :: < T > :: mutate ( netuid, Self :: clear_element_at ( neuron_uid) ) ;
28
+ Incentive :: < T > :: mutate ( netuid, Self :: clear_element_at ( neuron_uid) ) ;
29
+ Dividends :: < T > :: mutate ( netuid, Self :: clear_element_at ( neuron_uid) ) ;
19
30
}
20
31
21
32
/// Replace the neuron under this uid.
0 commit comments