JSON Voorhees
Killer JSON for C++
Loading...
Searching...
No Matches
result.hpp File Reference

Copyright (c) 2020 by Travis Gockel. More...

#include <jsonv/config.hpp>
#include <jsonv/detail/scope_exit.hpp>
#include <jsonv/optional.hpp>
#include <jsonv/string_view.hpp>
#include <exception>
#include <iosfwd>
#include <stdexcept>
#include <utility>
#include <variant>
+ Include dependency graph for result.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  std::common_type< jsonv::result< TValue1, TError1 >, jsonv::result< TValue2, TError2 > >
 
class  jsonv::ok< TValue >
 A wrapper type for creating a result with result_state::ok. More...
 
class  jsonv::ok< void >
 The void specialization of ok is meant for the creation of result instances with value_type of void. More...
 
class  jsonv::error< TError >
 A wrapper type for creating a result with result_state::error. More...
 
class  jsonv::error< void >
 The void specialization of error is meant for the creation of result instances with error_type of void. More...
 
class  jsonv::bad_result_access
 Thrown when an attempt to access the contents of a result was illegal. More...
 
class  jsonv::result_value_operations< TSelf, TValue >
 The set of result operations which depend on the type of TValue. More...
 
class  jsonv::result_value_operations< TSelf, void >
 
class  jsonv::result_error_operations< TSelf, TError >
 The set of result operations which depend on the type of TError. More...
 
class  jsonv::result_error_operations< TSelf, void >
 
struct  jsonv::in_place_ok_t
 
struct  jsonv::in_place_error_t
 
class  jsonv::result< TValue, TError >
 A type that represents a value which might be a success (is_ok) or a failure (is_error). More...
 

Namespaces

namespace  std
 STL namespace.
 

Enumerations

enum class  jsonv::result_state : unsigned char { empty , ok , error }
 Describes the state of a result instance. More...
 

Functions

JSONV_PUBLIC std::ostream & jsonv::operator<< (std::ostream &, const result_state &)
 
template<typename TValue >
 jsonv::ok (TValue) -> ok< TValue >
 
template<typename... TArgs>
 jsonv::ok (TArgs...) -> ok< std::enable_if_t< sizeof...(TArgs)==0
 
template<typename TError >
 jsonv::error (TError) -> error< TError >
 
template<typename... TArgs>
 jsonv::error (TArgs...) -> error< std::enable_if_t< sizeof...(TArgs)==0 > >
 
template<typename T >
 jsonv::result (ok< T >) -> result< T >
 

Variables

 jsonv::void
 

Detailed Description

Copyright (c) 2020 by Travis Gockel.

All rights reserved.

This program is free software: you can redistribute it and/or modify it under the terms of the Apache License as published by the Apache Software Foundation, either version 2 of the License, or (at your option) any later version.

Author
Travis Gockel (travi.nosp@m.s@go.nosp@m.ckelh.nosp@m.ut.c.nosp@m.om)

Definition in file result.hpp.

Enumeration Type Documentation

◆ result_state

enum class jsonv::result_state : unsigned char
strong

Describes the state of a result instance.

Definition at line 547 of file result.hpp.

Variable Documentation

◆ void

jsonv::void

Definition at line 613 of file result.hpp.