Syntriax.Engine/Engine.Serialization/YamlSerializer.cs

36 lines
1.7 KiB
C#
Raw Normal View History

2024-02-09 17:50:39 +03:00
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
namespace Engine.Serialization;
public class YamlSerializer : ISerializer
{
private readonly YamlDotNet.Serialization.ISerializer serializer = new SerializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
2024-02-10 20:03:02 +03:00
.WithTypeConverter(new BehaviourYamlConverter())
.WithTypeConverter(new BehaviourControllerYamlConverter())
.WithTypeConverter(new BehaviourDTOListConverter())
.WithTypeConverter(new GameManagerYamlConverter())
.WithTypeConverter(new GameObjectYamlConverter())
.WithTypeConverter(new GameObjectDTOListConverter())
.WithTypeConverter(new StateEnableYamlConverter())
.WithTypeConverter(new TransformYamlConverter())
2024-02-09 17:50:39 +03:00
.WithTypeConverter(new Vector2DYamlConverter())
.Build();
private readonly YamlDotNet.Serialization.IDeserializer deserializer = new DeserializerBuilder()
.WithNamingConvention(UnderscoredNamingConvention.Instance)
2024-02-10 20:03:02 +03:00
.WithTypeConverter(new BehaviourYamlConverter())
.WithTypeConverter(new BehaviourControllerYamlConverter())
.WithTypeConverter(new BehaviourDTOListConverter())
.WithTypeConverter(new GameManagerYamlConverter())
.WithTypeConverter(new GameObjectYamlConverter())
.WithTypeConverter(new GameObjectDTOListConverter())
.WithTypeConverter(new StateEnableYamlConverter())
.WithTypeConverter(new TransformYamlConverter())
2024-02-09 17:50:39 +03:00
.WithTypeConverter(new Vector2DYamlConverter())
.Build();
public string Serialize<T>(T @object) => serializer.Serialize(@object);
public T Deserialize<T>(string serializedString) => deserializer.Deserialize<T>(serializedString);
}