Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / components / bookmarks / browser / bookmark_match.cc
bloba97b449d665ebf2a84f1cfbb77049d40c2c2e835
1 // Copyright 2014 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.
5 #include "components/bookmarks/browser/bookmark_match.h"
7 #include "base/logging.h"
8 #include "base/strings/string16.h"
10 namespace bookmarks {
12 BookmarkMatch::BookmarkMatch() : node(NULL) {}
14 BookmarkMatch::~BookmarkMatch() {}
16 // static
17 std::vector<size_t> BookmarkMatch::OffsetsFromMatchPositions(
18 const MatchPositions& match_positions) {
19 std::vector<size_t> offsets;
20 for (MatchPositions::const_iterator i = match_positions.begin();
21 i != match_positions.end(); ++i) {
22 offsets.push_back(i->first);
23 offsets.push_back(i->second);
25 return offsets;
28 // static
29 BookmarkMatch::MatchPositions BookmarkMatch::ReplaceOffsetsInMatchPositions(
30 const MatchPositions& match_positions,
31 const std::vector<size_t>& offsets) {
32 DCHECK_EQ(2 * match_positions.size(), offsets.size());
33 MatchPositions new_match_positions;
34 std::vector<size_t>::const_iterator offset_iter = offsets.begin();
35 for (MatchPositions::const_iterator match_iter = match_positions.begin();
36 match_iter != match_positions.end(); ++match_iter, ++offset_iter) {
37 const size_t begin = *offset_iter;
38 ++offset_iter;
39 const size_t end = *offset_iter;
40 if ((begin != base::string16::npos) && (end != base::string16::npos)) {
41 const MatchPosition new_match_position(begin, end);
42 new_match_positions.push_back(new_match_position);
45 return new_match_positions;
48 } // namespace bookmarks