tvm
Public Member Functions | Static Public Member Functions | List of all members
tvm::runtime::ADT Class Reference

reference to algebraic data type objects. More...

#include <adt.h>

Inheritance diagram for tvm::runtime::ADT:
Collaboration diagram for tvm::runtime::ADT:

Public Member Functions

 ADT (int32_t tag, std::vector< ObjectRef > fields)
 construct an ADT object reference. More...
 
template<typename Iterator >
 ADT (int32_t tag, Iterator begin, Iterator end)
 construct an ADT object reference. More...
 
 ADT (int32_t tag, std::initializer_list< ObjectRef > init)
 construct an ADT object reference. More...
 
const ObjectRefoperator[] (size_t idx) const
 Access element at index. More...
 
int32_t tag () const
 Return the ADT tag. More...
 
size_t size () const
 Return the number of fields. More...
 
 TVM_DEFINE_OBJECT_REF_METHODS (ADT, ObjectRef, ADTObj)
 
- 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 Member Functions

template<typename... Args>
static ADT Tuple (Args &&... args)
 Construct a tuple object. More...
 

Additional Inherited Members

- Public Types inherited from tvm::runtime::ObjectRef
using ContainerType = Object
 type indicate the container type. More...
 
- Static Public Attributes inherited from tvm::runtime::ObjectRef
static constexpr bool _type_is_nullable = true
 
- 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

reference to algebraic data type objects.

Constructor & Destructor Documentation

◆ ADT() [1/3]

tvm::runtime::ADT::ADT ( int32_t  tag,
std::vector< ObjectRef fields 
)
inline

construct an ADT object reference.

Parameters
tagThe tag of the ADT object.
fieldsThe fields of the ADT object.

◆ ADT() [2/3]

template<typename Iterator >
tvm::runtime::ADT::ADT ( int32_t  tag,
Iterator  begin,
Iterator  end 
)
inline

construct an ADT object reference.

Parameters
tagThe tag of the ADT object.
beginThe begin iterator to the start of the fields array.
endThe end iterator to the end of the fields array.

◆ ADT() [3/3]

tvm::runtime::ADT::ADT ( int32_t  tag,
std::initializer_list< ObjectRef init 
)
inline

construct an ADT object reference.

Parameters
tagThe tag of the ADT object.
initThe initializer list of fields.

Member Function Documentation

◆ operator[]()

const ObjectRef& tvm::runtime::ADT::operator[] ( size_t  idx) const
inline

Access element at index.

Parameters
idxThe array index
Returns
const ObjectRef

◆ size()

size_t tvm::runtime::ADT::size ( ) const
inline

Return the number of fields.

◆ tag()

int32_t tvm::runtime::ADT::tag ( ) const
inline

Return the ADT tag.

◆ Tuple()

template<typename... Args>
static ADT tvm::runtime::ADT::Tuple ( Args &&...  args)
inlinestatic

Construct a tuple object.

Template Parameters
ArgsType params of tuple feilds.
Parameters
argsTuple fields.
Returns
ADT The tuple object reference.

◆ TVM_DEFINE_OBJECT_REF_METHODS()

tvm::runtime::ADT::TVM_DEFINE_OBJECT_REF_METHODS ( ADT  ,
ObjectRef  ,
ADTObj   
)

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