24 lines
1.0 KiB
C#
24 lines
1.0 KiB
C#
|
#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
|