Initial sync
This commit is contained in:
28
Nbt/Tag/NbtArray.cs
Executable file
28
Nbt/Tag/NbtArray.cs
Executable 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();
|
||||
}
|
||||
Reference in New Issue
Block a user