// Copyright (c) 2017 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.

#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_CONTAINERS_H_
#define QUICHE_QUIC_PLATFORM_API_QUIC_CONTAINERS_H_

#include "net/quic/platform/impl/quic_containers_impl.h"

namespace quic {

// A vector optimized for small sizes. Provides the same APIs as a std::vector.
template <typename T, size_t N, typename A = std::allocator<T>>
using QuicInlinedVector = QuicInlinedVectorImpl<T, N, A>;

// An ordered container optimized for small sets.
// An implementation with O(n) mutations might be chosen
// in case it has better memory usage and/or faster access.
//
// DOES NOT GUARANTEE POINTER OR ITERATOR STABILITY!
template <typename Key, typename Compare = std::less<Key>>
using QuicSmallOrderedSet = QuicSmallOrderedSetImpl<Key, Compare>;

}  // namespace quic

#endif  // QUICHE_QUIC_PLATFORM_API_QUIC_CONTAINERS_H_
