Hlc<T>.parse constructor

Hlc<T>.parse(
  1. String timestamp, [
  2. T idDecoder(
    1. String value
    )?
])

Implementation

factory Hlc.parse(String timestamp, [T Function(String value)? idDecoder]) {
  final counterDash = timestamp.indexOf('-', timestamp.lastIndexOf(':'));
  final nodeIdDash = timestamp.indexOf('-', counterDash + 1);
  final millis = DateTime.parse(timestamp.substring(0, counterDash))
      .millisecondsSinceEpoch;
  final counter =
      int.parse(timestamp.substring(counterDash + 1, nodeIdDash), radix: 16);
  final nodeId = timestamp.substring(nodeIdDash + 1);
  return Hlc(
      millis, counter, idDecoder != null ? idDecoder(nodeId) : nodeId as T);
}