GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 75 / 0 / 75
Functions: 100.0% 24 / 1 / 25
Branches: -% 0 / 0 / 0

src/util/strip/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../util/lib.hpp"
4
5 namespace tifa_libs {
6
7 // pred(x) == true ==> drop
8 template <common_range R, class F>
9 CEXP auto lstrip_view(R CR range, F&& pred) NE {
10 auto v = range | views::drop_while(std::forward<F>(pred));
11 return subrange{begin(v), end(v)};
12 }
13 // pred(x) == true ==> drop
14 template <common_range R, class F>
15 73340762 CEXP auto rstrip_view(R CR range, F&& pred) NE {
16 73340762 auto v = range | views::reverse | views::drop_while(std::forward<F>(pred));
17 73340762 return subrange{end(v).base(), begin(v).base()};
18 }
19 // pred(x) == true ==> drop
20 template <common_range R, class F>
21 CEXP auto strip_view(R CR range, F&& pred) NE {
22 auto v = range | views::drop_while(std::forward<F>(pred)) | views::reverse | views::drop_while(std::forward<F>(pred));
23 return subrange{end(v).base(), begin(v).base()};
24 }
25
26 } // namespace tifa_libs
27