nil::crypto3::detail::real_packer< InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType, OutputType, SameEndianness, Implode, Explode > Struct Template Reference

Real_packer is used to transform input data divided into chunks of the bit size InputValueBits represented in input endianness (InputEndianness) into output data (of the same bit length) divided into chunks of the bit size OutputValueBits represented in output endianness (OutputEndianness). More...

#include <pack.hpp>

+ Collaboration diagram for nil::crypto3::detail::real_packer< InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType, OutputType, SameEndianness, Implode, Explode >:

Detailed Description

template<typename InputEndianness, typename OutputEndianness, std::size_t InputValueBits, std::size_t OutputValueBits, typename InputType, typename OutputType, bool SameEndianness = std::is_same<InputEndianness, OutputEndianness>::value, bool Implode = (InputValueBits < OutputValueBits), bool Explode = (InputValueBits > OutputValueBits)>
struct nil::crypto3::detail::real_packer< InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType, OutputType, SameEndianness, Implode, Explode >

Real_packer is used to transform input data divided into chunks of the bit size InputValueBits represented in input endianness (InputEndianness) into output data (of the same bit length) divided into chunks of the bit size OutputValueBits represented in output endianness (OutputEndianness).

The choice of packer depends on the following conditions:

  1. input and output chunk size relation (equal, less, or greater);
  2. input and output endianness relation (same or different);
  3. the possibility of fast data copy using memcpy.
Template Parameters
InputEndianness
OutputEndianness
InputValueBits
OutputValueBits
InputType
OutputType
SameEndianness
Implode
Explode

The documentation for this struct was generated from the following file: