File Coverage

/root/.cpan/build/URI-XS-2.1.2-0/clib/src/panda/uri/Query.h
Criterion Covered Total %
statement 8 9 88.8
branch n/a
condition n/a
subroutine n/a
pod n/a
total 8 9 88.8


line stmt bran cond sub pod time code
1             #pragma once
2             #include
3             #include
4             #include
5              
6             namespace panda { namespace uri {
7              
8 2614           struct Query : panda::string_multimap {
9             using Base = panda::string_multimap;
10             uint32_t rev = 1;
11              
12             using Base::Base;
13              
14 49           Query& operator= (const Query& x) {
15 49           rev++;
16 49           Base::operator=(x);
17 49           return *this;
18             }
19              
20             iterator insert (const value_type& val) { rev++; return Base::insert(val); }
21             template
22             iterator insert (P&& value) { rev++; return Base::insert(std::forward(value)); }
23             iterator insert (const_iterator hint, const value_type& value) { rev++; return Base::insert(hint, value); }
24             template
25             iterator insert (const_iterator hint, P&& value) { rev++; return Base::insert(hint, std::forward(value)); }
26             template
27             void insert (InputIt first, InputIt last) { rev++; Base::insert(first, last); }
28             void insert (std::initializer_list ilist) { rev++; return Base::insert(ilist); }
29              
30             template
31 24           iterator emplace (Args&&... args) { rev++; return Base::emplace(std::forward(args)...); }
32              
33             template
34             iterator emplace_hint (const_iterator hint, Args&&... args) { rev++; return Base::emplace(hint, std::forward(args)...); }
35              
36             iterator erase (const_iterator pos) { rev++; return Base::erase(pos); }
37             iterator erase (const_iterator first, const_iterator last) { rev++; return Base::erase(first, last); }
38 0           size_type erase (const key_type& key) { rev++; return Base::erase(key); }
39             size_type erase (const string_view& sv) { rev++; return Base::erase(sv); }
40              
41             void swap (Query& x) {
42             rev++;
43             x.rev++;
44             Base::swap(x);
45             }
46              
47 52           void clear () { rev++; Base::clear(); }
48              
49             using Base::begin;
50             using Base::rbegin;
51             using Base::end;
52             using Base::rend;
53             using Base::find;
54             using Base::lower_bound;
55             using Base::upper_bound;
56             using Base::equal_range;
57              
58             iterator begin () { rev++; return Base::begin(); }
59             reverse_iterator rbegin () { rev++; return Base::rbegin(); }
60             iterator end () { rev++; return Base::end(); }
61             reverse_iterator rend () { rev++; return Base::rend(); }
62              
63             iterator find (const key_type& k) { rev++; return Base::find(k); }
64             iterator lower_bound (const key_type& k) { rev++; return Base::lower_bound(k); }
65             iterator upper_bound (const key_type& k) { rev++; return Base::upper_bound(k); }
66             std::pair equal_range (const key_type& k) { rev++; return Base::equal_range(k); }
67              
68             template ::value>::type>
69 34           iterator find (X k) { rev++; return Base::find(k); }
70             template ::value>::type>
71             iterator lower_bound (X k) { rev++; return Base::lower_bound(k); }
72             template ::value>::type>
73             iterator upper_bound (X k) { rev++; return Base::upper_bound(k); }
74             template ::value>::type>
75             std::pair equal_range (X k) { rev++; return Base::equal_range(k); }
76             };
77              
78             }}