channel_mojom_traits.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef EXTENSIONS_COMMON_MOJOM_CHANNEL_MOJOM_TRAITS_H_
  5. #define EXTENSIONS_COMMON_MOJOM_CHANNEL_MOJOM_TRAITS_H_
  6. #include "base/notreached.h"
  7. #include "components/version_info/channel.h"
  8. #include "extensions/common/mojom/channel.mojom-shared.h"
  9. #include "mojo/public/cpp/bindings/enum_traits.h"
  10. namespace mojo {
  11. template <>
  12. struct EnumTraits<extensions::mojom::Channel, version_info::Channel> {
  13. static extensions::mojom::Channel ToMojom(version_info::Channel input) {
  14. switch (input) {
  15. case version_info::Channel::UNKNOWN:
  16. return extensions::mojom::Channel::kUnknown;
  17. case version_info::Channel::CANARY:
  18. return extensions::mojom::Channel::kCanary;
  19. case version_info::Channel::DEV:
  20. return extensions::mojom::Channel::kDev;
  21. case version_info::Channel::BETA:
  22. return extensions::mojom::Channel::kBeta;
  23. case version_info::Channel::STABLE:
  24. return extensions::mojom::Channel::kStable;
  25. }
  26. NOTREACHED();
  27. return extensions::mojom::Channel::kUnknown;
  28. }
  29. static bool FromMojom(extensions::mojom::Channel input,
  30. version_info::Channel* out) {
  31. switch (input) {
  32. case extensions::mojom::Channel::kUnknown:
  33. *out = version_info::Channel::UNKNOWN;
  34. return true;
  35. case extensions::mojom::Channel::kCanary:
  36. *out = version_info::Channel::CANARY;
  37. return true;
  38. case extensions::mojom::Channel::kDev:
  39. *out = version_info::Channel::DEV;
  40. return true;
  41. case extensions::mojom::Channel::kBeta:
  42. *out = version_info::Channel::BETA;
  43. return true;
  44. case extensions::mojom::Channel::kStable:
  45. *out = version_info::Channel::STABLE;
  46. return true;
  47. }
  48. NOTREACHED();
  49. *out = version_info::Channel::UNKNOWN;
  50. return false;
  51. }
  52. };
  53. } // namespace mojo
  54. #endif // EXTENSIONS_COMMON_MOJOM_CHANNEL_MOJOM_TRAITS_H_