// Copyright (c) All contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
/* THIS (.cs) FILE IS GENERATED. DO NOT CHANGE IT.
* CHANGE THE .tt FILE INSTEAD. */
using System;
using System.Buffers;
namespace MessagePack
{
#pragma warning disable SA1205 // Partial elements should declare access
ref partial struct MessagePackReader
#pragma warning restore SA1205 // Partial elements should declare access
{
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public Byte ReadByte()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((Byte)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((Byte)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((Byte)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((Byte)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((Byte)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((Byte)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((Byte)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((Byte)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((Byte)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (Byte)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public UInt16 ReadUInt16()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((UInt16)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((UInt16)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((UInt16)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((UInt16)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((UInt16)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((UInt16)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((UInt16)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((UInt16)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((UInt16)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (UInt16)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public UInt32 ReadUInt32()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((UInt32)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((UInt32)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((UInt32)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((UInt32)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((UInt32)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((UInt32)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((UInt32)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((UInt32)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((UInt32)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (UInt32)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public UInt64 ReadUInt64()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((UInt64)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((UInt64)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((UInt64)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((UInt64)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((UInt64)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((UInt64)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((UInt64)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((UInt64)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((UInt64)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (UInt64)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public SByte ReadSByte()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((SByte)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((SByte)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((SByte)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((SByte)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((SByte)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((SByte)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((SByte)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((SByte)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((SByte)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (SByte)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public Int16 ReadInt16()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((Int16)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((Int16)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((Int16)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((Int16)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((Int16)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((Int16)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((Int16)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((Int16)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((Int16)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (Int16)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public Int32 ReadInt32()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((Int32)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((Int32)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((Int32)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((Int32)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((Int32)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((Int32)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((Int32)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((Int32)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((Int32)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (Int32)code;
}
throw ThrowInvalidCode(code);
}
}
///
/// Reads an value from:
/// Some value between and ,
/// Some value between and ,
/// or any of the other MsgPack integer types.
///
/// The value.
/// Thrown when the value exceeds what can be stored in the returned type.
public Int64 ReadInt64()
{
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte code));
switch (code)
{
case MessagePackCode.UInt8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out byte byteResult));
return checked((Int64)byteResult);
case MessagePackCode.Int8:
ThrowInsufficientBufferUnless(this.reader.TryRead(out sbyte sbyteResult));
return checked((Int64)sbyteResult);
case MessagePackCode.UInt16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ushort ushortResult));
return checked((Int64)ushortResult);
case MessagePackCode.Int16:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out short shortResult));
return checked((Int64)shortResult);
case MessagePackCode.UInt32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out uint uintResult));
return checked((Int64)uintResult);
case MessagePackCode.Int32:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out int intResult));
return checked((Int64)intResult);
case MessagePackCode.UInt64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out ulong ulongResult));
return checked((Int64)ulongResult);
case MessagePackCode.Int64:
ThrowInsufficientBufferUnless(this.reader.TryReadBigEndian(out long longResult));
return checked((Int64)longResult);
default:
if (code >= MessagePackCode.MinNegativeFixInt && code <= MessagePackCode.MaxNegativeFixInt)
{
return checked((Int64)unchecked((sbyte)code));
}
if (code >= MessagePackCode.MinFixInt && code <= MessagePackCode.MaxFixInt)
{
return (Int64)code;
}
throw ThrowInvalidCode(code);
}
}
}
}