@@ -32,25 +32,19 @@ struct at_eof : matcher_tag {
32
32
33
33
template <typename T,
34
34
typename std::enable_if_t <bencode::detail::is_iterable_v<T>, int > = 0 >
35
- auto in_range (const T &t) {
36
- return all (
37
- greater_equal (&*std::begin (t)),
38
- less_equal (&*std::end (t))
39
- );
35
+ auto reuses_memory (const T &t) {
36
+ return in_interval (&*std::begin (t), &*std::end (t), interval::closed);
40
37
}
41
38
42
39
template <typename T,
43
40
typename std::enable_if_t <!bencode::detail::is_iterable_v<T>, int > = 0 >
44
- auto in_range (const T &) {
41
+ auto reuses_memory (const T &) {
45
42
return is_not (anything ());
46
43
}
47
44
48
45
template <typename T>
49
- auto in_range (const T *t) {
50
- return all (
51
- greater_equal (t),
52
- less_equal (t + std::strlen (t))
53
- );
46
+ auto reuses_memory (const T *t) {
47
+ return in_interval (t, t + std::strlen (t), interval::closed);
54
48
}
55
49
56
50
template <typename Nested, typename Matcher>
@@ -97,14 +91,14 @@ auto decode_tests(Builder &_, Callable &&do_decode) {
97
91
98
92
_.test (" string" , [do_decode]() {
99
93
auto data = make_data<InType>(" 4:spam" );
100
- auto in_data_range = in_range (data);
94
+ auto reuses_data_memory = reuses_memory (data);
101
95
102
96
auto value = do_decode (data);
103
97
auto str = get<typename OutType::string>(value);
104
98
expect (str, equal_to (" spam" ));
105
99
if constexpr (bencode::detail::is_view_v<typename OutType::string>) {
106
- expect (&*str.begin (), in_data_range );
107
- expect (&*str.end (), in_data_range );
100
+ expect (&*str.begin (), reuses_data_memory );
101
+ expect (&*str.end (), reuses_data_memory );
108
102
}
109
103
});
110
104
@@ -117,7 +111,7 @@ auto decode_tests(Builder &_, Callable &&do_decode) {
117
111
118
112
_.test (" dict" , [do_decode]() {
119
113
auto data = make_data<InType>(" d4:spami42ee" );
120
- auto in_data_range = in_range (data);
114
+ auto reuses_data_memory = reuses_memory (data);
121
115
122
116
auto value = do_decode (data);
123
117
auto dict = get<typename OutType::dict>(value);
@@ -126,8 +120,8 @@ auto decode_tests(Builder &_, Callable &&do_decode) {
126
120
auto str = dict.find (" spam" )->first ;
127
121
expect (str, equal_to (" spam" ));
128
122
if constexpr (bencode::detail::is_view_v<typename OutType::string>) {
129
- expect (&*str.begin (), in_data_range );
130
- expect (&*str.end (), in_data_range );
123
+ expect (&*str.begin (), reuses_data_memory );
124
+ expect (&*str.end (), reuses_data_memory );
131
125
}
132
126
});
133
127
0 commit comments