using System; using ZeroLevel.Services.PartitionStorage.Interfaces; using ZeroLevel.Services.Serialization; namespace ZeroLevel.Services.PartitionStorage { // TODO INTERNAL public sealed class StoreStandartSerializer : IStoreSerializer { private readonly Action _keySerializer; private readonly Action _inputSerializer; private readonly TryDeserializeMethod _keyDeserializer; private readonly TryDeserializeMethod _inputDeserializer; private readonly TryDeserializeMethod _valueDeserializer; public StoreStandartSerializer() { _keySerializer = MessageSerializer.GetSerializer(); _inputSerializer = MessageSerializer.GetSerializer(); _keyDeserializer = MessageSerializer.GetSafetyDeserializer(); _inputDeserializer = MessageSerializer.GetSafetyDeserializer(); _valueDeserializer = MessageSerializer.GetSafetyDeserializer(); } public Action KeySerializer => _keySerializer; public Action InputSerializer => _inputSerializer; public TryDeserializeMethod KeyDeserializer => _keyDeserializer; public TryDeserializeMethod InputDeserializer => _inputDeserializer; public TryDeserializeMethod ValueDeserializer => _valueDeserializer; } }