Пример #1
0
        public void Deserialize <TInput>(ref Buffers.Reader <TInput> reader, PooledResponse <TResult> instance)
        {
            uint fieldId = 0;

            while (true)
            {
                var header = reader.ReadFieldHeader();
                if (header.IsEndBaseOrEndObject)
                {
                    break;
                }

                fieldId += header.FieldIdDelta;
                switch (fieldId)
                {
                case 1U:
                    instance.Exception = _exceptionCodec.ReadValue(ref reader, header);
                    break;

                case 0U:
                    instance.TypedResult = _resultCodec.ReadValue(ref reader, header);
                    break;

                default:
                    reader.ConsumeUnknownField(header);
                    break;
                }
            }
        }
Пример #2
0
 public static void Return <T>(PooledResponse <T> obj) => TypedPool <T> .Pool.Return(obj);
Пример #3
0
 public void Serialize <TBufferWriter>(ref Buffers.Writer <TBufferWriter> writer, PooledResponse <TResult> instance)
     where TBufferWriter : System.Buffers.IBufferWriter <byte>
 {
     if (instance.Exception is null)
     {
         _resultCodec.WriteField(ref writer, 0U, ResultType, instance.TypedResult);
     }
     else
     {
         _exceptionCodec.WriteField(ref writer, 1U, ExceptionType, instance.Exception);
     }
 }