Skip to content

sgns::scale::ScaleDecoderStream

#include <scale_decoder_stream.hpp>

Public Functions

Name
ScaleDecoderStream(gsl::span< const uint8_t > span)
template <class F ,class S >
ScaleDecoderStream &
operator>>(std::pair< F, S > & p)
scale-decodes pair of values
template <class... T>
ScaleDecoderStream &
operator>>(std::tuple< T... > & v)
scale-decoding of tuple
template <class... Ts>
ScaleDecoderStream &
operator>>(boost::variant< Ts... > & v)
scale-decoding of variant
template <class T >
ScaleDecoderStream &
operator>>(std::shared_ptr< T > & v)
scale-decodes shared_ptr value
template <class T >
ScaleDecoderStream &
operator>>(std::unique_ptr< T > & v)
scale-decodes unique_ptr value
template <typename T ,typename I =std::decay_t,typename =std::enable_if_t>>
ScaleDecoderStream &
operator>>(T & v)
scale-encodes any integral type including bool
template <class T >
ScaleDecoderStream &
operator>>(boost::optional< T > & v)
scale-decodes any optional value
ScaleDecoderStream & operator>>(CompactInteger & v)
scale-decodes compact integer value
template <class T >
ScaleDecoderStream &
operator>>(std::vector< T > & v)
decodes vector of items
template <class T >
ScaleDecoderStream &
operator>>(std::list< T > & v)
decodes collection of items
template <class T ,size_t size>
ScaleDecoderStream &
operator>>(std::array< T, size > & a)
decodes array of items
ScaleDecoderStream & operator>>(boost::multiprecision::uint256_t & i)
decodes uint256_t from stream
ScaleDecoderStream & operator>>(std::string & v)
decodes string from stream
bool hasMore(uint64_t n) const
hasMore Checks whether n more bytes are available
uint8_t nextByte()
takes one byte from stream and advances current byte iterator by one

Public Attributes

Name
auto is_decoder_stream

Public Functions Documentation

function ScaleDecoderStream

explicit ScaleDecoderStream(
    gsl::span< const uint8_t > span
)

function operator>>

template <class F ,
class S >
inline ScaleDecoderStream & operator>>(
    std::pair< F, S > & p
)

scale-decodes pair of values

Parameters:

  • p pair of values to decode

Template Parameters:

  • F first value type
  • S second value type

Return: reference to stream

function operator>>

template <class... T>
inline ScaleDecoderStream & operator>>(
    std::tuple< T... > & v
)

scale-decoding of tuple

Parameters:

  • v reference to tuple

Template Parameters:

  • T enumeration of tuples types

Return: reference to stream

function operator>>

template <class... Ts>
inline ScaleDecoderStream & operator>>(
    boost::variant< Ts... > & v
)

scale-decoding of variant

Parameters:

  • v reference to variant

Template Parameters:

  • T enumeration of various types

Return: reference to stream

function operator>>

template <class T >
inline ScaleDecoderStream & operator>>(
    std::shared_ptr< T > & v
)

scale-decodes shared_ptr value

Parameters:

  • v value to decode

Template Parameters:

  • T value type

Return: reference to stream

function operator>>

template <class T >
inline ScaleDecoderStream & operator>>(
    std::unique_ptr< T > & v
)

scale-decodes unique_ptr value

Parameters:

  • v value to decode

Template Parameters:

  • T value type

Return: reference to stream

function operator>>

template <typename T ,
typename I  =std::decay_t<T>,
typename  =std::enable_if_t<std::is_integral_v<I>>>
inline ScaleDecoderStream & operator>>(
    T & v
)

scale-encodes any integral type including bool

Parameters:

  • v value of integral type

Template Parameters:

  • T integral type

Return: reference to stream

function operator>>

template <class T >
inline ScaleDecoderStream & operator>>(
    boost::optional< T > & v
)

scale-decodes any optional value

Parameters:

  • v optional value reference

Template Parameters:

  • T type of optional value

Return: reference to stream

function operator>>

ScaleDecoderStream & operator>>(
    CompactInteger & v
)

scale-decodes compact integer value

Parameters:

  • v compact integer reference

Return:

function operator>>

template <class T >
inline ScaleDecoderStream & operator>>(
    std::vector< T > & v
)

decodes vector of items

Parameters:

  • v reference to vector

Template Parameters:

  • T item type

Return: reference to stream

function operator>>

template <class T >
inline ScaleDecoderStream & operator>>(
    std::list< T > & v
)

decodes collection of items

Parameters:

  • v reference to collection

Template Parameters:

  • T item type

Return: reference to stream

function operator>>

template <class T ,
size_t size>
inline ScaleDecoderStream & operator>>(
    std::array< T, size > & a
)

decodes array of items

Parameters:

  • a reference to the array

Template Parameters:

  • T item type
  • size of the array

Return: reference to stream

function operator>>

inline ScaleDecoderStream & operator>>(
    boost::multiprecision::uint256_t & i
)

decodes uint256_t from stream

Parameters:

  • i value to decode

Return: reference to stream

function operator>>

ScaleDecoderStream & operator>>(
    std::string & v
)

decodes string from stream

Parameters:

  • v value to decode

Return: reference to stream

function hasMore

bool hasMore(
    uint64_t n
) const

hasMore Checks whether n more bytes are available

Parameters:

  • n Number of bytes to check

Return: True if n more bytes are available and false otherwise

function nextByte

uint8_t nextByte()

takes one byte from stream and advances current byte iterator by one

Return: current byte

Public Attributes Documentation

variable is_decoder_stream

static auto is_decoder_stream = true;

Updated on 2026-03-04 at 13:10:44 -0800