exit-inl.h 808 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef EXIT_INL_H_
  2. #error "Direct inclusion of this file is not allowed, include exit.h"
  3. // For the sake of sane code completion.
  4. #include "exit.h"
  5. #endif
  6. namespace NYT {
  7. ////////////////////////////////////////////////////////////////////////////////
  8. template <class E>
  9. requires std::is_enum_v<E>
  10. [[noreturn]] void AbortProcessSilently(E exitCode)
  11. {
  12. AbortProcessSilently(ToUnderlying(exitCode));
  13. }
  14. template <class E>
  15. requires std::is_enum_v<E>
  16. [[noreturn]] void AbortProcessDramatically(
  17. E exitCode,
  18. TStringBuf message)
  19. {
  20. AbortProcessDramatically(
  21. ToUnderlying(exitCode),
  22. TEnumTraits<E>::FindLiteralByValue(exitCode).value_or("<unknown>"),
  23. message);
  24. }
  25. ////////////////////////////////////////////////////////////////////////////////
  26. } // namespace NYT