# Global Metrics

path: .metrics.cyclomatic.sum
old: 23.0
new: 33.0
path: .metrics.cyclomatic.average
old: 2.5555555555555554
new: 1.2692307692307692
path: .metrics.mi.mi_sei
old: 17.66074137338274
new: 8.253427353879609
path: .metrics.mi.mi_original
old: 43.43468554757524
new: 29.055662957560685
path: .metrics.mi.mi_visual_studio
old: 25.400400905014763
new: 16.99161576465537
path: .metrics.nargs.sum
old: 11.0
new: 2.0
path: .metrics.nargs.average
old: 1.5714285714285714
new: 0.1
path: .metrics.loc.blank
old: 15.0
new: 108.0
path: .metrics.loc.cloc
old: 20.0
new: 102.0
path: .metrics.loc.lloc
old: 51.0
new: 24.0
path: .metrics.loc.sloc
old: 132.0
new: 313.0
path: .metrics.loc.ploc
old: 97.0
new: 103.0
path: .metrics.cognitive.average
old: 2.2857142857142856
new: 0.35
path: .metrics.cognitive.sum
old: 16.0
new: 7.0
path: .metrics.nexits.sum
old: 5.0
new: 16.0
path: .metrics.nexits.average
old: 0.7142857142857143
new: 0.8
path: .metrics.nom.functions
old: 7.0
new: 20.0
path: .metrics.nom.total
old: 7.0
new: 20.0
path: .metrics.halstead.time
old: 11525.213182697216
new: 3562.3751503662056
path: .metrics.halstead.purity_ratio
old: 0.8567899650443097
new: 1.1119369510924215
path: .metrics.halstead.bugs
old: 1.1681350635859349
new: 0.5340150749990563
path: .metrics.halstead.estimated_program_length
old: 528.6394084323391
new: 483.6925737252035
path: .metrics.halstead.N2
old: 265.0
new: 142.0
path: .metrics.halstead.N1
old: 352.0
new: 293.0
path: .metrics.halstead.level
old: 0.01944847605224964
new: 0.043594902749832326
path: .metrics.halstead.n2
old: 67.0
new: 65.0
path: .metrics.halstead.volume
old: 4034.660986453655
new: 2795.4251682954127
path: .metrics.halstead.effort
old: 207453.83728854987
new: 64122.7527065917
path: .metrics.halstead.n1
old: 26.0
new: 21.0
path: .metrics.halstead.vocabulary
old: 93.0
new: 86.0
path: .metrics.halstead.difficulty
old: 51.417910447761194
new: 22.93846153846154
path: .metrics.halstead.length
old: 617.0
new: 435.0

# Spaces Data

## Minimal test - lines (90, 107)

path: .spaces[0].metrics.mi.mi_visual_studio
old: 27.061630252345218
new: 60.47390298135836
path: .spaces[0].metrics.mi.mi_original
old: 46.27538773151032
new: 103.4103740981228
path: .spaces[0].metrics.mi.mi_sei
old: 14.471024040562147
new: 91.44499615772445
path: .spaces[0].metrics.nom.total
old: 7.0
new: 0.0
path: .spaces[0].metrics.nom.functions
old: 7.0
new: 0.0
path: .spaces[0].metrics.nexits.sum
old: 5.0
new: 0.0
path: .spaces[0].metrics.nexits.average
old: 0.7142857142857143
new: null
path: .spaces[0].metrics.cyclomatic.sum
old: 22.0
new: 1.0
path: .spaces[0].metrics.cyclomatic.average
old: 2.75
new: 1.0
path: .spaces[0].metrics.loc.ploc
old: 91.0
new: 6.0
path: .spaces[0].metrics.loc.cloc
old: 9.0
new: 1.0
path: .spaces[0].metrics.loc.blank
old: 13.0
new: 11.0
path: .spaces[0].metrics.loc.sloc
old: 113.0
new: 18.0
path: .spaces[0].metrics.loc.lloc
old: 51.0
new: 0.0
path: .spaces[0].metrics.cognitive.average
old: 2.2857142857142856
new: null
path: .spaces[0].metrics.cognitive.sum
old: 16.0
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 11.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 1.5714285714285714
new: null
path: .spaces[0].metrics.halstead.bugs
old: 1.1874712470900757
new: 0.008046815554379904
path: .spaces[0].metrics.halstead.effort
old: 212626.0816819024
new: 118.60908406756448
path: .spaces[0].metrics.halstead.N2
old: 260.0
new: 8.0
path: .spaces[0].metrics.halstead.N1
old: 352.0
new: 7.0
path: .spaces[0].metrics.halstead.length
old: 612.0
new: 15.0
path: .spaces[0].metrics.halstead.time
old: 11812.560093439022
new: 6.589393559309138
path: .spaces[0].metrics.halstead.purity_ratio
old: 0.8150001108695476
new: 1.8434322969602153
path: .spaces[0].metrics.halstead.estimated_program_length
old: 498.78006785216314
new: 27.651484454403228
path: .spaces[0].metrics.halstead.level
old: 0.01863905325443787
new: 0.4375
path: .spaces[0].metrics.halstead.n1
old: 26.0
new: 4.0
path: .spaces[0].metrics.halstead.n2
old: 63.0
new: 7.0
path: .spaces[0].metrics.halstead.volume
old: 3963.1488597514353
new: 51.89147427955946
path: .spaces[0].metrics.halstead.vocabulary
old: 89.0
new: 11.0
path: .spaces[0].metrics.halstead.difficulty
old: 53.65079365079365
new: 2.2857142857142856

### Code

    struct ProfilerFeature {
    #  define DECLARE(n_, str_, Name_, desc_)                     \
        static constexpr uint32_t Name_ = (1u << n_);             \
        static constexpr bool Has##Name_(uint32_t aFeatures) {    \
          return aFeatures & Name_;                               \
        }                                                         \
        static constexpr void Set##Name_(uint32_t& aFeatures) {   \
          aFeatures |= Name_;                                     \
        }                                                         \
        static constexpr void Clear##Name_(uint32_t& aFeatures) { \
          aFeatures &= ~Name_;                                    \
        }

      // Define a bitfield constant, a getter, and two setters for each feature.
      PROFILER_FOR_EACH_FEATURE(DECLARE)

    #  undef DECLARE
    };