ProtobufTest/Assets/Plugs/protobuf-net/Serializers/ProtoDecoratorBase.cs

24 lines
1.0 KiB
C#
Raw Normal View History

2024-05-08 13:44:40 +08:00
#if !NO_RUNTIME
using System;
namespace ProtoBuf.Serializers
{
abstract class ProtoDecoratorBase : IProtoSerializer
{
public abstract Type ExpectedType { get; }
protected readonly IProtoSerializer Tail;
protected ProtoDecoratorBase(IProtoSerializer tail) { this.Tail = tail; }
public abstract bool ReturnsValue { get; }
public abstract bool RequiresOldValue { get; }
public abstract void Write(object value, ProtoWriter dest);
public abstract object Read(object value, ProtoReader source);
#if FEAT_COMPILER
void IProtoSerializer.EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom) { EmitWrite(ctx, valueFrom); }
protected abstract void EmitWrite(Compiler.CompilerContext ctx, Compiler.Local valueFrom);
void IProtoSerializer.EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom) { EmitRead(ctx, valueFrom); }
protected abstract void EmitRead(Compiler.CompilerContext ctx, Compiler.Local valueFrom);
#endif
}
}
#endif