Skip to content

Commit bf15a99

Browse files
authored
Use enum class (onnx#6450)
### Description <!-- - Describe your changes. --> Change some enums to enum classes for better type checking. ### Motivation and Context For better code. <!-- - Why is this change required? What problem does it solve? --> <!-- - If it fixes an open issue, please link to the issue here. --> Signed-off-by: cyy <cyyever@outlook.com>
1 parent 2338d09 commit bf15a99

File tree

4 files changed

+22
-20
lines changed

4 files changed

+22
-20
lines changed

onnx/common/model_helpers.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ Common::Status BuildNode(
1515
std::vector<std::string> const& outputs,
1616
NodeProto* node) {
1717
if (node == nullptr) {
18-
return Common::Status(Common::CHECKER, Common::INVALID_ARGUMENT, "node_proto should not be nullptr.");
18+
return Common::Status(
19+
Common::StatusCategory::CHECKER, Common::StatusCode::INVALID_ARGUMENT, "node_proto should not be nullptr.");
1920
}
2021
node->set_name(name);
2122
node->set_domain(domain);

onnx/common/status.cc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
namespace ONNX_NAMESPACE {
1515
namespace Common {
1616

17-
Status::Status(StatusCategory category, int code, const std::string& msg) {
18-
assert(static_cast<int>(StatusCode::OK) != code);
17+
Status::Status(StatusCategory category, StatusCode code, const std::string& msg) {
18+
assert(StatusCode::OK != code);
1919
state_ = std::make_unique<State>(category, code, msg);
2020
}
2121

22-
Status::Status(StatusCategory category, int code) : Status(category, code, EmptyString()) {}
22+
Status::Status(StatusCategory category, StatusCode code) : Status(category, code, EmptyString()) {}
2323

2424
bool Status::IsOK() const noexcept {
2525
return (state_ == nullptr);
@@ -29,8 +29,8 @@ StatusCategory Status::Category() const noexcept {
2929
return IsOK() ? StatusCategory::NONE : state_->category;
3030
}
3131

32-
int Status::Code() const noexcept {
33-
return IsOK() ? static_cast<int>(StatusCode::OK) : state_->code;
32+
StatusCode Status::Code() const noexcept {
33+
return IsOK() ? StatusCode::OK : state_->code;
3434
}
3535

3636
const std::string& Status::ErrorMessage() const {
@@ -51,17 +51,17 @@ std::string Status::ToString() const {
5151
}
5252

5353
result += " : ";
54-
result += ONNX_NAMESPACE::to_string(Code());
54+
result += ONNX_NAMESPACE::to_string(static_cast<int>(Code()));
5555
std::string msg;
5656

57-
switch (static_cast<StatusCode>(Code())) {
58-
case INVALID_ARGUMENT:
57+
switch (Code()) {
58+
case StatusCode::INVALID_ARGUMENT:
5959
msg = "INVALID_ARGUMENT";
6060
break;
61-
case INVALID_PROTOBUF:
61+
case StatusCode::INVALID_PROTOBUF:
6262
msg = "INVALID_PROTOBUF";
6363
break;
64-
case FAIL:
64+
case StatusCode::FAIL:
6565
msg = "FAIL";
6666
break;
6767
default:

onnx/common/status.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
namespace ONNX_NAMESPACE {
1515
namespace Common {
1616

17-
enum StatusCategory {
17+
enum class StatusCategory {
1818
NONE = 0,
1919
CHECKER = 1,
2020
OPTIMIZER = 2,
2121
};
2222

23-
enum StatusCode {
23+
enum class StatusCode {
2424
OK = 0,
2525
FAIL = 1,
2626
INVALID_ARGUMENT = 2,
@@ -31,9 +31,9 @@ class Status {
3131
public:
3232
Status() noexcept = default;
3333

34-
Status(StatusCategory category, int code, const std::string& msg);
34+
Status(StatusCategory category, StatusCode code, const std::string& msg);
3535

36-
Status(StatusCategory category, int code);
36+
Status(StatusCategory category, StatusCode code);
3737

3838
Status(const Status& other) {
3939
*this = other;
@@ -56,7 +56,7 @@ class Status {
5656

5757
bool IsOK() const noexcept;
5858

59-
int Code() const noexcept;
59+
StatusCode Code() const noexcept;
6060

6161
StatusCategory Category() const noexcept;
6262

@@ -76,10 +76,11 @@ class Status {
7676

7777
private:
7878
struct State {
79-
State(StatusCategory cat_, int code_, std::string msg_) : category(cat_), code(code_), msg(std::move(msg_)) {}
79+
State(StatusCategory cat_, StatusCode code_, std::string msg_)
80+
: category(cat_), code(code_), msg(std::move(msg_)) {}
8081

8182
StatusCategory category = StatusCategory::NONE;
82-
int code = 0;
83+
StatusCode code{};
8384
std::string msg;
8485
};
8586

onnx/defs/parser.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ class ParserBase {
229229
template <typename... Args>
230230
Status ParseError(const Args&... args) {
231231
return Status(
232-
NONE,
233-
FAIL,
232+
StatusCategory::NONE,
233+
StatusCode::FAIL,
234234
ONNX_NAMESPACE::MakeString(
235235
"[ParseError at position ", GetCurrentPos(), "]\n", "Error context: ", GetErrorContext(), "\n", args...));
236236
}

0 commit comments

Comments
 (0)