24template<concepts::InputContainer T = container::Vector<
byte>>
25requires(concepts::ContainerOf<T, byte>)
28 template<
typename U =
void>
41 : m_container(
di::forward<T>(
container)), m_iterator(
begin(m_container)), m_sentinel(
end(m_container)) {}
43 template<
typename... Args>
44 requires(ConstructibleFrom<T, Args...>)
46 : m_container(di::forward<Args>(args)...), m_iterator(
begin(m_container)), m_sentinel(
end(m_container)) {}
48 constexpr auto container() & -> T& {
return m_container; }
49 constexpr auto container() const& -> T const& {
return m_container; }
50 constexpr auto container() && -> T&& {
return di::move(*this).m_container; }
53 auto* bytes_it = bytes.data();
54 auto max_to_read = bytes.size();
56 for (; nread < max_to_read && m_iterator != m_sentinel; ++m_iterator, ++nread) {
57 *bytes_it++ = *m_iterator;
Definition vector_reader.h:26
constexpr VectorReader(InPlace, Args &&... args)
Definition vector_reader.h:45
constexpr auto read_some(Span< byte > bytes) -> Result< usize >
Definition vector_reader.h:52
constexpr VectorReader(T &&container)
Definition vector_reader.h:40
constexpr auto container() &-> T &
Definition vector_reader.h:48
constexpr auto container() const &-> T const &
Definition vector_reader.h:49
constexpr auto container() &&-> T &&
Definition vector_reader.h:50
Definition span_forward_declaration.h:10
Definition operations.h:24
VectorReader(T &&) -> VectorReader< T >
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44