using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; namespace Syntriax.Engine.Serialization; public static class Serializer { private static readonly ISerializer serializer = new SerializerBuilder() .WithNamingConvention(PascalCaseNamingConvention.Instance) .DisableAliases() .WithTypeConverter(new EntityConverter()) .WithTypeConverter(new Vector2DConverter()) .Build(); private static readonly IDeserializer deserializer = new DeserializerBuilder() .WithNamingConvention(PascalCaseNamingConvention.Instance) .WithTypeConverter(new EntityConverter()) .WithTypeConverter(new Vector2DConverter()) .Build(); public static string Serialize(object instance) { return serializer.Serialize(instance); } public static T Deserialize(string yaml) { return deserializer.Deserialize(yaml); } }