Face Engine SDK 5.25.0
A face detection, recognition and tracking engine.
Loading...
Searching...
No Matches
Result.h
1#pragma once
2
3#include <cstdint>
4
5namespace fsdk {
6
7 template <typename E>
8 struct ErrorTraits {
9 static bool isOk(E) noexcept {
10 return false;
11 }
12
13 static const char* toString(E) noexcept {
14 return "NOT AVAILABLE";
15 }
16 };
17
26 template <typename E>
27 struct Result {
29 using ErrorType = E;
30 using Traits = ErrorTraits<E>;
31
35 explicit Result(E error) noexcept
36 : m_error(error) {
37 }
38
41 Result() noexcept
42 : m_error(E::Ok) {
43 }
44
48 E getError() const noexcept {
49 return m_error;
50 }
51
55 bool isError() const noexcept {
56 return !isOk();
57 }
58
62 bool isOk() const noexcept {
63 return Traits::isOk(m_error);
64 }
65
69 operator bool() const noexcept {
70 return isOk();
71 }
72
80 operator int() const noexcept = delete;
81
87 const char* what() const noexcept {
88 return Traits::toString(getError());
89 }
90
91 private:
92 E m_error;
93 };
94
95 template <typename E>
96 inline Result<E> makeResult(E error) noexcept {
97 return Result<E>(error);
98 }
99} // namespace fsdk
SDK namespace.
Definition IAGSEstimator.h:8
Definition Result.h:8
A structure that encapsulates an action result enumeration.
Definition Result.h:27
Result(E error) noexcept
Initializes result.
Definition Result.h:35
bool isError() const noexcept
Checks for an error.
Definition Result.h:55
E ErrorType
Result value enumeration type.
Definition Result.h:29
E getError() const noexcept
Gets actual result value.
Definition Result.h:48
const char * what() const noexcept
Gets a textual description of the result.
Definition Result.h:87
Result() noexcept
Initializes result by default.
Definition Result.h:41
bool isOk() const noexcept
Checks for a success.
Definition Result.h:62