OLD | NEW |
| (Empty) |
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. | |
4 | |
5 #include "components/bookmarks/browser/bookmark_match.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "base/strings/string16.h" | |
9 | |
10 namespace bookmarks { | |
11 | |
12 BookmarkMatch::BookmarkMatch() : node(NULL) {} | |
13 | |
14 BookmarkMatch::BookmarkMatch(const BookmarkMatch& other) = default; | |
15 | |
16 BookmarkMatch::~BookmarkMatch() {} | |
17 | |
18 // static | |
19 std::vector<size_t> BookmarkMatch::OffsetsFromMatchPositions( | |
20 const MatchPositions& match_positions) { | |
21 std::vector<size_t> offsets; | |
22 for (MatchPositions::const_iterator i = match_positions.begin(); | |
23 i != match_positions.end(); ++i) { | |
24 offsets.push_back(i->first); | |
25 offsets.push_back(i->second); | |
26 } | |
27 return offsets; | |
28 } | |
29 | |
30 // static | |
31 BookmarkMatch::MatchPositions BookmarkMatch::ReplaceOffsetsInMatchPositions( | |
32 const MatchPositions& match_positions, | |
33 const std::vector<size_t>& offsets) { | |
34 DCHECK_EQ(2 * match_positions.size(), offsets.size()); | |
35 MatchPositions new_match_positions; | |
36 std::vector<size_t>::const_iterator offset_iter = offsets.begin(); | |
37 for (MatchPositions::const_iterator match_iter = match_positions.begin(); | |
38 match_iter != match_positions.end(); ++match_iter, ++offset_iter) { | |
39 const size_t begin = *offset_iter; | |
40 ++offset_iter; | |
41 const size_t end = *offset_iter; | |
42 if ((begin != base::string16::npos) && (end != base::string16::npos)) { | |
43 const MatchPosition new_match_position(begin, end); | |
44 new_match_positions.push_back(new_match_position); | |
45 } | |
46 } | |
47 return new_match_positions; | |
48 } | |
49 | |
50 } // namespace bookmarks | |
OLD | NEW |