using System.Collections;
using System.Collections.Concurrent;
using System.Reflection;
using SPTarkov.Server.Core.Models.Utils;
using SPTarkov.Server.Core.Utils.Json;
using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel;
namespace SPTarkov.Server.Core.Utils.Cloners;
///
/// Not in use at the moment
///
///
public class ReflectionsCloner(ISptLogger logger) : ICloner
{
private static readonly Dictionary MemberInfoCache = new();
private static readonly Dictionary AddMethodInfoCache = new();
private static readonly ConcurrentDictionary _itemPropertyInfoCache = new();
private static readonly ConcurrentDictionary _listPropertyInfoCache = new();
public T? Clone(T? obj)
{
try
{
return (T?)Clone(obj, typeof(T)).Result;
}
catch (Exception e)
{
logger.Error("Cloning error:", e);
return default;
}
}
public async Task