codec/include/nil/crypto3/detail/pack.hpp
Go to the documentation of this file.
100 struct can_memcpy<stream_endian::little_unit_big_bit<UnitBits>, InputBits, OutputBits, InT, OutT>
104 struct can_memcpy<stream_endian::little_unit_little_bit<UnitBits>, InputBits, OutputBits, InT, OutT>
161 struct real_packer<Endianness, Endianness, ValueBits, ValueBits, InputType, OutputType, true, false,
240 inline static void pack(InputIterator first, InputIterator last, std::random_access_iterator_tag,
266 inline static void pack(InputIterator first, InputIterator last, InCatT, OutputIterator out, OutCatT) {
312 struct real_packer<InputEndian<UnitBits>, OutputEndian<UnitBits>, ValueBits, ValueBits, InputType,
356 struct real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
404 struct real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
448 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
457 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
481 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, bool, bool>
489 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, bool, bool>
509 struct packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, bool, OutputType> {
543 struct packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType, bool> {
547 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
556 typedef real_packer<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits, InputType,
590 typedef packer<stream_endian::big_octet_big_bit, OutputEndianness, InputValueBits, OutputValueBits,
594 typedef packer<stream_endian::little_octet_big_bit, OutputEndianness, InputValueBits, OutputValueBits,
602 typedef packer<stream_endian::little_unit_big_bit<BOOST_ARCH_CURRENT_WORD_BITS>, OutputEndianness,
638 typedef packer<InputEndianness, stream_endian::big_octet_big_bit, InputValueBits, OutputValueBits,
642 typedef packer<InputEndianness, stream_endian::little_octet_big_bit, InputValueBits, OutputValueBits,
650 typedef packer<InputEndianness, stream_endian::little_unit_big_bit<BOOST_ARCH_CURRENT_WORD_BITS>,
686 typedef packer<stream_endian::big_octet_big_bit, OutputEndianness, InputValueBits, OutputValueBits,
690 typedef packer<stream_endian::little_octet_big_bit, OutputEndianness, InputValueBits, OutputValueBits,
698 typedef packer<stream_endian::little_unit_big_bit<BOOST_ARCH_CURRENT_WORD_BITS>, OutputEndianness,
734 typedef packer<InputEndianness, stream_endian::big_octet_big_bit, InputValueBits, OutputValueBits,
738 typedef packer<InputEndianness, stream_endian::little_octet_big_bit, InputValueBits, OutputValueBits,
746 typedef packer<InputEndianness, stream_endian::little_unit_big_bit<BOOST_ARCH_CURRENT_WORD_BITS>,
837 pack_n<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits>(first, last - first, out);
864 typename = typename std::enable_if<nil::crypto3::detail::is_iterator<InputIterator>::value>::type,
865 typename = typename std::enable_if<nil::crypto3::detail::is_iterator<OutputIterator>::value>::type>
896 typename = typename std::enable_if<nil::crypto3::detail::is_iterator<OutputIterator>::value>::type>
900 pack<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits>(first, last, in_cat(), out);
927 inline void pack(InputIterator in_first, InputIterator in_last, std::random_access_iterator_tag,
961 inline void pack(InputIterator in_first, InputIterator in_last, InCatT, OutputIterator out, OutputIterator,
963 pack<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits>(in_first, in_last, out);
1016 pack_n<InputEndianness, OutputEndianness, InputValueBits, OutputValueBits>(in.begin(), in.size(),
void pack_n(InputIterator in, std::size_t in_n, OutputIterator out)
Packs in_n input elements starting from in into output elements beginning from out.
Definition: block/include/nil/crypto3/detail/pack.hpp:776
void pack_from(InputIterator first, InputIterator last, OutputIterator out)
Packs elements from range [first, last) represented in InputEndianness endianness into elements start...
Definition: block/include/nil/crypto3/detail/pack.hpp:632
void pack_to(InputIterator first, InputIterator last, OutputIterator out)
Packs elements from range [first, last) represented in machine-dependent endianness into elements sta...
Definition: block/include/nil/crypto3/detail/pack.hpp:584
void pack(InputIterator first, InputIterator last, std::random_access_iterator_tag, OutputIterator out)
Packs elements from the range [first, last) into elements starting from out. Works for input containe...
Definition: block/include/nil/crypto3/detail/pack.hpp:835
decoded_range< UnaryFunction, SinglePassRange > transform(SinglePassRange &rng, UnaryFunction fn)
Definition: decrypted.hpp:100
little_unit_big_bit< 8 > little_octet_big_bit
Definition: algebra/include/nil/crypto3/detail/stream_endian.hpp:65
big_unit_big_bit< 8 > big_octet_big_bit
Definition: algebra/include/nil/crypto3/detail/stream_endian.hpp:55
Definition: pair.hpp:31
bit_reverser reverses the sequence of bits in each unit of the given value, if InputEndianness and Ou...
Definition: block/include/nil/crypto3/detail/reverser.hpp:266
can_memcpy trait is derived from host_can_memcpy trait and is invoked depending on data endianness....
Definition: block/include/nil/crypto3/detail/pack.hpp:90
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/pack.hpp:91
exploder forms a sequence of output values represented in OutputEndianness endianness from an input v...
Definition: block/include/nil/crypto3/detail/exploder.hpp:148
constexpr static const bool value
Definition: block/include/nil/crypto3/detail/pack.hpp:72
imploder processes a sequence of input values represented in InputEndianness endianness into an outpu...
Definition: block/include/nil/crypto3/detail/imploder.hpp:122
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:488
static void pack_n(InputIterator in, std::size_t n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:480
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:521
static void pack_n(InputIterator in, std::size_t n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:512
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:555
static void pack_n(InputIterator in, std::size_t n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:546
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:456
static void pack_n(InputIterator in, std::size_t n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:447
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.
Definition: codec/include/nil/crypto3/detail/pack.hpp:217
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....
Definition: codec/include/nil/crypto3/detail/pack.hpp:198
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Generic function that chooses pack function depending on input and output iterator category.
Definition: codec/include/nil/crypto3/detail/pack.hpp:285
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...
Definition: codec/include/nil/crypto3/detail/pack.hpp:266
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 Out...
Definition: codec/include/nil/crypto3/detail/pack.hpp:179
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...
Definition: codec/include/nil/crypto3/detail/pack.hpp:240
unit_reverser< InputEndianness, OutputEndianness, UnitBits > units_reverser
Definition: codec/include/nil/crypto3/detail/pack.hpp:318
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:330
OutputEndian< UnitBits > OutputEndianness
Definition: codec/include/nil/crypto3/detail/pack.hpp:316
bit_reverser< InputEndianness, OutputEndianness, UnitBits > bits_reverser
Definition: codec/include/nil/crypto3/detail/pack.hpp:319
InputEndian< UnitBits > InputEndianness
Definition: codec/include/nil/crypto3/detail/pack.hpp:315
static void pack_n(InputIterator in, std::size_t in_n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:322
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:377
nil::crypto3::detail::imploder< InputEndianness, OutputEndianness, InputValueBits, OutputValueBits > imploder
Definition: codec/include/nil/crypto3/detail/pack.hpp:363
BOOST_STATIC_ASSERT(!(OutputValueBits % InputValueBits))
static void pack_n(InputIterator in, std::size_t in_n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:366
nil::crypto3::detail::exploder< InputEndianness, OutputEndianness, InputValueBits, OutputValueBits > exploder
Definition: codec/include/nil/crypto3/detail/pack.hpp:411
static void pack_n(InputIterator in, std::size_t in_n, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:414
BOOST_STATIC_ASSERT(!(InputValueBits % OutputValueBits))
static void pack(InputIterator first, InputIterator last, OutputIterator out)
Definition: codec/include/nil/crypto3/detail/pack.hpp:422
Real_packer is used to transform input data divided into chunks of the bit size InputValueBits repres...
Definition: block/include/nil/crypto3/detail/pack.hpp:144
unit_reverser reverses the sequence of units in the given value, if InputEndianness and OutputEndiann...
Definition: block/include/nil/crypto3/detail/reverser.hpp:423