LeviLamina
Loading...
Searching...
No Matches
StringTag.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 StringTag : public ::Tag, public std::string {
16public:
17 using Tag::operator==;
18
19 [[nodiscard]] constexpr StringTag() = default;
20
21 [[nodiscard]] constexpr StringTag(std::string str) : std::string(std::move(str)) {}
22 [[nodiscard]] constexpr StringTag(std::string_view str) : std::string(str) {}
23 template <size_t N>
24 [[nodiscard]] constexpr StringTag(char const (&str)[N]) : std::string(str) {}
25
26public:
27 // virtual functions
28 // NOLINTBEGIN
29 virtual void write(::IDataOutput& dos) const /*override*/;
30
31 virtual ::Bedrock::Result<void> load(::IDataInput& dis) /*override*/;
32
33 virtual ::Tag::Type getId() const /*override*/;
34
35 virtual ::std::string toString() const /*override*/;
36
37 virtual ::std::unique_ptr<::Tag> copy() const /*override*/;
38
39 virtual bool equals(::Tag const& rhs) const /*override*/;
40
41 virtual uint64 hash() const /*override*/;
42
43 virtual ~StringTag() /*override*/ = default;
44 // NOLINTEND
45
46public:
47 // constructor thunks
48 // NOLINTBEGIN
49 MCAPI void* $ctor(::std::string data);
50 // NOLINTEND
51
52public:
53 // destructor thunk
54 // NOLINTBEGIN
55 MCAPI void $dtor();
56 // NOLINTEND
57
58public:
59 // virtual function thunks
60 // NOLINTBEGIN
61 MCAPI void $write(::IDataOutput& dos) const;
62
63 MCAPI ::Bedrock::Result<void> $load(::IDataInput& dis);
64
65 MCFOLD ::Tag::Type $getId() const;
66
67 MCAPI ::std::string $toString() const;
68
69 MCAPI ::std::unique_ptr<::Tag> $copy() const;
70
71 MCAPI bool $equals(::Tag const& rhs) const;
72
73 MCFOLD uint64 $hash() const;
74
75
76 // NOLINTEND
77
78public:
79 // vftables
80 // NOLINTBEGIN
81 MCNAPI static void** $vftable();
82 // NOLINTEND
83};
84namespace ll::inline literals::inline nbt_literals {
85[[nodiscard]] inline StringTag operator""_tag(char const* x, size_t len) { return StringTag(std::string{x, len}); }
86} // namespace ll::inline literals::inline nbt_literals
Definition IDataInput.h:8
Definition IDataOutput.h:5
Definition StringTag.h:15
static MCAPI void ** $vftable()