public static ulong NextULong(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.ULong);
        return(converter.ToULong(buffer.Buffer, 0));
    }
    public static int NextInt(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Int);
        return(converter.ToInt(buffer.Buffer, 0));
    }
    public static decimal NextDecimal(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Decimal);
        return(converter.ToDecimal(buffer.Buffer, 0));
    }
    public static sbyte NextSByte(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.SByte);
        return(converter.ToSByte(buffer.Buffer, 0));
    }
    public static char NextChar(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Char);
        return(converter.ToChar(buffer.Buffer, 0));
    }