MultiVariant constructor
MultiVariant(
- Iterable<
IVariant> variants, { - required MultiVariantOperator type,
Implementation
factory MultiVariant(
Iterable<IVariant> variants, {
required MultiVariantOperator type,
}) {
final multiVariants = <MultiVariant>[];
final otherVariants = <IVariant>[];
for (var variant in variants) {
if (variant is MultiVariant) {
if (variant.operatorType == type) {
otherVariants.addAll(variant.variants);
} else {
multiVariants.add(variant);
}
} else {
otherVariants.add(variant);
}
}
final combinedVariants = [...multiVariants, ...otherVariants];
return MultiVariant._(combinedVariants.toList(), operatorType: type);
}