|
CIRCT 22.0.0git
|
Unsigned integer. More...
#include <Types.h>


Public Member Functions | |
| void | ensureValid (const std::any &obj) const override |
| Ensure that a std::any object is valid for this type. | |
| MutableBitVector | serialize (const std::any &obj) const override |
| Serialize an object to a MutableBitVector (LSB-first stream). | |
| std::any | deserialize (BitVector &data) const override |
| Deserialize from a BitVector stream (LSB-first). | |
| virtual std::any | deserialize (BitVector &data) const |
| Deserialize from a BitVector stream (LSB-first). | |
| std::any | deserialize (const MessageData &data) const |
Public Member Functions inherited from esi::IntegerType | |
| BitVectorType (const ID &id, uint64_t width) | |
Public Member Functions inherited from esi::BitVectorType | |
| BitVectorType (const ID &id, uint64_t width) | |
| uint64_t | getWidth () const |
| std::ptrdiff_t | getBitWidth () const override |
Public Member Functions inherited from esi::Type | |
| Type (const ID &id) | |
| virtual | ~Type ()=default |
| ID | getID () const |
| std::any | deserialize (const MessageData &data) const |
| std::optional< std::string > | isValid (const std::any &obj) const |
Additional Inherited Members | |
Public Types inherited from esi::Type | |
| using | ID = std::string |
Protected Attributes inherited from esi::Type | |
| ID | id |
|
inlinevirtual |
|
overridevirtual |
Deserialize from a BitVector stream (LSB-first).
Implementations consume bits from 'data' in-place (via logical right shifts) and return the reconstructed value. Remaining bits stay in 'data'.
Reimplemented from esi::Type.
Definition at line 194 of file Types.cpp.
References esi::BitVectorType::getWidth().
|
inline |
|
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 177 of file Types.cpp.
References esi::getUIntLikeFromAny(), and esi::BitVectorType::getWidth().
|
overridevirtual |
Serialize an object to a MutableBitVector (LSB-first stream).
The object should be passed via std::any. Implementations append fields in the order they are iterated (the first serialized field occupies the least-significant bits of the result).
Reimplemented from esi::Type.
Definition at line 187 of file Types.cpp.
References esi::getUIntLikeFromAny(), esi::BitVectorType::getWidth(), and esi::BitVector::width().