UuidV1 constructor Null safety

UuidV1(
  1. {Map<String, dynamic>? options}
)

Implementation

factory UuidV1({Map<String, dynamic>? options}) {
  options ??= {};
  var v1PositionalArgs = (options['v1rngPositionalArgs'] != null) ? options['v1rngPositionalArgs'] : [];
  var v1NamedArgs = (options['v1rngNamedArgs'] != null)
      ? options['v1rngNamedArgs'] as Map<Symbol, dynamic>
      : const <Symbol, dynamic>{};
  var seedBytes = (options['v1rng'] != null)
      ? Function.apply(options['v1rng'], v1PositionalArgs, v1NamedArgs)
      : UuidUtil.mathRNG();

  // Per 4.5, create a 48-bit node id (47 random bits + multicast bit = 1)
  List<int> nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];

  // Per 4.2.2, randomize (14 bit) clockseq
  var clockSeq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3ffff;

  return UuidV1._(seedBytes, nodeId, clockSeq, 0, 0, options);
}