HexUtils.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* Copyright 2019-present MongoDB Inc.
  2. *
  3. * Licensed under the Apache License, Version 2.0 (the "License");
  4. * you may not use this file except in compliance with the License.
  5. * You may obtain a copy of the License at
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. *
  9. * Unless required by applicable law or agreed to in writing, software
  10. * distributed under the License is distributed on an "AS IS" BASIS,
  11. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. * See the License for the specific language governing permissions and
  13. * limitations under the License.
  14. */
  15. using System.Globalization;
  16. namespace MongoDB.Shared
  17. {
  18. internal static class HexUtils
  19. {
  20. public static bool IsValidHexDigit(char c)
  21. {
  22. return
  23. c >= '0' && c <= '9' ||
  24. c >= 'a' && c <= 'f' ||
  25. c >= 'A' && c <= 'F';
  26. }
  27. public static bool IsValidHexString(string s)
  28. {
  29. for (var i = 0; i < s.Length; i++)
  30. {
  31. if (!IsValidHexDigit(s[i]))
  32. {
  33. return false;
  34. }
  35. }
  36. return true;
  37. }
  38. public static int ParseInt32(string value)
  39. {
  40. return int.Parse(value, NumberStyles.HexNumber);
  41. }
  42. }
  43. }