parse static method

UUID parse(
  1. String uuid
)

Parses the given uuid string and returns a UUID object.

Implementation

static UUID parse(String uuid) {
  if (validate(uuid)) {
    final segments = uuid.split('-');
    if (segments.length != 5) {
      throw const FormatException('Invalid UUID format');
    }

    final msbString = segments.sublist(0, 3).join('');
    final lsbString = segments.sublist(3, 5).join('');

    int i = 0;
    ByteLayer layer = ByteLayer();
    for (i = 0; i < msbString.length; i += 2) {
      String hex = msbString.substring(i, i + 2);
      int byte = int.parse(hex, radix: 16);
      layer.writeByte(byte);
    }

    for (i = 0; i < lsbString.length; i += 2) {
      String hex = lsbString.substring(i, i + 2);
      int byte = int.parse(hex, radix: 16);
      layer.writeByte(byte);
    }

    layer.resetPosition();

    return UUID(layer.readBytes(16));
  } else {
    return UUID.ZERO;
  }
}