mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
41 lines
1.7 KiB
C#
41 lines
1.7 KiB
C#
using System.Globalization;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Serialization.Manager;
|
|
using Robust.Shared.Serialization.Manager.Result;
|
|
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<int, ValueDataNode>
|
|
{
|
|
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 DeserializationResult Read(ISerializationManager serializationManager, ValueDataNode node,
|
|
IDependencyCollection dependencies, bool skipHook, ISerializationContext? context = null)
|
|
{
|
|
return new DeserializedValue<int>(int.Parse(node.Value, CultureInfo.InvariantCulture));
|
|
}
|
|
|
|
public DataNode Write(ISerializationManager serializationManager, int value, bool alwaysWrite = false,
|
|
ISerializationContext? context = null)
|
|
{
|
|
return new ValueDataNode(value.ToString(CultureInfo.InvariantCulture));
|
|
}
|
|
|
|
public int Copy(ISerializationManager serializationManager, int source, int target, bool skipHook,
|
|
ISerializationContext? context = null)
|
|
{
|
|
return source;
|
|
}
|
|
}
|
|
}
|