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

Method migrate_v1

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

Adds `total_units` and `complete_units` to measures.

(&mut self)

Source from the content-addressed store, hash-verified

115
116 /// Adds `total_units` and `complete_units` to measures.
117 fn migrate_v1(&mut self) -> Result<()> {
118 let Some(total_measures) = &mut self.measures else {
119 bail!("Missing measures in report");
120 };
121 for unit in &mut self.units {
122 let Some(measures) = &mut unit.measures else {
123 bail!("Missing measures in report unit");
124 };
125 let complete = unit.metadata.as_ref().and_then(|m| m.complete).unwrap_or(false) as u32;
126 let progress_categories =
127 unit.metadata.as_ref().map(|m| m.progress_categories.as_slice()).unwrap_or(&[]);
128 measures.total_units = 1;
129 measures.complete_units = complete;
130 total_measures.total_units += 1;
131 total_measures.complete_units += complete;
132 for id in progress_categories {
133 if let Some(category) = self.categories.iter_mut().find(|c| &c.id == id) {
134 let Some(measures) = &mut category.measures else {
135 bail!("Missing measures in category");
136 };
137 measures.total_units += 1;
138 measures.complete_units += complete;
139 }
140 }
141 }
142 self.version = 2;
143 Ok(())
144 }
145
146 /// Calculate progress categories based on unit metadata.
147 pub fn calculate_progress_categories(&mut self) {

Callers 1

migrateMethod · 0.80

Calls 1

iter_mutMethod · 0.80

Tested by

no test coverage detected