示例#1
0
 public void Serialize(ref TinyhandWriter writer, TinyhandSerializerOptions options)
 {
     writer.WriteArrayHeader(3);
     options.Resolver.GetFormatter <int>().Serialize(ref writer, this.X, options);
     options.Resolver.GetFormatter <int>().Serialize(ref writer, this.Y, options);
     options.Resolver.GetFormatter <int[]>().Serialize(ref writer, this.A, options);
 }
示例#2
0
        public void Deserialize(ref TinyhandReader reader, TinyhandSerializerOptions options)
        {
            var numberOfData = reader.ReadArrayHeader();

            options.Security.DepthStep(ref reader);
            try
            {
                if (numberOfData-- > 0 && !reader.TryReadNil())
                {
                    this.X = options.Resolver.GetFormatter <int>().Deserialize(ref reader, options);
                }
                if (numberOfData-- > 0 && !reader.TryReadNil())
                {
                    this.Y = options.Resolver.GetFormatter <int>().Deserialize(ref reader, options);
                }
                if (numberOfData-- > 0 && !reader.TryReadNil())
                {
                    this.A = options.Resolver.GetFormatter <int[]>().Deserialize(ref reader, options) !;
                }
                else
                {
                    this.A = new int[0];
                }
                while (numberOfData-- > 0)
                {
                    reader.Skip();
                }
            }
            finally { reader.Depth--; }
        }
示例#3
0
 public void Setup()
 {
     this.h2h2 = new ObjectH2H2();
     this.utf8 = TinyhandSerializer.SerializeToUtf8(this.h2h2);
     this.json = JsonSerializer.SerializeToUtf8Bytes(this.h2h2);
     this.simple = TinyhandSerializerOptions.Standard.WithCompose(TinyhandComposeOption.Simple);
 }
示例#4
0
        public void Serialize(ref TinyhandWriter writer, GenericsIntClass <T>?v, TinyhandSerializerOptions options)
        {
            if (v == null)
            {
                writer.WriteNil(); return;
            }
            // v.Serialize(ref writer, options);

            writer.WriteArrayHeader(3);
            options.Resolver.GetFormatter <T>().Serialize(ref writer, v.X, options);
            options.Resolver.GetFormatter <T>().Serialize(ref writer, v.Y, options);
            options.Resolver.GetFormatter <T[]>().Serialize(ref writer, v.A, options);
        }
示例#5
0
 public GenericsIntClass <T>?Deserialize(ref TinyhandReader reader, TinyhandSerializerOptions options) => this.Deserialize(null !, ref reader, options);