CIRCT 22.0.0git
|
Arrays have a compile time specified (static) size and an element type. More...
#include <Types.h>
Public Member Functions | |
ArrayType (const ID &id, const Type *elementType, uint64_t size) | |
const Type * | getElementType () const |
uint64_t | getSize () const |
std::ptrdiff_t | getBitWidth () const override |
void | ensureValid (const std::any &obj) const override |
Ensure that a std::any object is valid for this type. | |
MessageData | serialize (const std::any &obj) const override |
Serialize an object to MessageData. | |
std::pair< std::any, std::span< const uint8_t > > | deserialize (std::span< const uint8_t > data) const override |
Deserialize from a span of bytes to an object. | |
![]() | |
Type (const ID &id) | |
virtual | ~Type ()=default |
ID | getID () const |
std::optional< std::string > | isValid (const std::any &obj) const |
Private Attributes | |
const Type * | elementType |
uint64_t | size |
Additional Inherited Members | |
![]() | |
using | ID = std::string |
![]() | |
ID | id |
Arrays have a compile time specified (static) size and an element type.
|
overridevirtual |
Deserialize from a span of bytes to an object.
Returns the deserialized object as a std::any and a span to the remaining bytes.
Reimplemented from esi::Type.
|
overridevirtual |
Ensure that a std::any object is valid for this type.
Throws std::runtime_error if the object is not valid.
Reimplemented from esi::Type.
Definition at line 359 of file Types.cpp.
References elementType, esi::Type::ensureValid(), and size.
Referenced by serialize().
|
inlineoverridevirtual |
Reimplemented from esi::Type.
Definition at line 238 of file Types.h.
References elementType, esi::Type::getBitWidth(), and size.
Referenced by serialize().
|
inline |
Definition at line 236 of file Types.h.
References elementType.
|
inline |
|
overridevirtual |
Serialize an object to MessageData.
The object should be passed as a std::any to provide type erasure. Returns a MessageData containing the serialized representation.
Reimplemented from esi::Type.
Definition at line 381 of file Types.cpp.
References elementType, ensureValid(), getBitWidth(), esi::MessageData::getData(), and esi::Type::serialize().
|
private |
Definition at line 251 of file Types.h.
Referenced by ensureValid(), getBitWidth(), getElementType(), and serialize().
|
private |
Definition at line 252 of file Types.h.
Referenced by esiaccel.types.ArrayType::bit_width(), esiaccel.types.ArrayType::deserialize(), ensureValid(), getBitWidth(), getSize(), and esiaccel.types.ArrayType::is_valid().