v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::Maybe< T > Class Template Reference

#include <v8-maybe.h>

Inheritance diagram for v8::Maybe< T >:
Collaboration diagram for v8::Maybe< T >:

Public Member Functions

V8_INLINE bool IsNothing () const
 
V8_INLINE bool IsJust () const
 
V8_INLINE T ToChecked () const
 
V8_INLINE void Check () const
 
V8_WARN_UNUSED_RESULT V8_INLINE bool To (T *out) const
 
V8_INLINE T FromJust () const &
 
V8_INLINE T FromJust () &&
 
V8_INLINE T FromMaybe (const T &default_value) const
 
V8_INLINE bool operator== (const Maybe &other) const
 
V8_INLINE bool operator!= (const Maybe &other) const
 
- Public Member Functions inherited from cppgc::internal::ConditionalStackAllocatedBase< T >
 CPPGC_STACK_ALLOCATED ()
 

Private Member Functions

 Maybe ()
 
 Maybe (const T &t)
 
 Maybe (T &&t)
 

Private Attributes

bool has_value_
 
T value_
 

Friends

template<class U >
Maybe< U > Nothing ()
 
template<class U >
Maybe< U > Just (const U &u)
 
template<class U , std::enable_if_t<!std::is_lvalue_reference_v< U > > * >
Maybe< U > Just (U &&u)
 

Detailed Description

template<class T>
class v8::Maybe< T >

A simple Maybe type, representing an object which may or may not have a value, see https://hackage.haskell.org/package/base/docs/Data-Maybe.html.

If an API method returns a Maybe<>, the API method can potentially fail either because an exception is thrown, or because an exception is pending, e.g. because a previous API call threw an exception that hasn't been caught yet, or because a TerminateExecution exception was thrown. In that case, a "Nothing" value is returned.

Definition at line 33 of file v8-maybe.h.

Constructor & Destructor Documentation

◆ Maybe() [1/3]

template<class T >
v8::Maybe< T >::Maybe ( )
inlineprivate

Definition at line 96 of file v8-maybe.h.

◆ Maybe() [2/3]

template<class T >
v8::Maybe< T >::Maybe ( const T & t)
inlineexplicitprivate

Definition at line 97 of file v8-maybe.h.

◆ Maybe() [3/3]

template<class T >
v8::Maybe< T >::Maybe ( T && t)
inlineexplicitprivate

Definition at line 98 of file v8-maybe.h.

Member Function Documentation

◆ Check()

template<class T >
V8_INLINE void v8::Maybe< T >::Check ( ) const
inline

Short-hand for ToChecked(), which doesn't return a value. To be used, where the actual value of the Maybe is not needed like Object::Set.

Definition at line 47 of file v8-maybe.h.

Here is the call graph for this function:

◆ FromJust() [1/2]

template<class T >
V8_INLINE T v8::Maybe< T >::FromJust ( ) &&
inline

Converts this Maybe<> to a value of type T. If this Maybe<> is nothing (empty), V8 will crash the process.

Definition at line 73 of file v8-maybe.h.

Here is the call graph for this function:

◆ FromJust() [2/2]

template<class T >
V8_INLINE T v8::Maybe< T >::FromJust ( ) const &
inline

Converts this Maybe<> to a value of type T. If this Maybe<> is nothing (empty), V8 will crash the process.

Definition at line 64 of file v8-maybe.h.

Here is the call graph for this function:

◆ FromMaybe()

template<class T >
V8_INLINE T v8::Maybe< T >::FromMaybe ( const T & default_value) const
inline

Converts this Maybe<> to a value of type T, using a default value if this Maybe<> is nothing (empty).

Definition at line 82 of file v8-maybe.h.

Here is the caller graph for this function:

◆ IsJust()

template<class T >
V8_INLINE bool v8::Maybe< T >::IsJust ( ) const
inline

Definition at line 36 of file v8-maybe.h.

Here is the caller graph for this function:

◆ IsNothing()

template<class T >
V8_INLINE bool v8::Maybe< T >::IsNothing ( ) const
inline

Definition at line 35 of file v8-maybe.h.

Here is the caller graph for this function:

◆ operator!=()

template<class T >
V8_INLINE bool v8::Maybe< T >::operator!= ( const Maybe< T > & other) const
inline

Definition at line 91 of file v8-maybe.h.

Here is the call graph for this function:

◆ operator==()

template<class T >
V8_INLINE bool v8::Maybe< T >::operator== ( const Maybe< T > & other) const
inline

Definition at line 86 of file v8-maybe.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ To()

template<class T >
V8_WARN_UNUSED_RESULT V8_INLINE bool v8::Maybe< T >::To ( T * out) const
inline

Converts this Maybe<> to a value of type T. If this Maybe<> is nothing (empty), |false| is returned and |out| is left untouched.

Definition at line 55 of file v8-maybe.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToChecked()

template<class T >
V8_INLINE T v8::Maybe< T >::ToChecked ( ) const
inline

An alias for |FromJust|. Will crash if the Maybe<> is nothing.

Definition at line 41 of file v8-maybe.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ Just [1/2]

template<class T >
template<class U >
Maybe< U > Just ( const U & u)
friend

◆ Just [2/2]

template<class T >
template<class U , std::enable_if_t<!std::is_lvalue_reference_v< U > > * >
Maybe< U > Just ( U && u)
friend

◆ Nothing

template<class T >
template<class U >
Maybe< U > Nothing ( )
friend

Definition at line 112 of file v8-maybe.h.

Member Data Documentation

◆ has_value_

template<class T >
bool v8::Maybe< T >::has_value_
private

Definition at line 100 of file v8-maybe.h.

◆ value_

template<class T >
T v8::Maybe< T >::value_
private

Definition at line 101 of file v8-maybe.h.


The documentation for this class was generated from the following file: