My Project
LogicalResult.h
Go to the documentation of this file.
1 //===- LogicalResult.h - Utilities for handling success/failure -*- C++ -*-===//
2 //
3 // Part of the MLIR Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef MLIR_SUPPORT_LOGICAL_RESULT_H
10 #define MLIR_SUPPORT_LOGICAL_RESULT_H
11 
12 #include "mlir/Support/LLVM.h"
13 
14 namespace mlir {
15 
16 // Values that can be used to signal success/failure. This should be used in
17 // conjunction with the utility functions below.
18 struct LogicalResult {
20  LogicalResult(ResultEnum v) : value(v) {}
21 };
22 
25 inline LogicalResult success(bool isSuccess = true) {
26  return LogicalResult{isSuccess ? LogicalResult::Success
28 }
29 
32 inline LogicalResult failure(bool isFailure = true) {
33  return LogicalResult{isFailure ? LogicalResult::Failure
35 }
36 
39 inline bool succeeded(LogicalResult result) {
40  return result.value == LogicalResult::Success;
41 }
42 
45 inline bool failed(LogicalResult result) {
46  return result.value == LogicalResult::Failure;
47 }
48 
49 } // namespace mlir
50 
51 #endif // MLIR_SUPPORT_LOGICAL_RESULT_H
Definition: InferTypeOpInterface.cpp:20
LogicalResult(ResultEnum v)
Definition: LogicalResult.h:20
bool failed(LogicalResult result)
Definition: LogicalResult.h:45
enum mlir::LogicalResult::ResultEnum value
Definition: LogicalResult.h:19
bool succeeded(LogicalResult result)
Definition: LogicalResult.h:39
ResultEnum
Definition: LogicalResult.h:19
LogicalResult success(bool isSuccess=true)
Definition: LogicalResult.h:25
Definition: LogicalResult.h:18
LogicalResult failure(bool isFailure=true)
Definition: LogicalResult.h:32
Definition: LogicalResult.h:19