Home | History | Annotate | Download | only in browser
      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() {}
     15 
     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);
     24   }
     25   return offsets;
     26 }
     27 
     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);
     43     }
     44   }
     45   return new_match_positions;
     46 }
     47 
     48 }  // namespace bookmarks
     49