![]() |
LeechCraft
0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
|
#include "either.h"
Public Types | |
using | L_t = L |
using | R_t = R |
Public Member Functions | |
Either ()=delete | |
Either (const L &l) | |
Either (const R &r) | |
Either (const Either &)=default | |
Either (Either &&)=default | |
Either & | operator= (const Either &)=default |
Either & | operator= (Either &&)=default |
bool | IsLeft () const |
bool | IsRight () const |
const L & | GetLeft () const |
const R & | GetRight () const |
std::optional< L > | MaybeLeft () const |
std::optional< R > | MaybeRight () const |
std::variant< L, R > | AsVariant () const |
template<typename F > | |
R | ToRight (F &&f) const |
Static Public Member Functions | |
template<typename RNew > | |
static Either< L, RNew > | FromMaybe (const std::optional< RNew > &maybeRight, const L &left) |
static Either | Left (const L &l) |
static Either | Right (const R &r) |
template<typename... Vars> | |
static Either | LeftLift (const std::variant< Vars... > &var) |
template<typename... Vars> | |
static Either | LeftLift (const Either< std::variant< Vars... >, R > &either) |
template<typename LPrime , typename = std::enable_if_t<std::is_convertible_v<LPrime, L>>> | |
static Either | LeftLift (const Either< LPrime, R > &either) |
template<typename RNew > | |
static std::enable_if_t<!std::is_convertible< RNew, R >::value, Either< L, RNew > > | Right (const RNew &r) |
static auto | EmbeddingLeft () |
Friends | |
bool | operator== (const Either &e1, const Either &e2) |
bool | operator!= (const Either &e1, const Either &e2) |
using LC::Util::Either< L, R >::L_t = L |
using LC::Util::Either< L, R >::R_t = R |
|
delete |
|
inlineexplicit |
|
inlineexplicit |
|
default |
|
default |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inline |
Definition at line 78 of file either.h.
Referenced by LC::Util::InstanceMonad< std::optional< T > >::Bind(), and LC::Util::Either< L, R >::MaybeLeft().
|
inline |
Definition at line 85 of file either.h.
Referenced by LC::Util::Either< L, R >::MaybeLeft().
|
inline |
Definition at line 68 of file either.h.
References LC::Util::Either< L, R >::IsRight().
Referenced by LC::Util::InstanceMonad< std::optional< T > >::Bind(), and LC::Util::Either< L, R >::IsRight().
|
inline |
Definition at line 73 of file either.h.
References LC::Util::Either< L, R >::IsLeft().
Referenced by LC::Util::Either< L, R >::IsLeft(), LC::Util::Either< L, R >::Left(), and LC::Util::Either< L, R >::MaybeLeft().
|
inlinestatic |
Definition at line 127 of file either.h.
References LC::Util::Either< L, R >::IsRight(), LC::Util::Either< L, R >::LeftLift(), and LC::Util::Either< L, R >::Right().
Referenced by LC::Util::SerializeJsonToFile().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 138 of file either.h.
Referenced by LC::Util::Either< L, R >::Left().
|
inline |
Definition at line 92 of file either.h.
References LC::Util::oral::sph::f, LC::Util::Either< L, R >::GetLeft(), LC::Util::Either< L, R >::GetRight(), and LC::Util::Either< L, R >::IsRight().
|
inline |
|
default |
|
default |
|
inlinestatic |
Definition at line 132 of file either.h.
Referenced by LC::Util::Either< L, R >::Left().
|
inlinestatic |
|
inline |