Lines Matching refs:ResultBase
8938 class ResultBase {
8945 ResultBase( Type type ) : m_type( type ) {}
8946 virtual ~ResultBase() = default;
8954 class ResultValueBase : public ResultBase {
8962 ResultValueBase( Type type ) : ResultBase( type ) {}
8964 ResultValueBase( ResultValueBase const &other ) : ResultBase( other ) {
8965 if( m_type == ResultBase::Ok )
8969 ResultValueBase( Type, T const &value ) : ResultBase( Ok ) {
8974 if( m_type == ResultBase::Ok )
8976 ResultBase::operator=(other);
8977 if( m_type == ResultBase::Ok )
8993 class ResultValueBase<void> : public ResultBase {
8995 using ResultBase::ResultBase;
9006 assert( type() != ResultBase::Ok );
9010 static auto ok( U const &value ) -> BasicResult { return { ResultBase::Ok, value }; }
9011 static auto ok() -> BasicResult { return { ResultBase::Ok }; }
9012 static auto logicError( std::string const &message ) -> BasicResult { return { ResultBase::LogicError, message }; }
9013 static auto runtimeError( std::string const &message ) -> BasicResult { return { ResultBase::RuntimeError, message }; }
9015 explicit operator bool() const { return m_type == ResultBase::Ok; }
9016 auto type() const -> ResultBase::Type { return m_type; }
9024 assert( m_type != ResultBase::LogicError );
9025 assert( m_type != ResultBase::RuntimeError );
9026 if( m_type != ResultBase::Ok )
9032 BasicResult( ResultBase::Type type, std::string const &message )
9036 assert( m_type != ResultBase::Ok );
9040 using ResultBase::m_type;