Face Engine SDK
5.23.1
A face detection, recognition and tracking engine.
|
00001 #pragma once 00002 00003 #include <fsdk/Types/Result.h> 00004 00005 namespace fsdk { 00013 template <typename E0, typename E1> 00014 struct MultiError { 00015 using E0Type = E0; 00016 using E1Type = E1; 00017 E0 m_first; 00018 E1 m_second; 00019 }; 00020 00024 template <typename E0, typename E1> 00025 struct ErrorTraits<MultiError<E0, E1>> { 00026 using ErrorType = MultiError<E0, E1>; 00027 using E0Traits = ErrorTraits<typename ErrorType::E0Type>; 00028 using E1Traits = ErrorTraits<typename ErrorType::E1Type>; 00029 00030 static bool isOk(ErrorType e) { 00031 return E0Traits::isOk(e.m_first) && E1Traits::isOk(e.m_second); 00032 } 00033 00034 static const char* toString(ErrorType e) { 00035 if(!E0Traits::isOk(e.m_first)) 00036 return E0Traits::toString(e.m_first); 00037 return E1Traits::toString(e.m_second); 00038 } 00039 }; 00040 00041 template <typename E0, typename E1> 00042 inline Result<MultiError<E0, E1>> makeMultiResult(E0 error0, E1 error1) { 00043 return Result<MultiError<E0, E1>>({error0, error1}); 00044 } 00045 } // namespace fsdk