|  | // Copyright 2016 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "components/ntp_snippets/category.h" | 
|  |  | 
|  | #include "base/logging.h" | 
|  |  | 
|  | namespace ntp_snippets { | 
|  |  | 
|  | Category::Category(int id) : id_(id) {} | 
|  |  | 
|  | bool Category::IsKnownCategory(KnownCategories known_category) const { | 
|  | DCHECK_NE(known_category, KnownCategories::LOCAL_CATEGORIES_COUNT); | 
|  | DCHECK_NE(known_category, KnownCategories::REMOTE_CATEGORIES_OFFSET); | 
|  | return id_ == static_cast<int>(known_category); | 
|  | } | 
|  |  | 
|  | bool operator==(const Category& left, const Category& right) { | 
|  | return left.id() == right.id(); | 
|  | } | 
|  |  | 
|  | bool operator!=(const Category& left, const Category& right) { | 
|  | return !(left == right); | 
|  | } | 
|  |  | 
|  | bool Category::CompareByID::operator()(const Category& left, | 
|  | const Category& right) const { | 
|  | return left.id() < right.id(); | 
|  | } | 
|  |  | 
|  | std::ostream& operator<<(std::ostream& os, const Category& obj) { | 
|  | os << obj.id(); | 
|  | return os; | 
|  | } | 
|  |  | 
|  | }  // namespace ntp_snippets |