Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 1.78 KB

maybe.md

File metadata and controls

76 lines (54 loc) · 1.78 KB

Maybe (template)

Class Napi::Maybe<T> represents a value that may be empty: every Maybe is either Just and contains a value, or Nothing, and does not. Maybe types are very common in node-addon-api code, as they represent that the function may throw a JavaScript exception and cause the program to be unable to evaluate any JavaScript code until the exception has been handled.

Typically, the value wrapped in Napi::Maybe<T> is Napi::Value and its subclasses.

Methods

IsNothing

template <typename T>
bool Napi::Maybe::IsNothing() const;

Returns true if the Maybe is Nothing and does not contain a value, and false otherwise.

IsJust

template <typename T>
bool Napi::Maybe::IsJust() const;

Returns true if the Maybe is Just and contains a value, and false otherwise.

Check

template <typename T>
void Napi::Maybe::Check() const;

Short-hand for Maybe::Unwrap(), which doesn't return a value. Could be used where the actual value of the Maybe is not needed like Object::Set. If this Maybe is nothing (empty), node-addon-api will crash the process.

Unwrap

template <typename T>
T Napi::Maybe::Unwrap() const;

Return the value of type T contained in the Maybe. If this Maybe is nothing (empty), node-addon-api will crash the process.

UnwrapOr

template <typename T>
T Napi::Maybe::UnwrapOr(const T& default_value) const;

Return the value of type T contained in the Maybe, or use a default value if this Maybe is nothing (empty).

UnwrapTo

template <typename T>
bool Napi::Maybe::UnwrapTo(T* result) const;

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