tvm
Public Types | Public Member Functions | Static Public Attributes | List of all members
tvm::runtime::Optional< T > Class Template Reference

Optional container that to represent to a Nullable variant of T. More...

#include <optional.h>

Inheritance diagram for tvm::runtime::Optional< T >:
Collaboration diagram for tvm::runtime::Optional< T >:

Public Types

using ContainerType = typename T::ContainerType
 
- Public Types inherited from tvm::runtime::ObjectRef
using ContainerType = Object
 type indicate the container type. More...
 

Public Member Functions

 Optional ()=default
 
 Optional (const Optional< T > &)=default
 
 Optional (Optional< T > &&)=default
 
Optional< T > & operator= (const Optional< T > &)=default
 
Optional< T > & operator= (Optional< T > &&)=default
 
 Optional (ObjectPtr< Object > ptr)
 Construct from an ObjectPtr whose type already matches the ContainerType. More...
 
 Optional (NullOptType)
 Nullopt handling. More...
 
 Optional (std::nullptr_t)
 
Optional< T > & operator= (std::nullptr_t)
 
 Optional (T other)
 
Optional< T > & operator= (T other)
 
 Optional (int val)=delete
 
Optional< T > & operator= (int val)=delete
 
value () const
 
const ContainerTypeget () const
 
value_or (T default_value) const
 
 operator bool () const
 
bool operator== (std::nullptr_t) const
 
bool operator!= (std::nullptr_t) const
 
auto operator== (const Optional< T > &other) const
 
auto operator!= (const Optional< T > &other) const
 
auto operator== (const T &other) const
 
auto operator!= (const T &other) const
 
template<typename U >
auto operator== (const U &other) const
 
template<typename U >
auto operator!= (const U &other) const
 
- Public Member Functions inherited from tvm::runtime::ObjectRef
 ObjectRef ()=default
 default constructor More...
 
 ObjectRef (ObjectPtr< Object > data)
 Constructor from existing object ptr. More...
 
bool same_as (const ObjectRef &other) const
 Comparator. More...
 
bool operator== (const ObjectRef &other) const
 Comparator. More...
 
bool operator!= (const ObjectRef &other) const
 Comparator. More...
 
bool operator< (const ObjectRef &other) const
 Comparator. More...
 
bool defined () const
 
const Objectget () const
 
const Objectoperator-> () const
 
bool unique () const
 
int use_count () const
 
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>>
const ObjectType * as () const
 Try to downcast the internal Object to a raw pointer of a corresponding type. More...
 
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>>
Optional< ObjectRefType > as () const
 Try to downcast the ObjectRef to a Optional<T> of the requested type. More...
 

Static Public Attributes

static constexpr bool _type_is_nullable = true
 
- Static Public Attributes inherited from tvm::runtime::ObjectRef
static constexpr bool _type_is_nullable = true
 

Additional Inherited Members

- Protected Member Functions inherited from tvm::runtime::ObjectRef
Objectget_mutable () const
 
- Static Protected Member Functions inherited from tvm::runtime::ObjectRef
template<typename T >
static T DowncastNoCheck (ObjectRef ref)
 Internal helper function downcast a ref without check. More...
 
static void FFIClearAfterMove (ObjectRef *ref)
 Clear the object ref data field without DecRef after we successfully moved the field. More...
 
template<typename ObjectType >
static ObjectPtr< ObjectType > GetDataPtr (const ObjectRef &ref)
 Internal helper function get data_ as ObjectPtr of ObjectType. More...
 
- Protected Attributes inherited from tvm::runtime::ObjectRef
ObjectPtr< Objectdata_
 Internal pointer that backs the reference. More...
 

Detailed Description

template<typename T>
class tvm::runtime::Optional< T >

Optional container that to represent to a Nullable variant of T.

Template Parameters
TThe original ObjectRef.
Optional<String> opt0 = nullptr;
Optional<String> opt1 = String("xyz");
ICHECK(opt0 == nullptr);
ICHECK(opt1 == "xyz");

Member Typedef Documentation

◆ ContainerType

template<typename T >
using tvm::runtime::Optional< T >::ContainerType = typename T::ContainerType

Constructor & Destructor Documentation

◆ Optional() [1/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( )
default

◆ Optional() [2/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( const Optional< T > &  )
default

◆ Optional() [3/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( Optional< T > &&  )
default

◆ Optional() [4/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( ObjectPtr< Object ptr)
inlineexplicit

Construct from an ObjectPtr whose type already matches the ContainerType.

Parameters
ptr

◆ Optional() [5/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( NullOptType  )
inline

Nullopt handling.

◆ Optional() [6/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( std::nullptr_t  )
inlineexplicit

◆ Optional() [7/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( other)
inline

◆ Optional() [8/8]

template<typename T >
tvm::runtime::Optional< T >::Optional ( int  val)
explicitdelete

Member Function Documentation

◆ get()

template<typename T >
const ContainerType* tvm::runtime::Optional< T >::get ( ) const
inline
Returns
The internal object pointer with container type of T.
Note
This function do not perform not-null checking.

◆ operator bool()

template<typename T >
tvm::runtime::Optional< T >::operator bool ( ) const
inlineexplicit
Returns
Whether the container is not nullptr.

◆ operator!=() [1/4]

template<typename T >
auto tvm::runtime::Optional< T >::operator!= ( const Optional< T > &  other) const
inline

◆ operator!=() [2/4]

template<typename T >
auto tvm::runtime::Optional< T >::operator!= ( const T &  other) const
inline

◆ operator!=() [3/4]

template<typename T >
template<typename U >
auto tvm::runtime::Optional< T >::operator!= ( const U &  other) const
inline

◆ operator!=() [4/4]

template<typename T >
bool tvm::runtime::Optional< T >::operator!= ( std::nullptr_t  ) const
inline

◆ operator=() [1/5]

template<typename T >
Optional<T>& tvm::runtime::Optional< T >::operator= ( const Optional< T > &  )
default

◆ operator=() [2/5]

template<typename T >
Optional<T>& tvm::runtime::Optional< T >::operator= ( int  val)
delete

◆ operator=() [3/5]

template<typename T >
Optional<T>& tvm::runtime::Optional< T >::operator= ( Optional< T > &&  )
default

◆ operator=() [4/5]

template<typename T >
Optional<T>& tvm::runtime::Optional< T >::operator= ( std::nullptr_t  )
inline

◆ operator=() [5/5]

template<typename T >
Optional<T>& tvm::runtime::Optional< T >::operator= ( other)
inline

◆ operator==() [1/4]

template<typename T >
auto tvm::runtime::Optional< T >::operator== ( const Optional< T > &  other) const
inline

◆ operator==() [2/4]

template<typename T >
auto tvm::runtime::Optional< T >::operator== ( const T &  other) const
inline

◆ operator==() [3/4]

template<typename T >
template<typename U >
auto tvm::runtime::Optional< T >::operator== ( const U &  other) const
inline

◆ operator==() [4/4]

template<typename T >
bool tvm::runtime::Optional< T >::operator== ( std::nullptr_t  ) const
inline

◆ value()

template<typename T >
T tvm::runtime::Optional< T >::value ( ) const
inline
Returns
A not-null container value in the optional.
Note
This function performs not-null checking.

◆ value_or()

template<typename T >
T tvm::runtime::Optional< T >::value_or ( default_value) const
inline
Returns
The contained value if the Optional is not null otherwise return the default_value.

Member Data Documentation

◆ _type_is_nullable

template<typename T >
constexpr bool tvm::runtime::Optional< T >::_type_is_nullable = true
staticconstexpr

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