Skip to content

Commit 5882824

Browse files
committed
Named loop variables
1 parent a42e66d commit 5882824

File tree

1 file changed

+67
-54
lines changed

1 file changed

+67
-54
lines changed

src/make_migrations/mod.rs

Lines changed: 67 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -135,59 +135,70 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
135135
let mut altered_fields: HashMap<String, Vec<(&Field, &Field)>> = HashMap::new();
136136

137137
// Check if any new models exist
138-
for x in &internal_models.models {
139-
if !old_lookup.iter().any(|(a, _)| x.name == *a) {
140-
new_models.push(x);
138+
for new_model in &internal_models.models {
139+
if !old_lookup.iter().any(|(a, _)| new_model.name == *a) {
140+
new_models.push(new_model);
141141
}
142142
}
143143

144144
// Check if any old model got deleted
145-
for x in &constructed.models {
146-
if !new_lookup.iter().any(|(a, _)| x.name == *a) {
147-
deleted_models.push(x);
145+
for old_model in &constructed.models {
146+
if !new_lookup.iter().any(|(a, _)| old_model.name == *a) {
147+
deleted_models.push(old_model);
148148
}
149149
}
150150

151151
// Iterate over all models, that are in the constructed
152152
// as well as in the new internal models
153-
for x in &internal_models.models {
154-
if !old_lookup.contains_key(x.name.as_str()) {
153+
for new_model in &internal_models.models {
154+
if !old_lookup.contains_key(new_model.name.as_str()) {
155155
continue;
156156
}
157157

158158
// Check if a new field has been added
159-
for y in &x.fields {
160-
if !old_lookup[x.name.as_str()]
159+
for new_field in &new_model.fields {
160+
if !old_lookup[new_model.name.as_str()]
161161
.fields
162162
.iter()
163-
.any(|z| z.name == y.name)
163+
.any(|z| z.name == new_field.name)
164164
{
165-
if !new_fields.contains_key(x.name.as_str()) {
166-
new_fields.insert(x.name.clone(), vec![]);
165+
if !new_fields.contains_key(new_model.name.as_str()) {
166+
new_fields.insert(new_model.name.clone(), vec![]);
167167
}
168-
new_fields.get_mut(x.name.as_str()).unwrap().push(y);
168+
new_fields
169+
.get_mut(new_model.name.as_str())
170+
.unwrap()
171+
.push(new_field);
169172
}
170173
}
171174

172175
// Check if a existing field got deleted
173-
for y in &old_lookup[x.name.as_str()].fields {
174-
if !x.fields.iter().any(|z| z.name == y.name) {
175-
if !deleted_fields.contains_key(x.name.as_str()) {
176-
deleted_fields.insert(x.name.clone(), vec![]);
176+
for old_field in &old_lookup[new_model.name.as_str()].fields {
177+
if !new_model.fields.iter().any(|z| z.name == old_field.name) {
178+
if !deleted_fields.contains_key(new_model.name.as_str()) {
179+
deleted_fields.insert(new_model.name.clone(), vec![]);
177180
}
178-
deleted_fields.get_mut(x.name.as_str()).unwrap().push(y);
181+
deleted_fields
182+
.get_mut(new_model.name.as_str())
183+
.unwrap()
184+
.push(old_field);
179185
}
180186
}
181187

182188
// Check if a existing field got altered
183-
for y in &old_lookup[x.name.as_str()].fields {
184-
for z in &x.fields {
189+
for old_field in &old_lookup[new_model.name.as_str()].fields {
190+
for new_field in &new_model.fields {
185191
// Check for differences
186-
if y.db_type != z.db_type || y.annotations != z.annotations {
187-
if !altered_fields.contains_key(x.name.as_str()) {
188-
altered_fields.insert(x.name.clone(), vec![]);
192+
if old_field.db_type != new_field.db_type
193+
|| old_field.annotations != new_field.annotations
194+
{
195+
if !altered_fields.contains_key(new_model.name.as_str()) {
196+
altered_fields.insert(new_model.name.clone(), vec![]);
189197
}
190-
altered_fields.get_mut(&x.name).unwrap().push((y, z));
198+
altered_fields
199+
.get_mut(&new_model.name)
200+
.unwrap()
201+
.push((old_field, new_field));
191202
}
192203
}
193204
}
@@ -227,28 +238,29 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
227238
let mut references: HashMap<String, Vec<Field>> = HashMap::new();
228239

229240
// Create migration operations for new models
230-
for x in &new_models {
241+
for new_model in &new_models {
231242
let mut normal_fields = vec![];
232243

233-
for y in &x.fields {
234-
if y.annotations
244+
for new_field in &new_model.fields {
245+
if new_field
246+
.annotations
235247
.iter()
236248
.any(|z| z.eq_shallow(&Annotation::ForeignKey(Default::default())))
237249
{
238250
references
239-
.entry(x.name.clone())
251+
.entry(new_model.name.clone())
240252
.or_default()
241-
.push(y.clone());
253+
.push(new_field.clone());
242254
} else {
243-
normal_fields.push(y.clone());
255+
normal_fields.push(new_field.clone());
244256
}
245257
}
246258

247259
op.push(Operation::CreateModel {
248-
name: x.name.clone(),
260+
name: new_model.name.clone(),
249261
fields: normal_fields,
250262
});
251-
info!("Created model {}", x.name);
263+
info!("Created model {}", new_model.name);
252264
}
253265

254266
// Create referencing fields for new models
@@ -262,11 +274,11 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
262274
}
263275

264276
// Create migration operations for deleted models
265-
for x in &deleted_models {
277+
for deleted_model in &deleted_models {
266278
op.push(Operation::DeleteModel {
267-
name: x.name.clone(),
279+
name: deleted_model.name.clone(),
268280
});
269-
info!("Deleted model {}", x.name);
281+
info!("Deleted model {}", deleted_model.name);
270282
}
271283

272284
for (model_name, new_fields) in &new_fields {
@@ -319,24 +331,24 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
319331
}
320332

321333
// Create migration operations for new fields in existing models
322-
for (x, y) in &new_fields {
323-
for z in y {
334+
for (model_name, fields) in &new_fields {
335+
for field in fields {
324336
op.push(Operation::CreateField {
325-
model: x.clone(),
326-
field: (*z).clone(),
337+
model: model_name.clone(),
338+
field: (*field).clone(),
327339
});
328-
info!("Added field {} to model {}", z.name, x);
340+
info!("Added field {} to model {}", field.name, model_name);
329341
}
330342
}
331343

332344
// Create migration operations for deleted fields in existing models
333-
for (x, y) in &deleted_fields {
334-
for z in y {
345+
for (model_name, fields) in &deleted_fields {
346+
for field in fields {
335347
op.push(Operation::DeleteField {
336-
model: x.clone(),
337-
name: z.name.clone(),
348+
model: model_name.clone(),
349+
name: field.name.clone(),
338350
});
339-
info!("Deleted field {} from model {}", z.name, x);
351+
info!("Deleted field {} from model {}", field.name, model_name);
340352
}
341353
}
342354

@@ -397,28 +409,29 @@ pub fn run_make_migrations(options: MakeMigrationsOptions) -> anyhow::Result<()>
397409
let mut operations = vec![];
398410
let mut references: HashMap<String, Vec<Field>> = HashMap::new();
399411

400-
operations.extend(internal_models.models.iter().map(|x| {
412+
operations.extend(internal_models.models.iter().map(|model| {
401413
let mut normal_fields = vec![];
402414

403-
for y in &x.fields {
404-
if y.annotations
415+
for field in &model.fields {
416+
if field
417+
.annotations
405418
.iter()
406419
.any(|z| z.eq_shallow(&Annotation::ForeignKey(Default::default())))
407420
{
408421
references
409-
.entry(x.name.clone())
422+
.entry(model.name.clone())
410423
.or_default()
411-
.push(y.clone());
424+
.push(field.clone());
412425
} else {
413-
normal_fields.push(y.clone());
426+
normal_fields.push(field.clone());
414427
}
415428
}
416429

417430
let o = Operation::CreateModel {
418-
name: x.name.clone(),
431+
name: model.name.clone(),
419432
fields: normal_fields,
420433
};
421-
info!("Created model {}", x.name);
434+
info!("Created model {}", model.name);
422435
o
423436
}));
424437

0 commit comments

Comments
 (0)