// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_PRIVACY_BUDGET_ORDER_PRESERVING_SET_H_ #define CHROME_COMMON_PRIVACY_BUDGET_ORDER_PRESERVING_SET_H_ #include <type_traits> #include <vector> #include "base/check.h" #include "base/containers/flat_set.h" #include "base/stl_util.h" // A combination of a set and a list. Lookup semantics come from the set, // iterator semantics come from the list. // // Iterators preserve the insertion or initialization order. // // Implementing Container, ReversibleContainer, AssociativeContainer are // non-goals. It has the bare minimum functionality required for the use cases // in this directory. // // It is assumed that there will be waay more lookups than mutations. Otherwise // the underlying container choices may not be efficient. template <typename T> class OrderPreservingSet { … }; #endif // CHROME_COMMON_PRIVACY_BUDGET_ORDER_PRESERVING_SET_H_