15class byte_view_iterator
18 using iterator_category = std::random_access_iterator_tag;
19 using difference_type = std::ptrdiff_t;
20 using value_type = std::uint8_t;
21 using pointer =
const value_type*;
22 using reference =
const value_type&;
24 byte_view_iterator() =
default;
25 explicit byte_view_iterator(pointer p) : m_iterator(p) {}
26 explicit byte_view_iterator(
const ByteBuffer::const_iterator& it) : m_iterator(it.operator->()) {}
28 constexpr value_type operator*()
const
33 constexpr byte_view_iterator& operator++()
39 constexpr byte_view_iterator operator++(
int)
41 byte_view_iterator it = *
this;
46 constexpr byte_view_iterator& operator--()
52 constexpr byte_view_iterator operator--(
int)
54 byte_view_iterator it = *
this;
59 constexpr byte_view_iterator& operator+=(difference_type n)
65 constexpr byte_view_iterator& operator-=(difference_type n)
71 constexpr difference_type operator-(
const byte_view_iterator& o)
const
73 return m_iterator - o.m_iterator;
76 constexpr reference operator[](difference_type n)
81 constexpr bool operator==(
const byte_view_iterator& o)
const
83 return m_iterator == o.m_iterator;
86 constexpr bool operator!=(
const byte_view_iterator& o)
const
88 return m_iterator != o.m_iterator;
91 constexpr bool operator>(
const byte_view_iterator& o)
const
93 return m_iterator > o.m_iterator;
96 constexpr bool operator<(
const byte_view_iterator& o)
const
98 return m_iterator < o.m_iterator;
101 constexpr bool operator>=(
const byte_view_iterator& o)
const
103 return m_iterator >= o.m_iterator;
106 constexpr bool operator<=(
const byte_view_iterator& o)
const
108 return m_iterator <= o.m_iterator;
111 constexpr pointer raw()
const
117 pointer m_iterator =
nullptr;
136 using range_type = boost::iterator_range<byte_view_iterator>;
139 using value_type = byte_view_iterator::value_type;
140 using pointer = byte_view_iterator::pointer;
148 byte_view_range(
const ByteBuffer::const_iterator&,
const ByteBuffer::const_iterator&);
162 ByteBuffer::const_pointer
data()
const;
173 using range_type::size;
174 using range_type::begin;
175 using range_type::end;