19class ListTag :
public ::Tag,
public std::vector<UniqueTagPtr> {
21 using List = std::vector<UniqueTagPtr>;
22 Tag::Type mType{Tag::End};
24 using Tag::operator==;
27 [[nodiscard]]
constexpr ListTag() =
default;
29 [[nodiscard]]
constexpr ListTag(List tags) : List(std::move(tags)) {
30 if (!empty()) mType = front().getId();
32 [[nodiscard]]
constexpr ListTag(std::initializer_list<CompoundTagVariant> tags);
33 [[nodiscard]]
constexpr ListTag(std::vector<CompoundTagVariant> tags);
40 virtual ::Bedrock::Result<void> load(
::IDataInput& dis) ;
42 virtual ::Tag::Type getId()
const ;
44 virtual ::std::string toString()
const ;
46 virtual void print(::std::string
const& prefix_,
::PrintStream& out)
const ;
48 virtual ::std::unique_ptr<::Tag> copy()
const ;
50 virtual uint64 hash()
const ;
52 virtual bool equals(::Tag
const& rhs)
const ;
54 virtual void deleteChildren() ;
56 virtual ~ListTag() =
default;
62 MCAPI
void add(::std::unique_ptr<::Tag> tag);
64 MCAPI ::std::unique_ptr<::ListTag> copyList()
const;
66 MCAPI ::Tag* get(
int index)
const;
68 MCAPI
float getFloat(
int index)
const;
90 MCFOLD ::Tag::Type $getId()
const;
92 MCAPI ::std::string $toString()
const;
94 MCAPI
void $print(::std::string
const& prefix_,
::PrintStream& out)
const;
96 MCAPI ::std::unique_ptr<::Tag> $copy()
const;
98 MCAPI uint64 $hash()
const;
100 MCAPI
bool $equals(::Tag
const& rhs)
const;
102 MCAPI
void $deleteChildren();