- for (variant, variant_layout) in enum_definition.variants.iter().zip(variants) {
- // Subtract the size of the enum discriminant
- let bytes = variant_layout.min_size().bytes().saturating_sub(discr_size);
- sizes.push(bytes);
-
- debug!("- variant `{}` is {} bytes large", variant.node.name, bytes);
- }
-
- let (largest, slargest, largest_index) = sizes.iter()
- .enumerate()
- .fold((0, 0, 0),
- |(l, s, li), (idx, &size)|
- if size > l {
- (size, l, idx)
- } else if size > s {
- (l, size, li)
- } else {
- (l, s, li)
- }
- );
+ let (largest, slargest, largest_index) = enum_definition.variants
+ .iter()
+ .zip(variants)
+ .map(|(variant, variant_layout)| {
+ // Subtract the size of the enum discriminant
+ let bytes = variant_layout.min_size().bytes()
+ .saturating_sub(discr_size);
+
+ debug!("- variant `{}` is {} bytes large", variant.node.name, bytes);
+ bytes
+ })
+ .enumerate()
+ .fold((0, 0, 0),
+ |(l, s, li), (idx, size)|
+ if size > l {
+ (size, l, idx)
+ } else if size > s {
+ (l, size, li)
+ } else {
+ (l, s, li)
+ }
+ );