/// <summary> /// Seek past the value for the previously read key. /// </summary> public static void SkipKey(Stream stream, Key key) { switch (key.WireType) { case Wire.Fixed32: stream.Seek(4, SeekOrigin.Current); return; case Wire.Fixed64: stream.Seek(8, SeekOrigin.Current); return; case Wire.LengthDelimited: stream.Seek(ProtocolParser.ReadUInt32(stream), SeekOrigin.Current); return; case Wire.Varint: ProtocolParser.ReadSkipVarInt(stream); return; case Wire.Start: ProtocolParser.ReadSkipGroup(stream, key); return; default: throw new NotImplementedException("Unknown wire type: " + key.WireType); } }
public static void SkipKey(Stream stream, Key key) { switch (key.WireType) { case Wire.Varint: { ProtocolParser.ReadSkipVarInt(stream); return; } case Wire.Fixed64: { stream.Seek((long)8, SeekOrigin.Current); return; } case Wire.LengthDelimited: { stream.Seek((long)ProtocolParser.ReadUInt32(stream), SeekOrigin.Current); return; } case Wire.Fixed64 | Wire.LengthDelimited: case 4: { throw new NotImplementedException(string.Concat("Unknown wire type: ", key.WireType)); } case Wire.Fixed32: { stream.Seek((long)4, SeekOrigin.Current); return; } default: { throw new NotImplementedException(string.Concat("Unknown wire type: ", key.WireType)); } } }
public static void SkipKey(Stream stream, Key key) { switch (key.WireType) { case Wire.Varint: ProtocolParser.ReadSkipVarInt(stream); break; case Wire.Fixed64: stream.Seek(8L, SeekOrigin.Current); break; case Wire.LengthDelimited: stream.Seek((long)ProtocolParser.ReadUInt32(stream), SeekOrigin.Current); break; case Wire.Fixed32: stream.Seek(4L, SeekOrigin.Current); break; default: throw new NotImplementedException("Unknown wire type: " + (object)key.WireType); } }