1
0

Initial sync

This commit is contained in:
2024-03-15 14:44:21 +01:00
commit d2a1cabe35
59 changed files with 3783 additions and 0 deletions

28
Nbt/Tag/NbtArray.cs Executable file
View File

@@ -0,0 +1,28 @@
using System.Collections;
namespace Nbt.Tag;
public interface INbtArray : INbtValue, IEnumerable
{
new Array Value { get; set; }
}
public interface INbtArray<T> : INbtArray, INbtValue<T[]>, IEnumerable<T> where T : notnull
{
new T[] Value { get; set; }
}
public abstract class NbtArray<T>(T[] value) : NbtValue<T[]>(value), INbtArray<T> where T : notnull
{
Array INbtArray.Value
{
get => Value;
set => Value = (T[])value;
}
protected override T[] CopyValue() => (T[])value.Clone();
IEnumerator<T> IEnumerable<T>.GetEnumerator() => ((IEnumerable<T>)Value).GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => Value.GetEnumerator();
}