hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
hobbes::Variant Class Reference

#include <type.H>

Inheritance diagram for hobbes::Variant:
Inheritance graph
Collaboration diagram for hobbes::Variant:
Collaboration graph

Classes

struct  Member
 

Public Types

typedef std::vector< MemberMembers
 
- Public Types inherited from hobbes::MonoType
typedef std::shared_ptr< MonoTypeptr
 
typedef std::set< std::string > TypeVarNames
 

Public Member Functions

void show (std::ostream &out) const
 
Member headMember () const
 
MonoTypePtr tailType () const
 
const Membersmembers () const
 
const MonoTypePtrpayload (const std::string &selector) const
 
unsigned int index (const std::string &selector) const
 
unsigned int id (const std::string &selector) const
 
const Membermmember (const std::string &selector) const
 
bool isSum () const
 
unsigned int payloadOffset () const
 
unsigned int payloadSize () const
 
unsigned int size () const
 
- Public Member Functions inherited from hobbes::MonoTypeCase< Variant >
 MonoTypeCase ()
 
- Public Member Functions inherited from hobbes::MonoType
virtual ~MonoType ()
 
bool operator== (const MonoType &rhs) const
 
int case_id () const
 
template<typename Class , typename T , typename ... Args>
MonoTypePtr makeType (const Args &... args)
 

Static Public Member Functions

static MonoTypePtr make (const Members &)
 
static MonoTypePtr make (const MonoTypePtr &hty, const Members &tty)
 
static MonoTypePtr make (const std::string &lbl, const MonoTypePtr &hty, const Members &tty)
 

Public Attributes

unsigned int payloadSizeM
 
- Public Attributes inherited from hobbes::MonoType
TypeVarNames freeTVars
 
int tgenCount
 
unsigned int memorySize
 
ptr unaliasedType
 

Static Public Attributes

static const int type_case_id = 6
 

Private Member Functions

 Variant (const Members &)
 

Private Attributes

Members ms
 

Friends

class MonoType
 

Additional Inherited Members

- Protected Member Functions inherited from hobbes::MonoType
 MonoType (int cid)
 
- Static Protected Member Functions inherited from hobbes::MonoType
template<typename Class , typename T , typename ... Args>
static ptr makeType (const Args &... args)
 

Member Typedef Documentation

◆ Members

typedef std::vector<Member> hobbes::Variant::Members

Constructor & Destructor Documentation

◆ Variant()

hobbes::Variant::Variant ( const Members ms)
private

Member Function Documentation

◆ headMember()

Variant::Member hobbes::Variant::headMember ( ) const

◆ id()

unsigned int hobbes::Variant::id ( const std::string &  selector) const

◆ index()

unsigned int hobbes::Variant::index ( const std::string &  selector) const

◆ isSum()

bool hobbes::Variant::isSum ( ) const

◆ make() [1/3]

MonoTypePtr hobbes::Variant::make ( const Members ms)
static

◆ make() [2/3]

MonoTypePtr hobbes::Variant::make ( const MonoTypePtr hty,
const Members tty 
)
static

◆ make() [3/3]

MonoTypePtr hobbes::Variant::make ( const std::string &  lbl,
const MonoTypePtr hty,
const Members tty 
)
static

◆ members()

const Variant::Members & hobbes::Variant::members ( ) const

◆ mmember()

const Variant::Member * hobbes::Variant::mmember ( const std::string &  selector) const

◆ payload()

const MonoTypePtr & hobbes::Variant::payload ( const std::string &  selector) const

◆ payloadOffset()

unsigned int hobbes::Variant::payloadOffset ( ) const

◆ payloadSize()

unsigned int hobbes::Variant::payloadSize ( ) const

◆ show()

void hobbes::Variant::show ( std::ostream &  out) const
virtual

Implements hobbes::MonoType.

◆ size()

unsigned int hobbes::Variant::size ( ) const

◆ tailType()

MonoTypePtr hobbes::Variant::tailType ( ) const

Friends And Related Function Documentation

◆ MonoType

friend class MonoType
friend

Member Data Documentation

◆ ms

Members hobbes::Variant::ms
private

◆ payloadSizeM

unsigned int hobbes::Variant::payloadSizeM
mutable

◆ type_case_id

const int hobbes::Variant::type_case_id = 6
static

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