decode method

  1. @override
RuntimeMetadataPrefixed decode(
  1. Input input
)
override

Implementation

@override
decode(Input input) {
  final magicNumber = U32Codec.codec.decode(input);
  if (magicNumber != META_RESERVED) {
    throw Exception('Invalid magic number: got $magicNumber expected $META_RESERVED');
  }
  final version = U8Codec.codec.decode(input);

  return switch (version) {
    15 => RuntimeMetadataPrefixed(
        magicNumber: magicNumber,
        metadata: RuntimeMetadataV15.codec.decode(input),
      ),
    14 => RuntimeMetadataPrefixed(
        magicNumber: magicNumber,
        metadata: RuntimeMetadataV14.codec.decode(input),
      ),
    _ => throw Exception('Unsupported metadata version: $version'),
  };
}