Skip to content

src/base/mp_utils.hpp

Namespaces

Name
sgns
sgns::base
sgns::base::detail

Functions

Name
template <size_t size,typename uint >
std::array< uint8_t, size >
uint_to_bytes(uint && i)
template <size_t size,typename uint >
uint
bytes_to_uint(gsl::span< uint8_t, size > bytes)
std::array< uint8_t, 8 > uint64_t_to_bytes(uint64_t number)
uint64_t bytes_to_uint64_t(gsl::span< uint8_t, 8 > bytes)
std::array< uint8_t, 16 > uint128_t_to_bytes(const boost::multiprecision::uint128_t & i)
boost::multiprecision::uint128_t bytes_to_uint128_t(gsl::span< uint8_t, 16 > bytes)
std::array< uint8_t, 32 > uint256_t_to_bytes(const boost::multiprecision::uint256_t & i)
boost::multiprecision::uint256_t bytes_to_uint256_t(gsl::span< uint8_t, 32 > bytes)

Functions Documentation

function uint_to_bytes

template <size_t size,
typename uint >
std::array< uint8_t, size > uint_to_bytes(
    uint && i
)

function bytes_to_uint

template <size_t size,
typename uint >
uint bytes_to_uint(
    gsl::span< uint8_t, size > bytes
)

function uint64_t_to_bytes

std::array< uint8_t, 8 > uint64_t_to_bytes(
    uint64_t number
)

function bytes_to_uint64_t

uint64_t bytes_to_uint64_t(
    gsl::span< uint8_t, 8 > bytes
)

function uint128_t_to_bytes

std::array< uint8_t, 16 > uint128_t_to_bytes(
    const boost::multiprecision::uint128_t & i
)

function bytes_to_uint128_t

boost::multiprecision::uint128_t bytes_to_uint128_t(
    gsl::span< uint8_t, 16 > bytes
)

function uint256_t_to_bytes

std::array< uint8_t, 32 > uint256_t_to_bytes(
    const boost::multiprecision::uint256_t & i
)

function bytes_to_uint256_t

boost::multiprecision::uint256_t bytes_to_uint256_t(
    gsl::span< uint8_t, 32 > bytes
)

Source code

#ifndef SUPERGENIUS_SRC_CRYPTO_MP_UTILS_HPP
#define SUPERGENIUS_SRC_CRYPTO_MP_UTILS_HPP

#include <boost/multiprecision/cpp_int.hpp>
#include <gsl/span>

namespace sgns::base {

  namespace detail {
    template <size_t size, typename uint>
    std::array<uint8_t, size> uint_to_bytes(uint &&i);

    template <size_t size, typename uint>
    uint bytes_to_uint(gsl::span<uint8_t, size> bytes);
  }  // namespace detail

  std::array<uint8_t, 8> uint64_t_to_bytes(uint64_t number);

  uint64_t bytes_to_uint64_t(gsl::span<uint8_t, 8> bytes);

  std::array<uint8_t, 16> uint128_t_to_bytes(
      const boost::multiprecision::uint128_t &i);

  boost::multiprecision::uint128_t bytes_to_uint128_t(
      gsl::span<uint8_t, 16> bytes);

  std::array<uint8_t, 32> uint256_t_to_bytes(
      const boost::multiprecision::uint256_t &i);

  boost::multiprecision::uint256_t bytes_to_uint256_t(
      gsl::span<uint8_t, 32> bytes);

}  // namespace sgns::base

#endif  // SUPERGENIUS_SRC_CRYPTO_MP_UTILS_HPP

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