nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false > Struct Template Reference

This real_packer deals with the case of equal sizes (i.e. InputValueBits == OutputValueBits) and same endianness representations (i.e., speaking informally, InputEndianness == OutputEndianness). It packs input elements with ValueBits size represented in Endianness endianness into output elements with the same ValueBits size represented in the same Endianness endianness. More...

#include <pack.hpp>

+ Collaboration diagram for nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >:

Static Public Member Functions

template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void pack (InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, OutputIterator out)
 Generic function that chooses pack function depending on input and output iterator category. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack (InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out, std::random_access_iterator_tag)
 Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<typename InputIterator , typename OutputIterator >
static void pack_n (InputIterator in, std::size_t in_n, OutputIterator out)
 Packs in_n elements iterated by in into elements iterated by out. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy< Endianness, InputValueBits, OutputValueBits, InputType, OutputType >::value >::type pack_n (InputType const *in, std::size_t n, OutputType *out)
 Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible. More...
 

Detailed Description

template<typename Endianness, std::size_t ValueBits, typename InputType, typename OutputType>
struct nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >

This real_packer deals with the case of equal sizes (i.e. InputValueBits == OutputValueBits) and same endianness representations (i.e., speaking informally, InputEndianness == OutputEndianness). It packs input elements with ValueBits size represented in Endianness endianness into output elements with the same ValueBits size represented in the same Endianness endianness.

Template Parameters
Endianness
ValueBits
InputType
OutputType

Member Function Documentation

◆ pack() [1/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [2/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [3/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [4/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [5/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [6/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [7/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename InCatT , typename OutputIterator , typename OutCatT >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
InCatT  ,
OutputIterator  out,
OutCatT   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input or output iterator doesn't meet RandomAccessIterator requirements.

Template Parameters
InputIterator
InCatT
OutputIterator
OutCatT
Parameters
first
last
InCatT
out
OutCatT
Returns

◆ pack() [8/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [9/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [10/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [11/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [12/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [13/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [14/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
inlinestatic

Generic function that chooses pack function depending on input and output iterator category.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
out
Returns

◆ pack() [15/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [16/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [17/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [18/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [19/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [20/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack() [21/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack ( InputIterator  first,
InputIterator  last,
std::random_access_iterator_tag  ,
OutputIterator  out,
std::random_access_iterator_tag   
)
inlinestatic

Packs elements in range [first, last) into elements iterated by out. This function is invoked only if input and output iterators meet RandomAccessIterator requirements. However, the restriction can be weakened to ContiguousIterator usage.

Template Parameters
InputIterator
OutputIterator
Parameters
first
last
random_access_iterator_tag
out
random_access_iterator_tag
Returns

◆ pack_n() [1/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [2/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [3/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [4/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [5/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [6/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [7/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<typename InputIterator , typename OutputIterator >
static void nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputIterator  in,
std::size_t  in_n,
OutputIterator  out 
)
inlinestatic

Packs in_n elements iterated by in into elements iterated by out.

Template Parameters
InputIterator
OutputIterator
Parameters
in
in_n
out
Returns

◆ pack_n() [8/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [9/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [10/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [11/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [12/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [13/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [14/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by pointer in into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [15/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [16/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [17/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [18/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [19/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [20/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

◆ pack_n() [21/21]

template<typename Endianness , std::size_t ValueBits, typename InputType , typename OutputType >
template<std::size_t InputValueBits, std::size_t OutputValueBits>
static std::enable_if< can_memcpy<Endianness, InputValueBits, OutputValueBits, InputType, OutputType>::value>::type nil::crypto3::detail::real_packer< Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false, false >::pack_n ( InputType const *  in,
std::size_t  n,
OutputType *  out 
)
inlinestatic

Packs n InputType elements pointed by constant pointer in (which, hence, cannot be iterated) into OutType elements pointed by out. This function is invoked only if memcpy call is possible.

Parameters
in
n
out
Returns

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