rustEnum static method
enum values
Implementation
static CustomLayout<Map<String, dynamic>, Map<String, dynamic>> rustEnum(
List<Layout> variants, {
Layout? discriminant,
String? property,
bool useKeyAndValue = true,
}) {
final unionLayout = Union((discriminant != null) ? discriminant : u8());
variants.asMap().forEach((index, variant) => unionLayout.addVariant(
variant: index, layout: variant, property: variant.property));
return CustomLayout<Map<String, dynamic>, Map<String, dynamic>>(
layout: unionLayout,
decoder: (value) {
if (useKeyAndValue) {
return {"key": value.keys.first, "value": value.values.first};
}
return value;
},
encoder: (src) {
return src;
},
property: property);
}