enum.h 769 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include "format_arg.h"
  3. #include <library/cpp/yt/misc/enum.h>
  4. #include <optional>
  5. namespace NYT {
  6. ////////////////////////////////////////////////////////////////////////////////
  7. std::optional<TString> TryDecodeEnumValue(TStringBuf value);
  8. TString DecodeEnumValue(TStringBuf value);
  9. TString EncodeEnumValue(TStringBuf value);
  10. template <class T>
  11. std::optional<T> TryParseEnum(TStringBuf value);
  12. template <class T>
  13. T ParseEnum(TStringBuf value);
  14. template <class T>
  15. void FormatEnum(TStringBuilderBase* builder, T value, bool lowerCase);
  16. template <class T>
  17. TString FormatEnum(T value);
  18. ////////////////////////////////////////////////////////////////////////////////
  19. } // namespace NYT
  20. #define ENUM_INL_H_
  21. #include "enum-inl.h"
  22. #undef ENUM_INL_H_