#pragma once #include "Luau/DenseHash.h" #include "Luau/Variant.h" #include #include namespace Luau { struct FunctionDocumentation; struct TableDocumentation; struct OverloadedFunctionDocumentation; using Documentation = Luau::Variant; using DocumentationSymbol = std::string; struct FunctionParameterDocumentation { std::string name; DocumentationSymbol documentation; }; // Represents documentation for anything callable. This could be a method or a // callback or a free function. struct FunctionDocumentation { std::string documentation; std::vector parameters; std::vector returns; }; struct OverloadedFunctionDocumentation { // This is a map of function signature to overload symbol name. Luau::DenseHashMap overloads; }; // Represents documentation for a table-like item, meaning "anything with keys". // This could be a table or a class. struct TableDocumentation { std::string documentation; Luau::DenseHashMap keys; }; using DocumentationDatabase = Luau::DenseHashMap; } // namespace Luau