Files
2026-08-27 10:56:38 -06:00

39 lines
884 B
C#

using System;
using ProtoBuf.Compiler;
namespace ProtoBuf.Serializers;
internal abstract class ProtoDecoratorBase : IProtoSerializer
{
protected readonly IProtoSerializer Tail;
public abstract Type ExpectedType { get; }
public abstract bool ReturnsValue { get; }
public abstract bool RequiresOldValue { get; }
protected ProtoDecoratorBase(IProtoSerializer tail)
{
Tail = tail;
}
public abstract void Write(object value, ProtoWriter dest);
public abstract object Read(object value, ProtoReader source);
void IProtoSerializer.EmitWrite(CompilerContext ctx, Local valueFrom)
{
EmitWrite(ctx, valueFrom);
}
protected abstract void EmitWrite(CompilerContext ctx, Local valueFrom);
void IProtoSerializer.EmitRead(CompilerContext ctx, Local valueFrom)
{
EmitRead(ctx, valueFrom);
}
protected abstract void EmitRead(CompilerContext ctx, Local valueFrom);
}