| //===-- YamlSymbolIndex.h ---------------------------------------*- C++ -*-===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H | 
 | #define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H | 
 |  | 
 | #include "SymbolIndex.h" | 
 | #include "find-all-symbols/SymbolInfo.h" | 
 | #include "llvm/Support/ErrorOr.h" | 
 | #include <map> | 
 | #include <vector> | 
 |  | 
 | namespace clang { | 
 | namespace include_fixer { | 
 |  | 
 | /// Yaml format database. | 
 | class YamlSymbolIndex : public SymbolIndex { | 
 | public: | 
 |   /// Create a new Yaml db from a file. | 
 |   static llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>> | 
 |   createFromFile(llvm::StringRef FilePath); | 
 |   /// Look for a file called \c Name in \c Directory and all parent directories. | 
 |   static llvm::ErrorOr<std::unique_ptr<YamlSymbolIndex>> | 
 |   createFromDirectory(llvm::StringRef Directory, llvm::StringRef Name); | 
 |  | 
 |   std::vector<find_all_symbols::SymbolAndSignals> | 
 |   search(llvm::StringRef Identifier) override; | 
 |  | 
 | private: | 
 |   explicit YamlSymbolIndex( | 
 |       std::vector<find_all_symbols::SymbolAndSignals> Symbols) | 
 |       : Symbols(std::move(Symbols)) {} | 
 |  | 
 |   std::vector<find_all_symbols::SymbolAndSignals> Symbols; | 
 | }; | 
 |  | 
 | } // namespace include_fixer | 
 | } // namespace clang | 
 |  | 
 | #endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_YAMLSYMBOLINDEX_H |