// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. // This source code is licensed under both the GPLv2 (found in the // COPYING file in the root directory) and Apache 2.0 License // (found in the LICENSE.Apache file in the root directory). // This header establishes compile-time pluggable implementations of hashed // container structures, so that deployments have the option of minimal // dependencies with ok performance (e.g. std::unordered_map) or more // dependencies with optimized performance (e.g. folly::F14FastMap). #pragma once #include "rocksdb/rocksdb_namespace.h" #ifdef USE_FOLLY #include #include namespace ROCKSDB_NAMESPACE { template using UnorderedMap = folly::F14FastMap; template using UnorderedMapH = folly::F14FastMap; template using UnorderedSet = folly::F14FastSet; } // namespace ROCKSDB_NAMESPACE #else #include #include namespace ROCKSDB_NAMESPACE { template using UnorderedMap = std::unordered_map; template using UnorderedMapH = std::unordered_map; template using UnorderedSet = std::unordered_set; } // namespace ROCKSDB_NAMESPACE #endif