0
0
mirror of https://github.com/sp-tarkov/loot-dump-processor.git synced 2025-02-13 09:50:44 -05:00

Refactored YAML serialization to use static Serializer/Deserializer instances

This commit is contained in:
bluextx 2025-01-11 11:02:43 +03:00
parent 465ad95cb5
commit 4003ca254b
9 changed files with 12 additions and 76 deletions

View File

@ -39,7 +39,7 @@ public static class LootDumpProcessorContext
lock (_forcedStaticLock)
{
if (_forcedStatic == null)
_forcedStatic = YamlSerializerFactory.GetInstance()
_forcedStatic = Yaml.Deserializer
.Deserialize<ForcedStatic>(File.ReadAllText("./Config/forced_static.yaml"));
}
@ -71,7 +71,7 @@ public static class LootDumpProcessorContext
lock (_forcedLooseLock)
{
if (_forcedLoose == null)
_forcedLoose = YamlSerializerFactory.GetInstance().Deserialize<Dictionary<string, HashSet<string>>>(
_forcedLoose = Yaml.Deserializer.Deserialize<Dictionary<string, HashSet<string>>>(
File.ReadAllText("./Config/forced_loose.yaml"));
}

View File

@ -1,16 +0,0 @@
using System.Text.Json.Serialization;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace LootDumpProcessor.Model.Config;
public class LoggerConfig
{
[JsonProperty("logLevel")]
[JsonPropertyName("logLevel")]
public LogLevel LogLevel { get; set; }
[JsonProperty("queueLoggerPoolingTimeoutMs")]
[JsonPropertyName("queueLoggerPoolingTimeoutMs")]
public int QueueLoggerPoolingTimeoutMs { get; set; } = 1000;
}

View File

@ -1,7 +0,0 @@
namespace LootDumpProcessor.Serializers;
public interface ISerializer
{
string Serialize<T>(T obj);
T? Deserialize<T>(string obj);
}

View File

@ -1,5 +0,0 @@
namespace LootDumpProcessor.Serializers.Yaml;
public interface IYamlSerializer : ISerializer
{
}

View File

@ -0,0 +1,10 @@
using YamlDotNet.Serialization;
namespace LootDumpProcessor.Serializers.Yaml;
public static class Yaml
{
public static readonly ISerializer Serializer = new SerializerBuilder().Build();
public static readonly IDeserializer Deserializer = new DeserializerBuilder().Build();
}

View File

@ -1,13 +0,0 @@
using YamlDotNet.Serialization;
namespace LootDumpProcessor.Serializers.Yaml;
public class YamlDotNetYamlSerializer : IYamlSerializer
{
private static readonly IDeserializer yamlDeserializer = new DeserializerBuilder().Build();
private static readonly YamlDotNet.Serialization.ISerializer yamlSerializer = new SerializerBuilder().Build();
public string Serialize<T>(T obj) => yamlSerializer.Serialize(obj);
public T Deserialize<T>(string obj) => yamlDeserializer.Deserialize<T>(obj);
}

View File

@ -1,13 +0,0 @@
namespace LootDumpProcessor.Serializers.Yaml;
public static class YamlSerializerFactory
{
private static IYamlSerializer? _instance;
public static IYamlSerializer GetInstance()
{
if (_instance == null) _instance = new YamlDotNetYamlSerializer();
return _instance;
}
}

View File

@ -1,9 +0,0 @@
using LootDumpProcessor.Serializers;
namespace LootDumpProcessor.Storage.Implementations.File.Serializers;
public interface IDataStorageFileSerializer
{
string GetExtension();
ISerializer GetSerializer();
}

View File

@ -1,11 +0,0 @@
using LootDumpProcessor.Serializers;
using LootDumpProcessor.Serializers.Yaml;
namespace LootDumpProcessor.Storage.Implementations.File.Serializers;
public class YamlDataStorageFileSerializer : IDataStorageFileSerializer
{
public string GetExtension() => ".yaml";
public ISerializer GetSerializer() => YamlSerializerFactory.GetInstance();
}