private EnumValueEnumerator(EnumArray <TEnum, TValue> array, int from, int to) { if (StaticLength == 0) { elements = null; iStart = iEnd = iCurrent = -1; } else { from = Mathf.Clamp(from, 0, StaticLength - 1); to = Mathf.Clamp(to, 0, StaticLength - 1); if (from <= to) { iStart = iCurrent = from - 1; iEnd = to; } else { iStart = iCurrent = from + 1; iEnd = to; } array.FillCapacityToLength(); elements = array.elements; } }
public void CopyFrom(EnumArray <TEnum, TValue> source) { if (ReferenceEquals(this, source)) { return; } FillCapacityToLength(); source.FillCapacityToLength(); Array.Copy(source.elements, 0, elements, 0, StaticLength); }
public static EnumValueEnumerator FromTo(EnumArray <TEnum, TValue> array, TEnum from, TEnum to) { return(new EnumValueEnumerator(array, E2I(from) - StaticMinInt, E2I(to) - StaticMinInt)); }
public static EnumValueEnumerator From(EnumArray <TEnum, TValue> array, TEnum from) { var ifrom = E2I(from) - StaticMinInt; return(new EnumValueEnumerator(array, ifrom, Mathf.Max(ifrom, StaticLength - 1))); }
public static EnumValueEnumerator All(EnumArray <TEnum, TValue> array) { return(new EnumValueEnumerator(array, 0, StaticLength - 1)); }
public ReadOnlyEnumArray(EnumArray <TEnum, TValue> source) { this.source = source; }
public static void Copy(EnumArray <TEnum, TValue> srcArray, int srcEnumValueIndex, EnumArray <TEnum, TValue> dstArray, int dstEnumValueIndex, int length) { srcArray.FillCapacityToLength(); dstArray.FillCapacityToLength(); Array.Copy(srcArray.elements, srcEnumValueIndex - StaticMinInt, dstArray.elements, dstEnumValueIndex - StaticMinInt, length); }
public static void Copy(EnumArray <TEnum, TValue> srcArray, TEnum srcEnumIndex, EnumArray <TEnum, TValue> dstArray, TEnum dstEnumIndex, int length) { Copy(srcArray, E2I(srcEnumIndex), dstArray, E2I(dstEnumIndex), length); }