nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k > Struct Template Reference

imploder_step packs an input value represented in InputEndianness endianness into an output value represented in OutputEndianness endianness when k input bits have already been processed. It uses unit_reverser and bit_reverser to deal with the order of units and bits in the input value, respectively. Shift constant is determined by the imploder_shift trait. More...

#include <imploder.hpp>

+ Collaboration diagram for nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >:

Static Public Member Functions

template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 
template<typename InputValue , typename OutputValue >
static void step (InputValue &in, OutputValue &out)
 

Static Public Attributes

constexpr static int const shift
 

Detailed Description

template<typename InputEndianness, typename OutputEndianness, int UnitBits, int InputBits, int OutputBits, int k>
struct nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >

imploder_step packs an input value represented in InputEndianness endianness into an output value represented in OutputEndianness endianness when k input bits have already been processed. It uses unit_reverser and bit_reverser to deal with the order of units and bits in the input value, respectively. Shift constant is determined by the imploder_shift trait.

Template Parameters
InputEndianness
OutputEndianness
UnitBits
InputBits
OutputBits
k

Member Function Documentation

◆ step() [1/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [2/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [3/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [4/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [5/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [6/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [7/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

◆ step() [8/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputValue >
static void nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue &  in,
OutputValue &  out 
)
inlinestatic

Member Data Documentation

◆ shift

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
constexpr static int const nil::crypto3::detail::imploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::shift
staticconstexpr
Initial value:
=
imploder_shift<OutputEndianness, UnitBits, InputBits, OutputBits, k>::value

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