LCOV - code coverage report
Current view: top level - src/src - stats_in_game.rs (source / functions) Coverage Total Hit
Test: lcov Lines: 84.2 % 19 16
Test Date: 2025-06-05 00:12:56 Functions: 50.0 % 2 1
Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : use indexmap::IndexMap;
       2                 :             : use serde::{Deserialize, Serialize};
       3                 :             : 
       4                 :             : use crate::{attack_type::AtksInfo, effect::EffectOutcome};
       5                 :             : 
       6                 :             : #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq)]
       7                 :             : pub struct StatsInGame {
       8                 :             :     pub all_atk_info: Vec<AtksInfo>,
       9                 :             : }
      10                 :             : 
      11                 :             : impl StatsInGame {
      12                 :           5 :     pub fn update_by_effectoutcome(&mut self, eo: &EffectOutcome) {
      13                 :           5 :         let temp_target: &str = &eo.target_name;
      14                 :           5 :         if let Some(i) = self
      15                 :           5 :             .all_atk_info
      16                 :           5 :             .iter()
      17                 :           5 :             .position(|item| item.atk_name == eo.atk)
      18                 :           0 :         {
      19                 :           0 :             self.all_atk_info[i].nb_use += 1;
      20                 :           0 :             self.all_atk_info[i].all_damages_by_target[temp_target] = eo.real_amount_tx;
      21                 :           5 :         } else {
      22                 :           5 :             let mut im = IndexMap::new();
      23                 :           5 :             im.insert(eo.atk.clone(), eo.real_amount_tx);
      24                 :           5 :             self.all_atk_info.push(AtksInfo {
      25                 :           5 :                 atk_name: eo.target_name.clone(),
      26                 :           5 :                 nb_use: 1,
      27                 :           5 :                 all_damages_by_target: im,
      28                 :           5 :             });
      29                 :           5 :         }
      30                 :           5 :     }
      31                 :             : }
        

Generated by: LCOV version 2.0-1