scripts
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Google.Protobuf
|
||||
{
|
||||
// Token: 0x02000007 RID: 7
|
||||
public sealed class FieldCodec<T>
|
||||
{
|
||||
// Token: 0x060000AE RID: 174 RVA: 0x000042E0 File Offset: 0x000024E0
|
||||
static FieldCodec()
|
||||
{
|
||||
if (typeof(T) == typeof(string))
|
||||
{
|
||||
FieldCodec<T>.DefaultDefault = (T)((object)"");
|
||||
return;
|
||||
}
|
||||
if (typeof(T) == typeof(ByteString))
|
||||
{
|
||||
FieldCodec<T>.DefaultDefault = (T)((object)ByteString.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060000AF RID: 175 RVA: 0x0000434E File Offset: 0x0000254E
|
||||
internal static bool IsPackedRepeatedField(uint tag)
|
||||
{
|
||||
return FieldCodec<T>.TypeSupportsPacking && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited;
|
||||
}
|
||||
|
||||
// Token: 0x1700000D RID: 13
|
||||
// (get) Token: 0x060000B0 RID: 176 RVA: 0x00004362 File Offset: 0x00002562
|
||||
internal bool PackedRepeatedField { get; }
|
||||
|
||||
// Token: 0x1700000E RID: 14
|
||||
// (get) Token: 0x060000B1 RID: 177 RVA: 0x0000436A File Offset: 0x0000256A
|
||||
internal Action<CodedOutputStream, T> ValueWriter { get; }
|
||||
|
||||
// Token: 0x1700000F RID: 15
|
||||
// (get) Token: 0x060000B2 RID: 178 RVA: 0x00004372 File Offset: 0x00002572
|
||||
internal Func<T, int> ValueSizeCalculator { get; }
|
||||
|
||||
// Token: 0x17000010 RID: 16
|
||||
// (get) Token: 0x060000B3 RID: 179 RVA: 0x0000437A File Offset: 0x0000257A
|
||||
internal Func<CodedInputStream, T> ValueReader { get; }
|
||||
|
||||
// Token: 0x17000011 RID: 17
|
||||
// (get) Token: 0x060000B4 RID: 180 RVA: 0x00004382 File Offset: 0x00002582
|
||||
internal int FixedSize { get; }
|
||||
|
||||
// Token: 0x17000012 RID: 18
|
||||
// (get) Token: 0x060000B5 RID: 181 RVA: 0x0000438A File Offset: 0x0000258A
|
||||
internal uint Tag { get; }
|
||||
|
||||
// Token: 0x17000013 RID: 19
|
||||
// (get) Token: 0x060000B6 RID: 182 RVA: 0x00004392 File Offset: 0x00002592
|
||||
internal T DefaultValue { get; }
|
||||
|
||||
// Token: 0x060000B7 RID: 183 RVA: 0x0000439C File Offset: 0x0000259C
|
||||
internal FieldCodec(Func<CodedInputStream, T> reader, Action<CodedOutputStream, T> writer, int fixedSize, uint tag)
|
||||
: this(reader, writer, (T _) => fixedSize, tag)
|
||||
{
|
||||
this.FixedSize = fixedSize;
|
||||
}
|
||||
|
||||
// Token: 0x060000B8 RID: 184 RVA: 0x000043D8 File Offset: 0x000025D8
|
||||
internal FieldCodec(Func<CodedInputStream, T> reader, Action<CodedOutputStream, T> writer, Func<T, int> sizeCalculator, uint tag)
|
||||
: this(reader, writer, sizeCalculator, tag, FieldCodec<T>.DefaultDefault)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060000B9 RID: 185 RVA: 0x000043EC File Offset: 0x000025EC
|
||||
internal FieldCodec(Func<CodedInputStream, T> reader, Action<CodedOutputStream, T> writer, Func<T, int> sizeCalculator, uint tag, T defaultValue)
|
||||
{
|
||||
this.ValueReader = reader;
|
||||
this.ValueWriter = writer;
|
||||
this.ValueSizeCalculator = sizeCalculator;
|
||||
this.FixedSize = 0;
|
||||
this.Tag = tag;
|
||||
this.DefaultValue = defaultValue;
|
||||
this.tagSize = CodedOutputStream.ComputeRawVarint32Size(tag);
|
||||
this.PackedRepeatedField = FieldCodec<T>.IsPackedRepeatedField(tag);
|
||||
}
|
||||
|
||||
// Token: 0x060000BA RID: 186 RVA: 0x00004445 File Offset: 0x00002645
|
||||
public void WriteTagAndValue(CodedOutputStream output, T value)
|
||||
{
|
||||
if (!this.IsDefault(value))
|
||||
{
|
||||
output.WriteTag(this.Tag);
|
||||
this.ValueWriter(output, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060000BB RID: 187 RVA: 0x00004469 File Offset: 0x00002669
|
||||
public T Read(CodedInputStream input)
|
||||
{
|
||||
return this.ValueReader(input);
|
||||
}
|
||||
|
||||
// Token: 0x060000BC RID: 188 RVA: 0x00004477 File Offset: 0x00002677
|
||||
public int CalculateSizeWithTag(T value)
|
||||
{
|
||||
if (!this.IsDefault(value))
|
||||
{
|
||||
return this.ValueSizeCalculator(value) + this.tagSize;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Token: 0x060000BD RID: 189 RVA: 0x00004497 File Offset: 0x00002697
|
||||
private bool IsDefault(T value)
|
||||
{
|
||||
return EqualityComparer<T>.Default.Equals(value, this.DefaultValue);
|
||||
}
|
||||
|
||||
// Token: 0x0400001E RID: 30
|
||||
private static readonly T DefaultDefault;
|
||||
|
||||
// Token: 0x0400001F RID: 31
|
||||
private static readonly bool TypeSupportsPacking = default(T) != null;
|
||||
|
||||
// Token: 0x04000027 RID: 39
|
||||
private readonly int tagSize;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user