File Coverage

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