// Copyright 2023 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_USER_MANAGER_INCLUDE_EXCLUDE_ACCOUNT_ID_FILTER_H_ #define COMPONENTS_USER_MANAGER_INCLUDE_EXCLUDE_ACCOUNT_ID_FILTER_H_ #include <vector> #include "base/containers/flat_set.h" #include "components/account_id/account_id.h" #include "components/user_manager/user_manager_export.h" namespace user_manager { // IncludeExcludeAccountIdFilter is a data structure which helps to identify // whether `AccountId` is included or excluded from some set (e.g. set of // ephemeral accounts). // // It holds include set, exclude set and a boolean flag which indicates // whether item is included by default if not present neither in include set // nor in exclude set. // // For example, every account is ephemeral or not, so we can have a set of // ephemeral accounts and appropriate IncludeExcludeAccountIdFilter if we // provide next things: // 1. list of accounts that are ephemeral (include_list) // 2. list of accounts that are non-ephemeral (exclude_list) // 3. boolean flag (included_by_default) which configures whether we consider // account ephemeral (included to the set) if account is neither present in // include nor in exclude lists. class USER_MANAGER_EXPORT IncludeExcludeAccountIdFilter { … }; } // namespace user_manager #endif // COMPONENTS_USER_MANAGER_INCLUDE_EXCLUDE_ACCOUNT_ID_FILTER_H_