private static bool SetResultsPerPage <TBufferWriter>(ref SearchRequest searchRequest, ref MemoryDataStreamer <TBufferWriter> streamer) where TBufferWriter : IBufferWriter <byte> { uint result = 0; if (!DataDecoder.TryReadVarint32(streamer.ReadOnlySpan, ref streamer.Position, ref result)) { return(false); } searchRequest.ResultsPerPage = unchecked ((int)result); return(true); }
private static bool SetQuery <TBufferWriter>(ref SearchRequest searchRequest, ref MemoryDataStreamer <TBufferWriter> streamer) where TBufferWriter : IBufferWriter <byte> { uint length = 0; if (!DataDecoder.TryReadVarint32(streamer.ReadOnlySpan, ref streamer.Position, ref length)) { return(false); } searchRequest.Query = streamer.ReadOnlyMemory.Slice(streamer.Position, (int)length); streamer.Position += (int)length; return(true); }
public Task EmptyMessage_WithInt_CanDeserialize() { var offset = 0; var result = 0u; var success = DataDecoder.TryReadVarint32(new byte[] { 0xFF, 0xFF, 0x00 }, ref offset, ref result); success.Should().BeTrue(); return(RunCode(@" syntax = ""proto3""; message MessageWithInt { int32 value = 1; } ", $@" var payload = new byte[] {{ 0b00001_000, 0xFF, 0xFF, 0x00 }}; var success = ZenserdesProtobuf.TryDeserialize<MessageWithInt>(new ReadOnlyMemory<byte>(payload), out var instance); success.Should().BeTrue(); instance.Value.Should().Be({(int)result}); ")); }