Iros
 
Loading...
Searching...
No Matches
reader.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/any/prelude.h"
6
7namespace di::io {
8namespace detail {
10 template<typename T>
11 constexpr auto operator()(T& reader, Span<Byte> data) const -> Result<usize>
12 requires(requires {
14 })
15 {
16 return reader.read_some(data);
17 }
18
19 template<typename T>
21 requires(requires {
22 { (*this)(reader.get(), data) };
23 })
24 {
25 return (*this)(reader.get(), data);
26 }
27 };
28}
29
30struct ReadSome : Dispatcher<ReadSome, Result<usize>(This&, Span<Byte>), detail::ReadSomeMember> {};
31
32constexpr inline auto read_some = ReadSome {};
33
35}
36
37namespace di::meta {
38template<typename T, concepts::Impl<io::Reader> Reader>
41}
42
43namespace di {
44using io::read_some;
45using io::Reader;
46}
Definition reference_wrapper.h:14
Definition span_forward_declaration.h:10
Implicit conversion for this test refers to the ability to return a value of function from a type.
Definition operations.h:89
detail::DispatcherImpl< Self, Sig, Tags... > Dispatcher
Definition dispatcher.h:47
Definition reader.h:8
Definition reader.h:7
constexpr auto read_some
Definition reader.h:32
meta::List< ReadSome > Reader
Definition reader.h:34
Definition merge_interfaces.h:6
meta::LikeExpected< decltype(io::read_some(util::declval< Reader & >(), util::declval< Span< Byte > >())), T > ReaderResult
Definition reader.h:39
Type< detail::LikeExpectedHelper< T, U > > LikeExpected
Definition vocab.h:60
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9
constexpr auto data
Definition data.h:51
Definition reader.h:30
Definition reader.h:9
constexpr auto operator()(T &reader, Span< Byte > data) const -> Result< usize > requires(
Definition reader.h:11
constexpr auto operator()(util::ReferenceWrapper< T > reader, Span< Byte > data) const -> Result< usize > requires(
Definition reader.h:20
Definition core.h:5