1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_INL_H_
6#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_INL_H_
7
8namespace autofill {
9
10template<typename T>
11class FormGroupMatchesByCompareFunctor {
12 public:
13  explicit FormGroupMatchesByCompareFunctor(const T& form_group)
14      : form_group_(form_group) {
15  }
16
17  bool operator()(const T* form_group) {
18    return form_group->Compare(form_group_) == 0;
19  }
20
21  bool operator()(const T& form_group) {
22    return form_group.Compare(form_group_) == 0;
23  }
24
25 private:
26  const T& form_group_;
27};
28
29template<typename C, typename T>
30bool FindByContents(const C& container, const T& form_group) {
31  return std::find_if(
32      container.begin(),
33      container.end(),
34      FormGroupMatchesByCompareFunctor<T>(form_group)) != container.end();
35}
36
37}  // namespace autofill
38
39#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_INL_H_
40