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/deps/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 // NOLINTEND
43
44public:
45 // constructor thunks
46 // NOLINTBEGIN
47 MCAPI void* $ctor();
48
49 MCAPI void* $ctor(::std::string data);
50 // NOLINTEND
51
52public:
53 // virtual function thunks
54 // NOLINTBEGIN
55 MCAPI void $write(::IDataOutput& dos) const;
56
57 MCAPI ::Bedrock::Result<void> $load(::IDataInput& dis);
58
59 MCFOLD ::Tag::Type $getId() const;
60
61 MCAPI ::std::string $toString() const;
62
63 MCAPI ::std::unique_ptr<::Tag> $copy() const;
64
65 MCAPI bool $equals(::Tag const& rhs) const;
66
67 MCFOLD uint64 $hash() const;
68
69
70 // NOLINTEND
71
72public:
73 // vftables
74 // NOLINTBEGIN
75 MCNAPI static void** $vftable();
76 // NOLINTEND
77};
78namespace ll::inline literals::inline nbt_literals {
79[[nodiscard]] inline StringTag operator""_tag(char const* x, size_t len) { return StringTag(std::string{x, len}); }
80} // namespace ll::inline literals::inline nbt_literals
Definition IDataInput.h:8
Definition IDataOutput.h:5
Definition StringTag.h:15
static MCAPI void ** $vftable()