nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type > Struct Template Reference

This unit_reverser deals with the case of UnitBits > CHAR_BIT. To reverse the order of units, first, it reverses the byte order in an input value, and then, it invokes byte_in_unit_reverser to reverse the byte order in each unit of the input value. More...

#include <reverser.hpp>

+ Collaboration diagram for nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >:

Static Public Member Functions

template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void reverse (ValueType &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void reverse (ValueType &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void reverse (ValueType &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void reverse (ValueType &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void reverse (ValueType &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType reverse (ValueType const &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType reverse (ValueType const &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType reverse (ValueType const &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType reverse (ValueType const &val)
 
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType reverse (ValueType const &val)
 

Detailed Description

template<typename InputEndianness, typename OutputEndianness, int UnitBits>
struct nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >

This unit_reverser deals with the case of UnitBits > CHAR_BIT. To reverse the order of units, first, it reverses the byte order in an input value, and then, it invokes byte_in_unit_reverser to reverse the byte order in each unit of the input value.

Template Parameters
InputEndianness
OutputEndianness
UnitBits

Member Function Documentation

◆ reverse() [1/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType val)
inlinestatic

◆ reverse() [2/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType val)
inlinestatic

◆ reverse() [3/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType val)
inlinestatic

◆ reverse() [4/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType val)
inlinestatic

◆ reverse() [5/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static void nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType val)
inlinestatic

◆ reverse() [6/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType const &  val)
inlinestatic

◆ reverse() [7/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType const &  val)
inlinestatic

◆ reverse() [8/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType const &  val)
inlinestatic

◆ reverse() [9/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType const &  val)
inlinestatic

◆ reverse() [10/10]

template<typename InputEndianness , typename OutputEndianness , int UnitBits>
template<typename ValueType , int ValueBits = sizeof(ValueType) * CHAR_BIT>
static ValueType nil::crypto3::detail::unit_reverser< InputEndianness, OutputEndianness, UnitBits, typename std::enable_if<!is_same_unit< InputEndianness, OutputEndianness, UnitBits >::value &&(UnitBits > CHAR_BIT)>::type >::reverse ( ValueType const &  val)
inlinestatic

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