public static bool IsValid()

in csharp/src/Containers/UUID.cs [180:224]


		public static bool IsValid(IReadOnlyString str, int offset, UUIDParseFormat format)
		{
			if (str == null)
				return false;
			if (str.Length < offset + 32)
				return false;
			if (format == UUIDParseFormat.Any)
				format = str[offset + 8] == '-' ? UUIDParseFormat.AnyCase : UUIDParseFormat.AnyCaseWithoutDashes;

			switch (format)
			{
				case UUIDParseFormat.LowerCase:
				case UUIDParseFormat.UpperCase:
				case UUIDParseFormat.AnyCase:
					{
						if (!CanExtract(str, offset, 8, 0, format)) return false;
						ulong m = Extract(str, offset, 8, 0, format);
						if (str[offset + 8] != '-')
							return false;
						if (!CanExtract(str, offset + 9, 4, m, format)) return false;
						m = Extract(str, offset + 9, 4, m, format);
						if (str[offset + 13] != '-')
							return false;
						if (!CanExtract(str, offset + 14, 4, m, format)) return false;
						m = Extract(str, offset + 14, 4, m, format);
						if (str[offset + 18] != '-')
							return false;
						ulong l = 0;
						if (!CanExtract(str, offset + 19, 4, 0L, format)) return false;
						l = Extract(str, offset + 19, 4, 0L, format);
						if (str[offset + 23] != '-')
							return false;
						if (!CanExtract(str, offset + 24, 12, l, format)) return false;

						break;
					}
				case UUIDParseFormat.LowerCaseWithoutDashes:
				case UUIDParseFormat.UpperCaseWithoutDashes:
				case UUIDParseFormat.AnyCaseWithoutDashes:
					if ((!CanExtract(str, offset, 16, 0L, format)) || (!CanExtract(str, offset + 16, 16, 0L, format))) return false;
					break;
			}

			return true;
		}