toString method

  1. @override
String toString()
override

Print GUID in common {FDD39AD0-238F-46AF-ADB4-6C85480369C7} format

Implementation

@override
String toString() {
  final comp1 = (Data4 & 0xFF).toRadixString(16).padLeft(2, '0') +
      ((Data4 & 0xFF00) >> 8).toRadixString(16).padLeft(2, '0');

  // This is hacky as all get-out :)
  final comp2 = ((Data4 & 0xFF0000) >> 16).toRadixString(16).padLeft(2, '0') +
      ((Data4 & 0xFF000000) >> 24).toRadixString(16).padLeft(2, '0') +
      ((Data4 & 0xFF00000000) >> 32).toRadixString(16).padLeft(2, '0') +
      ((Data4 & 0xFF0000000000) >> 40).toRadixString(16).padLeft(2, '0') +
      ((Data4 & 0xFF000000000000) >> 48).toRadixString(16).padLeft(2, '0') +
      (BigInt.from(Data4 & 0xFF00000000000000).toUnsigned(64) >> 56)
          .toRadixString(16)
          .padLeft(2, '0');

  return '{${Data1.toRadixString(16).padLeft(8, '0').toUpperCase()}-'
      '${Data2.toRadixString(16).padLeft(4, '0').toUpperCase()}-'
      '${Data3.toRadixString(16).padLeft(4, '0').toUpperCase()}-'
      '${comp1.toUpperCase()}-'
      '${comp2.toUpperCase()}}';
}