using System.Globalization; using Robust.Shared.IoC; using Robust.Shared.Serialization; using Robust.Shared.Serialization.Manager; using Robust.Shared.Serialization.Markdown; using Robust.Shared.Serialization.Markdown.Validation; using Robust.Shared.Serialization.Markdown.Value; using Robust.Shared.Serialization.TypeSerializers.Interfaces; namespace Robust.Benchmarks.Serialization { public sealed class BenchmarkIntSerializer : ITypeSerializer, ITypeCopyCreator { public ValidationNode Validate(ISerializationManager serializationManager, ValueDataNode node, IDependencyCollection dependencies, ISerializationContext? context = null) { return int.TryParse(node.Value, out _) ? new ValidatedValueNode(node) : new ErrorNode(node, $"Failed parsing int value: {node.Value}"); } public int Read(ISerializationManager serializationManager, ValueDataNode node, IDependencyCollection dependencies, SerializationHookContext hookCtx, ISerializationContext? context = null, ISerializationManager.InstantiationDelegate? instanceProvider = null) { return int.Parse(node.Value, CultureInfo.InvariantCulture); } public DataNode Write(ISerializationManager serializationManager, int value, IDependencyCollection dependencies, bool alwaysWrite = false, ISerializationContext? context = null) { return new ValueDataNode(value.ToString(CultureInfo.InvariantCulture)); } public int CreateCopy(ISerializationManager serializationManager, int source, IDependencyCollection dependencies, SerializationHookContext hookCtx, ISerializationContext? context = null) { return source; } } }