decode method

  1. @override
Map<String, int> decode(
  1. Input input
)
override

Implementation

@override
Map<String, int> decode(Input input) {
  final mortalLen = input.read();

  if (mortalLen == 0) {
    //
    // Immortal
    return <String, int>{};
  }

  //
  // Mortal
  final int encoded = mortalLen + (input.read() << 8);

  final int period = 2 << (encoded % (1 << 4));
  final int phase = ((encoded >> 4) * max(period >> 12, 1)) as int;

  return <String, int>{
    'period': period,
    'phase': phase,
  };
}