MCPcopy Index your code
hub / github.com/encounter/objdiff / migrate_v0

Method migrate_v0

objdiff-core/src/bindings/report.rs:79–114  ·  view source on GitHub ↗

Adds `complete_code`, `complete_data`, `complete_code_percent`, and `complete_data_percent` to measures, and sets `progress_categories` in unit metadata.

(&mut self)

Source from the content-addressed store, hash-verified

77 /// Adds `complete_code`, `complete_data`, `complete_code_percent`, and `complete_data_percent`
78 /// to measures, and sets `progress_categories` in unit metadata.
79 fn migrate_v0(&mut self) -> Result<()> {
80 let Some(measures) = &mut self.measures else {
81 bail!("Missing measures in report");
82 };
83 for unit in &mut self.units {
84 let Some(unit_measures) = &mut unit.measures else {
85 bail!("Missing measures in report unit");
86 };
87 let mut complete = false;
88 if let Some(metadata) = &mut unit.metadata {
89 if metadata.module_name.is_some() || metadata.module_id.is_some() {
90 metadata.progress_categories = vec!["modules".to_string()];
91 } else {
92 metadata.progress_categories = vec!["dol".to_string()];
93 }
94 complete = metadata.complete.unwrap_or(false);
95 };
96 if complete {
97 unit_measures.complete_code = unit_measures.total_code;
98 unit_measures.complete_data = unit_measures.total_data;
99 unit_measures.complete_code_percent = 100.0;
100 unit_measures.complete_data_percent = 100.0;
101 } else {
102 unit_measures.complete_code = 0;
103 unit_measures.complete_data = 0;
104 unit_measures.complete_code_percent = 0.0;
105 unit_measures.complete_data_percent = 0.0;
106 }
107 measures.complete_code += unit_measures.complete_code;
108 measures.complete_data += unit_measures.complete_data;
109 }
110 measures.calc_matched_percent();
111 self.calculate_progress_categories();
112 self.version = 1;
113 Ok(())
114 }
115
116 /// Adds `total_units` and `complete_units` to measures.
117 fn migrate_v1(&mut self) -> Result<()> {

Callers 1

migrateMethod · 0.80

Calls 3

is_someMethod · 0.80
calc_matched_percentMethod · 0.80

Tested by

no test coverage detected