co_usb
Loading...
Searching...
No Matches
iterator.hpp
Go to the documentation of this file.
1
6#pragma once
7
9#include <memory>
11{
12
13constexpr struct
14{
15
16 template <detail::TransferResource TRes>
17 inline auto operator()(TRes const &tfer_res) const noexcept -> TRes const *
18 {
19 return std::addressof(tfer_res);
20 }
21
22 template <detail::TransferSequence TSeq>
23 requires(!detail::TransferResource<TSeq>)
24 inline auto operator()(TSeq const &tfer_seq) const noexcept
25 {
26 return std::ranges::begin(tfer_seq);
27 }
28
29 template <detail::TransferSequence TSeq>
30 requires(!detail::TransferResource<TSeq>)
31 inline auto operator()(TSeq &tfer_seq) const noexcept
32 {
33 return std::ranges::begin(tfer_seq);
34 }
35
37
38constexpr struct
39{
40 template <detail::TransferResource TRes>
41 inline auto operator()(TRes const &tfer_res) const noexcept -> TRes const *
42 {
43 return std::addressof(tfer_res) + 1;
44 }
45
46 template <detail::TransferSequence TSeq>
47 requires(!detail::TransferResource<TSeq>)
48 inline auto operator()(TSeq const &tfer_seq) const noexcept
49 {
50 return std::ranges::end(tfer_seq);
51 }
52
53 template <detail::TransferSequence TSeq>
54 requires(!detail::TransferResource<TSeq>)
55 inline auto operator()(TSeq &tfer_seq) const noexcept
56 {
57 return std::ranges::end(tfer_seq);
58 }
59
61
62} // namespace co_usb::transfer::detail
Definition complete_io.hpp:21
constexpr struct co_usb::transfer::detail::@1 transfer_end
constexpr struct co_usb::transfer::detail::@0 transfer_begin
Transfer resource and transfer sequence concepts.