using System; using System.Collections; using System.Collections.Generic; namespace Carbon.Json { public abstract class JsonArray : JsonNode, IEnumerable { public override JsonType Type => JsonType.Array; public abstract JsonType? ElementType { get; } public abstract int Count { get; } public virtual bool IsSet => false; public bool IsEmpty => Count == 0; #region IEnumerable IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } #endregion #region Static Helpers public static JsonArray Create(short[] values) => new XImmutableArray(values); public static JsonArray Create(int[] values) => new XImmutableArray(values); public static JsonArray Create(long[] values) => new XImmutableArray(values); public static JsonArray Create(decimal[] values) => new XImmutableArray(values); public static JsonArray Create(float[] values) => new XImmutableArray(values); public static JsonArray Create(string[] values) => new XImmutableArray(values); public static JsonArray Create(XBinary[] values) => new XImmutableArray(values); #endregion public static new JsonArray Parse(string text) => (JsonArray)JsonNode.Parse(text); } }