// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_ACCOUNT_ID_ACCOUNT_ID_H_ #define COMPONENTS_ACCOUNT_ID_ACCOUNT_ID_H_ #include <stddef.h> #include <functional> #include <ostream> #include <string> enum class AccountType { … }; // Type that contains enough information to identify user. // // TODO(alemate): Rename functions and fields to reflect different types of // accounts. (see crbug.com/672253) class AccountId { … }; // Overload << operator to allow logging of AccountIds. std::ostream& operator<<(std::ostream& stream, const AccountId& account_id); // Returns a reference to a singleton. const AccountId& EmptyAccountId(); namespace std { // Implement hashing of AccountId, so it can be used as a key in STL containers. template <> struct hash<AccountId> { … }; } // namespace std #endif // COMPONENTS_ACCOUNT_ID_ACCOUNT_ID_H_