LeviLamina
Loading...
Searching...
No Matches
ByteTag.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/nbt/Tag.h"
7#include "mc/platform/Result.h"
8
9// auto generated forward declare list
10// clang-format off
11class IDataInput;
12class IDataOutput;
13// clang-format on
14
15class ByteTag : public ::Tag {
16public:
17 schar data;
18
19 template <std::integral T>
20 constexpr ByteTag& operator=(T value) {
21 data = (schar)value;
22 return *this;
23 }
24
25 template <std::integral T>
26 [[nodiscard]] constexpr operator T() const {
27 return (T)data;
28 }
29
30 [[nodiscard]] constexpr operator std::byte() const { return (std::byte)data; }
31
32 template <std::integral T>
33 [[nodiscard]] constexpr explicit ByteTag(T value = 0) : data((schar)value) {}
34
35 [[nodiscard]] constexpr explicit ByteTag(std::byte b) : data(std::to_integer<schar>(b)) {}
36
37 [[nodiscard]] ByteTag operator-() const { return ByteTag{-data}; }
38
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual void write(::IDataOutput& dos) const /*override*/;
43
44 virtual ::Bedrock::Result<void> load(::IDataInput& dis) /*override*/;
45
46 virtual ::Tag::Type getId() const /*override*/;
47
48 virtual ::std::string toString() const /*override*/;
49
50 virtual bool equals(::Tag const& rhs) const /*override*/;
51
52 virtual ::std::unique_ptr<::Tag> copy() const /*override*/;
53
54 virtual uint64 hash() const /*override*/;
55
56 virtual ~ByteTag() /*override*/ = default;
57 // NOLINTEND
58
59public:
60 // destructor thunk
61 // NOLINTBEGIN
62 MCFOLD void $dtor();
63 // NOLINTEND
64
65public:
66 // virtual function thunks
67 // NOLINTBEGIN
68 MCAPI void $write(::IDataOutput& dos) const;
69
70 MCAPI ::Bedrock::Result<void> $load(::IDataInput& dis);
71
72 MCFOLD ::Tag::Type $getId() const;
73
74 MCAPI ::std::string $toString() const;
75
76 MCAPI bool $equals(::Tag const& rhs) const;
77
78 MCAPI ::std::unique_ptr<::Tag> $copy() const;
79
80 MCAPI uint64 $hash() const;
81
82
83 // NOLINTEND
84
85public:
86 // vftables
87 // NOLINTBEGIN
88 MCNAPI static void** $vftable();
89 // NOLINTEND
90};
91namespace ll::inline literals::inline nbt_literals {
92[[nodiscard]] inline ByteTag operator""_b(uint64 num) { return ByteTag{(schar)num}; }
93} // namespace ll::inline literals::inline nbt_literals
Definition ByteTag.h:15
static MCAPI void ** $vftable()
Definition IDataInput.h:8
Definition IDataOutput.h:5