use fuel_core_services::SharedMutex; #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Clone)] pub struct Count { pub headers: usize, pub transactions: usize, pub consensus: usize, pub executes: usize, pub blocks: usize, } #[derive(Debug, Default, PartialEq, Eq)] pub struct Counts { pub now: Count, pub max: Count, } pub type SharedCounts = SharedMutex; impl Counts { pub fn inc_headers(&mut self) { self.now.headers += 1; self.max.headers = self.max.headers.max(self.now.headers); } pub fn dec_headers(&mut self) { self.now.headers -= 1; } pub fn inc_transactions(&mut self) { self.now.transactions += 1; self.max.transactions = self.max.transactions.max(self.now.transactions); } pub fn add_transactions(&mut self, transactions: usize) { self.now.transactions += transactions; self.max.transactions = self.max.transactions.max(self.now.transactions); } pub fn dec_transactions(&mut self) { self.now.transactions -= 1; } pub fn sub_transactions(&mut self, transactions: usize) { self.now.transactions -= transactions; } pub fn inc_consensus(&mut self) { self.now.consensus += 1; self.max.consensus = self.max.consensus.max(self.now.consensus); } pub fn dec_consensus(&mut self) { self.now.consensus -= 1; } pub fn inc_executes(&mut self) { self.now.executes += 1; self.max.executes = self.max.executes.max(self.now.executes); } pub fn dec_executes(&mut self) { self.now.executes -= 1; } pub fn inc_blocks(&mut self) { self.now.blocks += 1; self.max.blocks = self.max.blocks.max(self.now.blocks); } pub fn dec_blocks(&mut self) { self.now.blocks -= 1; } }