bcsLazyEnum static method

CustomLayout<Map<String, dynamic>, Map<String, dynamic>> bcsLazyEnum(
  1. List<LazyVariantModel> variants, {
  2. String? property,
})

Handles lazy serialization and deserialization of enums (variant types).

variants - A list of variants defining the enum structure. property - Optional mapping key for nested structures.

Implementation

static CustomLayout<Map<String, dynamic>, Map<String, dynamic>> bcsLazyEnum(
  List<LazyVariantModel> variants, {
  String? property,
}) {
  final unionLayout = LazyUnion.offset(bcsOffset());
  variants
      .asMap()
      .forEach((index, variant) => unionLayout.addVariant(variant));
  return CustomLayout<Map<String, dynamic>, Map<String, dynamic>>(
      layout: unionLayout,
      decoder: (value) {
        return {"key": value.keys.first, "value": value.values.first};
      },
      encoder: (src) {
        return src;
      },
      property: property);
}