MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / ComponentValType

Class ComponentValType

include/common/types.h:450–513  ·  view source on GitHub ↗

ComponentValType class definition.

Source from the content-addressed store, hash-verified

448
449/// ComponentValType class definition.
450class ComponentValType {
451public:
452 // Note: The padding bytes are reserved and should not be written.
453 ComponentValType() noexcept = default;
454 // General constructors for initializing data.
455 ComponentValType(ComponentTypeCode C, uint32_t I) noexcept {
456 Inner.Data.TCode = C;
457 Inner.Data.Idx = I;
458 }
459 ComponentValType(const std::array<uint8_t, 8> R) noexcept {
460 std::copy_n(R.cbegin(), 8, Inner.Raw);
461 }
462 // Constructor for the component value type with primvaltype.
463 ComponentValType(ComponentTypeCode C) noexcept {
464 Inner.Data.TCode = C;
465 Inner.Data.Idx = 0;
466 assuming(C != ComponentTypeCode::TypeIndex);
467 }
468 // Constructor for the component value type with type index.
469 ComponentValType(uint32_t I) noexcept {
470 Inner.Data.TCode = ComponentTypeCode::TypeIndex;
471 Inner.Data.Idx = I;
472 }
473
474 friend bool operator==(const ComponentValType &LHS,
475 const ComponentValType &RHS) noexcept {
476 return (LHS.Inner.Data.TCode == RHS.Inner.Data.TCode) &&
477 (LHS.Inner.Data.Idx == RHS.Inner.Data.Idx);
478 }
479 friend bool operator!=(const ComponentValType &LHS,
480 const ComponentValType &RHS) noexcept {
481 return !(LHS == RHS);
482 }
483
484 ComponentTypeCode getCode() const noexcept { return Inner.Data.TCode; }
485 uint32_t getTypeIndex() const noexcept { return Inner.Data.Idx; }
486 const std::array<uint8_t, 8> getRawData() const noexcept {
487 std::array<uint8_t, 8> R;
488 std::copy_n(Inner.Raw, 8, R.begin());
489 return R;
490 }
491
492 void setCode(const ComponentTypeCode C) noexcept {
493 Inner.Data.TCode = C;
494 Inner.Data.Idx = 0;
495 }
496 void setTypeIndex(const uint32_t I) noexcept {
497 Inner.Data.TCode = ComponentTypeCode::TypeIndex;
498 Inner.Data.Idx = I;
499 }
500 bool isPrimValType() const noexcept {
501 return Inner.Data.TCode != ComponentTypeCode::TypeIndex;
502 }
503
504private:
505 union {
506 uint8_t Raw[8];
507 struct {

Callers 2

TESTFunction · 0.85
TESTFunction · 0.85

Calls

no outgoing calls

Tested by 2

TESTFunction · 0.68
TESTFunction · 0.68