1#ifndef XRPL_BASICS_EXPECTED_H_INCLUDED 
    2#define XRPL_BASICS_EXPECTED_H_INCLUDED 
    4#include <xrpl/basics/contract.h> 
    6#include <boost/outcome.hpp> 
   37            Throw<bad_expected_access>();
 
 
   45            Throw<bad_expected_access>();
 
 
   53            Throw<bad_expected_access>();
 
 
 
   92        return std::move(
val_);
 
 
   98        return std::move(
val_);
 
 
 
  106template <
typename E, std::
size_t N>
 
  110template <
class T, 
class E>
 
  112    : 
private boost::outcome_v2::result<T, E, detail::throw_policy>
 
  114    using Base = boost::outcome_v2::result<T, E, detail::throw_policy>;
 
  117    template <
typename U>
 
  124    template <
typename U>
 
  127        : 
Base(boost::outcome_v2::in_place_type_t<E>{}, std::move(e.
value()))
 
 
  134        return Base::has_value();
 
 
  140        return Base::value();
 
 
  146        return Base::value();
 
 
  152        return Base::error();
 
 
  158        return Base::error();
 
 
  162    operator bool()
 const 
 
  170    [[nodiscard]] 
constexpr T&
 
  173        return this->value();
 
 
  176    [[nodiscard]] 
constexpr T 
const&
 
  179        return this->value();
 
 
  182    [[nodiscard]] 
constexpr T*
 
  185        return &this->value();
 
 
  188    [[nodiscard]] 
constexpr T 
const*
 
  191        return &this->value();
 
 
 
  199    : 
private boost::outcome_v2::result<void, E, detail::throw_policy>
 
  201    using Base = boost::outcome_v2::result<void, E, detail::throw_policy>;
 
  210    template <
typename U>
 
  219        return Base::error();
 
 
  225        return Base::error();
 
 
  229    operator bool()
 const 
  231        return Base::has_value();
 
 
 
constexpr E const & error() const
 
constexpr Expected(Unexpected< U > e)
 
boost::outcome_v2::result< void, E, detail::throw_policy > Base
 
constexpr T const * operator->() const
 
constexpr T const & value() const
 
constexpr bool has_value() const
 
constexpr T const & operator*() const
 
constexpr E const & error() const
 
constexpr Expected(Unexpected< U > e)
 
boost::outcome_v2::result< T, E, detail::throw_policy > Base
 
constexpr T & operator*()
 
constexpr Expected(U &&r)
 
constexpr T * operator->()
 
constexpr E && value() &&
 
constexpr Unexpected(E const &e)
 
constexpr E const && value() const &&
 
constexpr E const & value() const &
 
constexpr Unexpected(E &&e)
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
Expected is an approximation of std::expected (hoped for in C++23)
 
static constexpr void wide_exception_check(Impl &&self)
 
static constexpr void wide_value_check(Impl &&self)
 
static constexpr void wide_error_check(Impl &&self)