problemreductions/rules/
maximumsetpacking_casts.rs

1//! Variant cast reductions for MaximumSetPacking.
2
3use crate::impl_variant_reduction;
4use crate::models::set::MaximumSetPacking;
5use crate::types::One;
6use crate::variant::CastToParent;
7
8impl_variant_reduction!(
9    MaximumSetPacking,
10    <One> => <i32>,
11    fields: [num_sets, universe_size],
12    |src| MaximumSetPacking::with_weights(
13        src.sets().to_vec(),
14        src.weights_ref().iter().map(|w| w.cast_to_parent()).collect())
15);
16
17impl_variant_reduction!(
18    MaximumSetPacking,
19    <i32> => <f64>,
20    fields: [num_sets, universe_size],
21    |src| MaximumSetPacking::with_weights(
22        src.sets().to_vec(),
23        src.weights_ref().iter().map(|w| w.cast_to_parent()).collect())
24);
25
26#[cfg(test)]
27#[path = "../unit_tests/rules/maximumsetpacking_casts.rs"]
28mod tests;