using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using HeuristicLab.Core; using HeuristicLab.Data; using Newtonsoft.Json.Linq; namespace HeuristicLab.JsonInterface { public class ValueTypeArrayConverter : BaseConverter where ArrayType : ValueTypeArray where T : struct { public override void InjectData(IItem item, JsonItem data) => CopyArrayData(item.Cast(), CastValue(data.Default)); public override JsonItem ExtractData(IItem value) => new JsonItem() { Default = value.Cast().CloneAsArray() }; #region Helper private void CopyArrayData(ArrayType array, T[] data) { for (int i = 0; i < data.Length; ++i) { array[i] = data[i]; } } #endregion } }