getUnion3Codec<T0From, T0To, T1From, T1To, T2From, T2To> function

Codec<Union3<T0From, T1From, T2From>, Union3<T0To, T1To, T2To>> getUnion3Codec<T0From, T0To, T1From, T1To, T2From, T2To>(
  1. Codec<T0From, T0To> variant0,
  2. Codec<T1From, T1To> variant1,
  3. Codec<T2From, T2To> variant2,
  4. int getIndexFromBytes(
    1. Uint8List bytes,
    2. int offset
    ),
)

Returns a codec for a three-variant typed union.

Implementation

Codec<Union3<T0From, T1From, T2From>, Union3<T0To, T1To, T2To>>
getUnion3Codec<T0From, T0To, T1From, T1To, T2From, T2To>(
  Codec<T0From, T0To> variant0,
  Codec<T1From, T1To> variant1,
  Codec<T2From, T2To> variant2,
  int Function(Uint8List bytes, int offset) getIndexFromBytes,
) {
  return combineCodec(
    getUnion3Encoder<T0From, T1From, T2From>(
      encoderFromCodec(variant0),
      encoderFromCodec(variant1),
      encoderFromCodec(variant2),
    ),
    getUnion3Decoder<T0To, T1To, T2To>(
      decoderFromCodec(variant0),
      decoderFromCodec(variant1),
      decoderFromCodec(variant2),
      getIndexFromBytes,
    ),
  );
}