Time.fromBytes constructor

Time.fromBytes(
  1. List<int> bytes, {
  2. bool allowParseString = true,
})

Parses bytes to Time. See toBytes32 and toBytes64.

Implementation

factory Time.fromBytes(List<int> bytes, {bool allowParseString = true}) {
  if (bytes.length == 4) {
    var milliseconds = bytes.asUint8List.getInt32(0);
    if (milliseconds >= 0) {
      var time = Time.fromMilliseconds(milliseconds);
      return time;
    }
  } else if (bytes.length >= 8 && !_bytesInStringFormat(bytes)) {
    var microseconds = bytes.asUint8List.getInt64();
    if (microseconds >= 0) {
      var time = Time.fromMicroseconds(microseconds);
      return time;
    }
  } else if (allowParseString) {
    try {
      var s = String.fromCharCodes(bytes);
      return Time.parse(s, allowFromBytes: false);
    } catch (_) {
      throw FormatException(
          'Invalid bytes or string format: ${bytes.runtimeTypeNameUnsafe}:${bytes.toList()}');
    }
  }

  throw FormatException(
      'Invalid bytes format: ${bytes.runtimeTypeNameUnsafe}:${bytes.toList()}');
}