generateUuid function

String generateUuid()

Implementation

String generateUuid() {
  final random = Random();

  final List<int> randomNumbers = List<int>.generate(16, (index) => random.nextInt(256));
  randomNumbers[6] = (randomNumbers[6] & 0x0F) | 0x40; // bits 6-7 of the clock_seq_hi_and_reserved to 01
  randomNumbers[8] = (randomNumbers[8] & 0x3F) | 0x80; // bits 6-7 of the clock_seq_hi_and_reserved to 10

  String digits(int val, int length) {
    return val.toRadixString(16).padLeft(length, '0');
  }

  String sections(List<int> values) {
    return values.map((value) => digits(value, 2)).join();
  }

  return '${sections(randomNumbers.sublist(0, 4))}-'
      '${sections(randomNumbers.sublist(4, 6))}-'
      '${sections(randomNumbers.sublist(6, 8))}-'
      '${sections(randomNumbers.sublist(8, 10))}-'
      '${sections(randomNumbers.sublist(10, 16))}';
}