10 namespace itk::strip::datafmt {
16 std::constructible_from<T> and
17 std::constructible_from<T, uint8_t> and
18 std::constructible_from<T, uint8_t, uint8_t> and
19 std::destructible<T> and
24 {
self.clear() } -> std::same_as<void>;
25 {
self.get_idx() } -> std::same_as<uint8_t>;
26 {
self.get_col() } -> std::same_as<uint8_t>;
27 {
self.get_row() } -> std::same_as<uint8_t>;
29 requires(T
self, uint8_t col, uint8_t row) {
30 {
self.set(col, row) } -> std::same_as<void>;
32 requires(T
self, uint8_t idx) {
33 {
self.set(idx) } -> std::same_as<void>;
38 template<
typename T,
typename HitMap>
40 std::constructible_from<T> and
41 std::constructible_from<T, const HitMap&> and
42 std::destructible<T> and
45 {
self.hits } -> std::same_as<std::vector<typename T::hit_t>&>;
46 {
self.clear() } -> std::same_as<void>;
47 {
self.get_status() } -> std::same_as<uint32_t>;
49 requires(T
self,
const typename T::hit_t& hit) {
50 {
self.add_hit(hit) } -> std::same_as<void>;
52 requires(T
self, uint16_t idx, uint8_t next) {
53 {
self.add_hit(idx) } -> std::same_as<void>;
54 {
self.add_hit_next(idx, next) } -> std::same_as<void>;
59 template<
typename T,
typename HitVec>
61 std::constructible_from<T> and
62 std::constructible_from<T, const HitVec&> and
63 std::destructible<T> and
65 {
self.clear() } -> std::same_as<void>;
66 {
self.get_status() } -> std::same_as<uint32_t>;
68 requires(T
self, uint8_t idx, uint8_t val) {
69 {
self.get_hit(idx) } -> std::same_as<uint8_t>;
70 {
self.set_hit(idx, val) } -> std::same_as<void>;
72 requires(T
self, uint8_t col, uint8_t row, uint8_t val) {
73 {
self.get_hit(col, row) } -> std::same_as<uint8_t>;
74 {
self.set_hit(col, row, val) } -> std::same_as<void>;
81 std::constructible_from<T> and
82 std::destructible<T> and
84 {
self.clear() } -> std::same_as<void>;
85 {
self.get_status() } -> std::same_as<uint32_t>;
87 requires(T
self, uint8_t idx,
typename T::sum_t cnt) {
88 {
self.add_hit(idx) } -> std::same_as<void>;
89 {
self.add_hits(idx, cnt) } -> std::same_as<void>;
91 requires(T
self, uint8_t col, uint8_t row,
typename T::sum_t cnt) {
92 {
self.add_hit(col, row) } -> std::same_as<void>;
93 {
self.add_hits(col, row, cnt) } -> std::same_as<void>;
95 requires(T
self, uint8_t addr, uint32_t cntreg) {
96 {
self.add_cntreg(addr, cntreg) } -> std::same_as<void>;
98 requires(T
self, uint8_t idx) {
99 {
self.get_sum(idx) } -> std::same_as<typename T::sum_t>;
101 requires(T
self, uint8_t col, uint8_t row) {
102 {
self.get_sum(col, row) } -> std::same_as<typename T::sum_t>;
111 namespace concepts = itk::strip::datafmt::concepts;
112 using namespace itk::strip::datafmt;
concept Hit
Concept for pixel Hit.
Definition: datafmt.hpp:18
concept HitVec
Concept for pixel hitmap HitMap.
Definition: datafmt.hpp:63