#pragma once // @generated // Glean.Schema.Gen.Cpp definitions for fbcode/glean/lang/clang/schema.h // by //glean/hs:predicates using --cpp #include #include #include "glean/cpp/glean.h" namespace facebook { namespace glean { namespace cpp { namespace schema { constexpr int version = 1; namespace Sys { struct Blob; } // namespace Sys namespace Src { struct RelByteSpan; struct Range; struct RangeContains; struct PackedByteSpansGroup; struct Loc; enum class Language; enum class IndexFailureReason; struct IndexFailure; struct FileLines; struct FileLanguage; struct FileDigest; struct File; struct ByteSpan; struct ByteSpanContains; struct FileLocation; struct ByteRange; } // namespace Src namespace Search { namespace Python { struct QueryToScopeCase; struct PythonNameCase; } // namespace Python namespace Pp { struct SearchByName; } // namespace Pp namespace Java { struct QueryToScopeCase; struct NameCase; } // namespace Java namespace Hack { struct QueryToScopeCase; struct HackNameCase; struct HackInAutoImportedNamespace; } // namespace Hack namespace Flow { struct TypeDeclarationAsDeclaration; struct QueryToScopeCase; struct FlowModuleNameCase; } // namespace Flow namespace Cxx { struct QueryToQNameCase; struct QueryToNSQNameCase; struct CxxRecordCase; struct CxxNamespaceCase; } // namespace Cxx namespace Anglelang { struct NameLowerCase; } // namespace Anglelang } // namespace Search namespace Scip { enum class TextEncoding; struct SymbolName; struct SymbolDocumentation; struct SymbolDisplayName; struct Symbol; struct SomeEntity; struct ReferenceTarget; struct Reference; enum class ProtocolVersion; struct Location; struct LocalName; struct IsImplemented; struct IsImplementation; struct Entity; struct EntityDefinition; struct EntityLocation; struct EntityUses; struct FileEntityXRefLocation; struct ResolveLocation; struct SearchBySymbol; struct Documentation; struct DisplayNameSymbol; struct DisplayName; struct DefinitionUses; struct DefinitionName; struct DefinitionDocumentation; struct Definition; } // namespace Scip namespace Python { namespace Branches { struct Root; struct FileToRoot; struct DirectXRefByFile; } // namespace Branches struct XRefsViaNameByTarget; struct XRefsViaName; struct XRefViaName; struct XRefsViaNameByFile; struct VariableDeclaration; struct VariableBySName; struct TypeInfo; struct Type; struct StringLiteral; struct SearchVariableByName; struct SearchVariableByLowerCaseName; struct SearchModuleByName; struct SearchModuleByLowerCaseName; struct SearchMethodByName; struct SearchMethodByLowerCaseName; struct SearchFunctionByName; struct SearchFunctionByLowerCaseName; struct SearchFieldByName; struct SearchFieldByLowerCaseName; struct SearchClassByName; struct SearchClassByLowerCaseName; struct SNameToName; struct SName; struct ResolveOriginalName; struct Parameter; struct NameToSName; struct Name; struct ModuleDefinition; struct ModuleBySName; struct Module; struct MethodOverrides; struct MethodOverriden; struct MethodByLocalNameStr; struct ImportStatementByAsSName; struct ImportStatementByAsName; struct ImportStatement; struct ImportStarsByFile; struct ImportStarStatement; struct ImportStarLocation; struct FunctionDeclaration; struct FunctionBySName; struct DerivedClassToBase; struct Definition; struct DefinitionLocation; struct DefinitionsByFile; struct IsTopLevelDefinition; struct DeclarationContainer; struct FunctionDefinition; struct VariableDefinition; struct Declaration; struct DeclarationDefinition; struct DeclarationDocstring; struct DeclarationLocation; struct DeclarationReference; struct DeclarationToName; struct DeclarationUses; struct DeclarationWithLocalName; struct DeclarationWithName; struct DeclarationWithSName; struct DeclarationsByFile; struct DefinitionDeclaration; struct DirectXRef; struct DirectXRefsByFile; struct IsAbstract; struct IsTopLevelDeclaration; struct NonImportDeclaration; struct SNameWithDeclaration; } // namespace Python namespace Yaml { struct XRefViaName; struct XRefsByFile; } // namespace Yaml namespace Python { struct Contains; struct ContainingTopLevelDeclaration; struct ContainedByTopLevelDeclaration; struct ContainedBy; struct ClassDefinition; struct ClassDeclaration; struct ClassBySName; struct CalleeToCaller; struct BaseClassToDerived; struct Argument; struct CallArgument; struct FileCall; } // namespace Python namespace Pp1 { struct Use; struct Undef; struct Macro; struct Include; struct DefineUse; struct DefineLowerCase; struct Define; } // namespace Pp1 namespace Lsif { namespace Types { struct ToolInfo; } // namespace Types } // namespace Lsif namespace Scip { struct Metadata; } // namespace Scip namespace Lsif { namespace Types { enum class SymbolKind; } // namespace Types } // namespace Lsif namespace Scip { struct EntityKind; struct SearchByNameKind; struct SymbolKind; } // namespace Scip namespace Lsif { namespace Types { struct RangeSpan; struct ToSrcRange; } // namespace Types } // namespace Lsif namespace Scip { struct DefinitionLocation; struct FileRange; struct FileXLangSymbolRef; struct ReferenceLocation; } // namespace Scip namespace Lsif { namespace Types { enum class LanguageId; } // namespace Types } // namespace Lsif namespace Scip { struct FileLanguage; struct TagDefinition; } // namespace Scip namespace Lsif { namespace Types { struct FromSrcRange; } // namespace Types struct SomeEntity; struct Reference; struct Range; struct ProjectDocument; struct Project; struct PackageInformation; struct NameLowerCase; struct NameDefinition; struct Name; struct MonikerSymbolKind; struct MonikerScheme; enum class MonikerKind; struct MonikerId; struct MonikerDefinition; struct Moniker; struct Metadata; struct Location; struct HoverText; struct HoverContent; struct Entity; struct EntityDefinition; struct EntityKind; struct EntityLocation; struct EntityUses; struct FileEntityXRefLocation; struct ResolveLocation; struct SearchByExactLocation; struct SearchByExactLocationAndName; struct SearchByMoniker; struct SearchByName; struct SearchNonLocalByLocation; struct TagDefinition; struct Document; struct DefinitionUse; struct DefinitionMoniker; struct DefinitionLocation; struct DefinitionKind; struct DefinitionHover; struct Definition; struct Declaration; } // namespace Lsif namespace Kotlin { namespace Alpha { struct VariableParent; struct VariableDeclaration; struct TypeArg; struct Type; struct DeclarationLocation; struct Declaration; struct DeclarationFileLocation; struct ExtendsDeclaration; struct FileDeclarations; struct MethodDeclaration; struct ParentDeclaration; } // namespace Alpha } // namespace Kotlin namespace Search { namespace Kotlin { struct SearchByQName; } // namespace Kotlin } // namespace Search namespace Symbolid { namespace Kotlin { struct LookupDeclaration; struct LookupMethodDeclaration; } // namespace Kotlin } // namespace Symbolid namespace Kotlin { namespace Alpha { struct ContainsDeclaration; struct ClassMember; struct ClassDeclaration; } // namespace Alpha } // namespace Kotlin namespace Javakotlin { namespace Alpha { struct Type; struct QName; struct Path; struct NameLowerCase; struct Name; struct MethodName; } // namespace Alpha } // namespace Javakotlin namespace Java { namespace Alpha { struct XRefTarget; struct XRefFile; struct XRef; struct Wildcard; struct TypeVar; struct TypeParam; struct TypeOfTypeArgs; struct TypeArg; struct PrimitiveType; struct PackageDeclaration; struct ObjectType; enum class Modifier; struct ParameterDeclaration; struct InterfaceInheritance; struct Inheritance; struct ImportDeclaration; struct FileXRefs; struct ExecutableDefinition; struct ExecutableDefnLocation; struct LocalDeclaration; struct Definition; struct DefinitionLocation; struct EnumDeclaration; struct FieldDeclaration; struct InterfaceDeclaration; struct MethodDeclaration; struct Declaration; struct DeclarationAnnotations; struct DeclarationComment; struct DeclarationLocation; struct DeclarationType; struct DeclarationUses; struct DeclarationXRefTarget; struct ExtendedByDeclaration; struct ExtendsDeclaration; struct FileDeclarations; struct ParentDeclaration; struct QNameToDefinition; struct XRefOfType; struct XRefTargetDeclaration; } // namespace Alpha } // namespace Java namespace Search { namespace Java { struct SearchByQName; } // namespace Java } // namespace Search namespace Symbolid { namespace Java { struct LookupDeclaration; struct LookupMethodDeclaration; } // namespace Java } // namespace Symbolid namespace Java { namespace Alpha { struct DeclOfExecutableDefn; struct DeclOfDefn; struct ContainsDeclaration; struct ConstructorDeclaration; struct ClassDeclaration; struct BaseType; struct Type; struct ArrayType; struct Annotation; struct AnnotatedClass; } // namespace Alpha } // namespace Java namespace Indexer { struct Config; } // namespace Indexer namespace Hs { struct ValBind; struct UnitName; struct TypeSynDecl; struct TypeFamilyDecl; struct TypeArg; struct TyVarBind; enum class TupleSort; struct TyConSort; struct TyCon; enum class Specificity; struct SourceModule; struct SigDecl; struct RefTarget; enum class RefKind; struct RefSpan; struct XRef; struct RecordFieldDecl; struct PatSynDecl; struct PatBind; struct OccNameLowerCase; enum class Namespace; struct OccName; struct NameSort; struct Name; struct ModuleSource; struct ModuleName; struct ModuleDeclarations; struct Module; struct MethDecl; struct LitType; struct InstanceDecl; struct InstanceBindToDecl; struct InstanceBind; struct FileXRefs; struct DeclarationLocation; struct Declaration; struct DeclarationOfName; struct DeclarationSpan; struct DataDecl; struct ConstrDecl; struct ClassDecl; struct ArgFlag; struct Type; } // namespace Hs namespace Hack { enum class Visibility; enum class Variance; struct UserAttribute; struct TypedefDeclaration; enum class TypeConstKind; struct TypeConstDefinition; struct Type; struct TraitDeclaration; struct StringLiteral; struct SearchTypedefByLowerCaseName; struct SearchTypeConstByLowerCaseName; struct SearchTraitByLowerCaseName; struct SearchPropertyByLowerCaseName; struct SearchNamespaceByLowerCaseName; struct SearchModuleByLowerCaseName; struct SearchMethodByLowerCaseName; struct SearchInterfaceByLowerCaseName; struct SearchGlobalConstByLowerCaseName; struct SearchFunctionByLowerCaseName; struct SearchEnumeratorByLowerCaseName; struct SearchEnumByLowerCaseName; struct SearchClassConstByLowerCaseName; struct SearchClassByLowerCaseName; enum class ReifyKind; enum class ReadonlyKind; struct QName; struct PropertyDefinition; struct Parameter; struct Signature; struct Occurrence; struct NamespaceQName; struct NamespaceDeclaration; struct NameLowerCase; struct Name; struct ModuleMembership; struct ModuleDefinition; struct ModuleDeclaration; struct MethodOverrides; struct MethodOverridden; struct MethodOccurrence; struct InterfaceDeclaration; struct IndexerInputsHash; struct GlobalNamespaceAlias; struct GlobalConstDefinition; struct GlobalConstDeclaration; struct FunctionDeclaration; struct FieldClassConst; struct ShapeKV; struct Hint; struct Enumerator; struct EnumDefinition; struct EnumDeclaration; struct Definition; struct Context_; struct ContainerDeclaration; struct ContainerDeclarationQName; struct ContainerParent; struct Declaration; struct DeclarationComment; struct DeclarationLocation; struct DeclarationName; struct DeclarationNamespace; struct DeclarationSource; struct DeclarationSpan; struct DeclarationTarget; struct FileDeclarations; struct MemberCluster; struct ModuleChild; struct ModuleParent; struct NamespaceMember; struct SearchClassByName; struct SearchClassConstByName; struct SearchEnumByName; struct SearchEnumeratorByName; struct SearchFunctionByName; struct SearchGlobalConstByName; struct SearchInterfaceByName; struct SearchMethodByName; struct SearchModuleByName; struct SearchNamespaceByName; struct SearchPropertyByName; struct SearchTraitByName; struct SearchTypeConstByName; struct SearchTypedefByName; struct XRefTarget; struct TargetUses; struct TargetUsesAbs; struct XRef; struct FileXRefs; struct TypeInfo; } // namespace Hack namespace Search { namespace Hack { struct SearchByName; struct SearchFunctionInNamespace; struct SearchGlobalConstInNamespace; struct SearchInContainer; struct SearchInContainerNoProperty; struct SearchInContainerOrEnum; struct SearchInContainerOrEnumNoProperty; struct SearchInEnum; struct SearchInNamespace; struct SearchModule; struct SearchNamespace; struct SearchNamespacedDecl; struct SearchPropertyInContainer; struct SearchTypeInNamespace; } // namespace Hack } // namespace Search namespace Hack { struct InheritedMembers; struct MethodDeclaration; struct PropertyDeclaration; struct TypeConstDeclaration; struct ContainerChild; enum class ConstraintKind; struct Constraint; struct TypeParameter; struct FunctionDefinition; struct InterfaceDefinition; struct MethodDefinition; struct TraitDefinition; struct TypedefDefinition; struct ClassDefinition; struct ClassDeclaration; struct ClassConstDefinition; struct ClassConstDeclaration; struct AttributeToDefinition; struct AttributeToDeclaration; struct AttributeHasParameter; struct Argument; struct CallArgument; struct FileCall; } // namespace Hack namespace Graphql { struct VariableDef; struct Value; struct UnionTypeDef; struct SelectionSet; struct ScalarTypeDef; enum class OperationKind; struct Operation; struct ObjectTypeDef; struct NameLowerCase; struct InterfaceTypeDef; struct InputValueDef; struct InputObjectTypeDef; struct InlineFragment; struct FragmentSpread; struct Fragment; struct FieldDef; struct Field; struct EnumTypeDef; enum class DirectiveDefLocation; struct DirectiveDef; struct Directive; struct Declaration; struct DeclarationLocation; struct DeclarationName; struct DeclarationUses; struct FileDeclarations; struct SearchByName; struct XRef; struct FileXRefs; struct DeclHasName; struct BelongToConfig; struct Argument; } // namespace Graphql namespace Glean { namespace Test { struct nothingTest; struct WrappedStringPair; struct ViaStringPair; struct Unbound2; struct Unbound; struct TreeToTree; struct Tree; struct Sum_; struct StringPairBox; struct StringPair; struct StoredRevStringPairWithRev; struct StoredRevStringPairWithA; struct StoredRevStringPairSum; struct StoredRevStringPair; struct StoredDualStringPair; struct SkipRevEdge; struct SameString; struct RevStringPairs; struct RevStringPairRec; struct RevStringPair; struct RevRevStringPair; struct RevEdge; struct ReflStringPair; struct RefRef; struct Ref; struct Qux; struct Predicate_0; struct NodePair; struct Node; struct Name; struct MatchOneAlt; struct LeftOr2; struct LeftOr; struct KeyValue; struct IsThree; struct IsParent; struct IsGlean; struct FooToFoo; struct Foo; struct Expr; enum class Enum_; struct Rec; struct EmptyStoredStringPair; struct EmptyPred; struct EdgeWrapper; struct EdgeSum; struct EdgeFromNotA; struct Edge; struct DualStringPair; struct DerivedKeyValue2; struct DerivedKeyValue; struct Bar; enum class KitchenSink_enum_; struct KitchenSink; struct Predicate_; } // namespace Test } // namespace Glean namespace Gencode { enum class GenCodeVariant; struct GenCodeSignature; struct GenCodeCommand; struct GenCodeClass; struct GenCodeBySource; struct GenCode; } // namespace Gencode namespace Flow { struct XRef; struct TypeImportDeclaration; struct TypeExport; struct TypeDeclarationReference; struct TypeDeclarationInfo; struct TypeDeclaration; struct Type; struct StringToFileModule; struct SourceOfTypeExport; struct SourceOfExport; struct SomeDeclaration; struct SomeEntity; } // namespace Flow namespace Search { namespace Flow { struct FlowSearchByNameNonImport; } // namespace Flow } // namespace Search namespace Flow { struct SearchTypeDeclarationByName; struct SearchTypeDeclarationByLowerCaseName; struct SearchTypeByModuleExport; struct SearchModuleByLowerCaseName; struct SearchMemberDeclarationByName; struct SearchMemberDeclarationByLowerCaseName; struct SearchDeclarationByName; struct SearchDeclarationByLowerCaseName; struct SearchByNameModule; struct SearchByName; struct SearchByModuleName; struct SearchByModule; struct SearchByFileModule; struct Range; struct Name; struct ModuleTypeExport; struct ModuleNameLowerCase; struct ModuleLocationByFile; struct ModuleLocation; struct ModuleExport; struct ModuleDoc; struct ModuleContains; struct ModuleComments; struct Module; struct MemberDeclarationReference; struct MemberDeclarationInfo; struct MemberDeclaration; struct LocalDeclarationReference; struct ImportDeclaration; struct FlowXRefDeclInfo; struct FlowTypeImportXRef; struct FlowTypeExportLocation; struct FlowTypeEntityImportUses; struct FlowSameModule; struct FlowModuleNamespaceXRef; struct FlowImportXRef; struct FlowExportLocation; struct FlowEntityUsesAll; struct FlowEntityImportUses; struct FlowCompatibleExport; struct FileXRef; struct FileOfStringModule; struct FileDeclaration; struct Export; struct Documentation; struct DeclarationUses; struct DeclarationSignature; struct DeclarationNameSpan; struct DeclarationLocation; struct DeclarationInfo; struct Declaration; } // namespace Flow namespace Fbthrift { struct XRefTarget; struct TypedConst; struct TypedConstT; struct UnionFieldVal; struct UnionVal; struct TypeDefType; struct Target; struct StructuredAnnotation; struct StructFieldValValue; struct StructFieldVal; struct StructVal; struct ServiceParent; struct ServiceName; struct ServiceInteractionFunctions; struct ServiceDefinition; struct ServiceChild; struct SearchByName; struct ResultSink; enum class Qualifier; struct QualName; enum class PrimitiveType; struct PackageName; struct Package; struct NamespaceValue; struct NamespaceName; struct Namespace; enum class NamedKind; struct NamedType; struct NamedDecl; struct NameLowerCase; struct MapType; struct Loc; struct XRef; struct KeyValue; struct InteractionName; struct InteractionDefinition; struct IntegerLiteral; struct Identifier; struct FunctionName; struct FloatLiteral; struct Literal; struct FileXRefs; struct File; enum class FieldKind; struct FieldSpecification; struct StructType; struct UnqualField; struct UnionType; struct FieldDecl; struct ExceptionVal; struct ExceptionType; struct ExceptionSpecName; struct ExceptionSpecification; struct ResultStream; struct TypeDefException; struct ExceptionName; struct EnumerationType; struct EnumValueDef; struct EnumValue; struct EnumVal; struct DeclarationComment; struct DeclarationFile; struct DeclarationMember; struct DeclarationName; struct DeclarationNameSpan; struct DeclarationUses; struct FileDeclaration; struct FunctionDeclarationName; } // namespace Fbthrift namespace Hack { struct HackToThrift; struct ThriftToHack; } // namespace Hack namespace Fbthrift { struct ContainerType; struct TypeSpecification; struct ConstantDefinition; struct Constant; } // namespace Fbthrift namespace Erlang { struct NameLowerCase; struct Fqn; struct FunctionDeclaration; struct XRefViaFqn; struct XRefsViaFqnByFile; struct DeclarationComment; struct Declaration; struct DeclarationLocation; struct DeclarationReference; struct DeclarationToFqn; struct DeclarationUses; struct DeclarationWithFqn; struct DeclarationsByFile; struct SearchByName; } // namespace Erlang namespace Dyn { enum class Usage; struct ObserverIdentifier; struct Observer; struct Environment; struct EntityDynamicReference; } // namespace Dyn namespace Digest { struct Digest; struct FileDigest; } // namespace Digest namespace Glass { struct FileMetadata; struct FileInfo; } // namespace Glass namespace Dataswarm { struct TableDeclaration; struct TableColumnDeclaration; struct SubqueryDeclaration; struct SubqueryColumnDeclaration; struct MacroDeclaration; struct Declaration; struct DeclarationLocation; struct DeclarationName; struct XRef; struct XRefsByFile; } // namespace Dataswarm namespace Cxx1 { struct XRefVia; struct VariableLowerCase; struct UsingDirective; struct UsingDeclaration; struct TypeAliasLowerCase; enum class TypeAliasKind; struct TypeAliasDeclaration; struct Type; struct TranslationUnitXRefs; struct TranslationUnitTrace; struct TranslationUnitIncludeTree; struct Trace; enum class RefQualifier; struct RecordUnionLowerCase; struct RecordStructLowerCase; struct RecordDerived; struct RecordClassLowerCase; struct PpEntity; struct Parameter; struct Signature; struct PPDefineLocation; struct ObjcSelectorSlot; struct ObjcSelector; enum class ObjcPropertyKind; struct ObjcPropertyImplementation; struct ObjcPropertyIVar; struct ObjcMethodDefinition; struct ObjcMethodDeclarationName; struct ObjcInterfaceToImplementation; struct ObjcImplements; struct ObjcIVar; struct ObjcContainerInterfaceLowerCase; struct ObjcContainerInheritance; struct ObjcContainerDefinition; struct ObjcContainerDeclarationInterface; struct ObjcContainerBase; struct ObjcCategoryId; struct ObjcContainerId; struct ObjcContainerDeclaration; struct ObjcMethodDeclaration; struct ObjcPropertyDeclaration; struct ObjContainerIdName; struct NamespaceTarget; struct NamespaceQName; struct NamespaceLowerCase; struct NamespaceDefinition; struct NamespaceDeclarationName; struct NamespaceDeclarationByName; struct NamespaceDeclaration; struct NamespaceAliasDeclaration; struct Name; struct MethodSignature; struct MethodOverrides; struct MethodOverridden; struct MaybeIncludeTree; enum class LocalVariableKind; enum class LocalVariableAttribute; struct LocalVariable; struct IncludeTreeTranslationUnit; struct IncludeTreeParent; struct IncludeTree; struct IncludeTrace; struct PPEvent; struct PPTrace; enum class GlobalVariableKind; enum class GlobalVariableAttribute; struct GlobalVariable; struct FunctionLowerCase; struct FunctionDefinition; struct FunctionDeclarationNameString; struct FunctionDeclarationName; struct FunctionDeclaration; struct FunctionDeclAttribute; struct FunctionAttribute; struct From; struct FileXRefs; struct FilePPUseXRefs; struct FilePPUseTraceXRefs; struct FilePPTraceXRefs; struct Field; struct VariableKind; struct VariableDeclaration; struct EnumeratorLowerCase; struct EnumeratorInEnum; struct EnumeratorByName; struct Enumerator; struct EnumLowerCase; struct EnumDefinition; struct EnumDeclaration; struct DefinitionEntity; struct DefnInRecord; struct Declaration; struct DeclarationComment; struct DeclarationInTrace; struct DeclarationLocationName; struct DeclarationLocationNameSpan; struct DeclarationNameSpan; struct DeclarationSources; struct DeclarationSrcRange; struct DeclarationTargets; struct DeclarationToUSR; struct Declarations; struct DefToBaseDecl; struct MangledNameHashToDeclaration; struct Same; struct USRToDeclaration; struct XRefTarget; struct FixedXRef; struct FileXRefMap; struct SpellingXRef; struct TargetUses; struct ThriftToCxx; struct XRefIndirectTarget; struct XRefTargets; } // namespace Cxx1 namespace Symbolid { namespace Cxx { struct LookupNamespaceDeclaration; } // namespace Cxx } // namespace Symbolid namespace Cxx1 { struct DeclToFamily; struct DeclInRecord; struct DeclInObjcContainer; struct DeclFamilyOf; struct DeclFamily; struct CxxToThrift; struct Attribute; enum class Access; struct RecordBase; struct RecordDefinition; } // namespace Cxx1 namespace Csharp { enum class Variance; enum class UnityPackageType; struct UnityPackageToProject; struct UnityPackage; enum class UnityAssemblyType; struct UnityProjectSource; struct TypeParameter; struct SourceFileToProject; struct SolutionToProject; struct Solution; enum class RefKind; struct ProjectToSourceFile; struct ProjectToSolution; struct ProjectSource; struct Project; struct Namespace; struct NamedType; struct NameLowerCase; struct Name; enum class MethodKind; struct MethodInvocationExpression; struct MemberAccessExpression; struct MSBuildProjectSource; struct Location; struct MemberAccessLocation; struct MethodInvocationLocation; struct Implements; struct FunctionPointerType; struct FullName; enum class Accessibility; struct Class; struct Interface; struct Record; struct Struct; struct AType; struct ArrayType; struct Definition; struct DefinitionLocation; struct DefinitionLocationName; struct FileDefinitions; struct FileEntityXRefs; struct SearchByName; struct Field; struct Local; struct Method; struct ObjectCreationLocation; struct Parameter; struct PointerType; struct Property; struct TypeLocation; } // namespace Csharp namespace Codemarkup { namespace Yaml { struct YamlDataAvailable; } // namespace Yaml namespace Types { enum class Visibility; enum class SymbolKind; } // namespace Types } // namespace Codemarkup namespace Search { namespace Code { struct CxxNameLowerCase; struct FlowNameLowerCase; struct HackNameLowerCase; struct PythonNameLowerCase; } // namespace Code } // namespace Search namespace Codemarkup { namespace Types { struct SymbolInfo; struct RangeSpan; struct RangeSpanContains; struct Modifiers; enum class Modifier; struct Location; struct XRefLocation; } // namespace Types namespace Search { enum class SearchCase; } // namespace Search namespace Scip { struct LsifKindToKind; struct FileXLangSymbolRefs; } // namespace Scip namespace Python { struct NonImportPythonDeclarationKind; struct NonImportPythonDeclarationInfo; struct ConvertLabel; } // namespace Python namespace Pp { struct PpIncludeXRefLocations; } // namespace Pp namespace Lsif { struct LsifKindToKind; } // namespace Lsif namespace Hack { enum class RequiredRelation; struct HackInheritedEntities; struct HackEnumInheritedMembers; struct FromHackVisibility; } // namespace Hack namespace Flow { struct FlowDocumentationSpan; struct FlowDeclarationDocumentation; } // namespace Flow namespace Cxx { struct FromCxxVisibility; struct CxxFileEntityXMapVariableXRefDeclLocations; struct CxxDeclarationModifiers; struct CxxDeclVisibility; struct CxxDeclKind; struct CxxDeclInfo; struct CxxDataAvailable; } // namespace Cxx enum class SearchStyle; enum class RelationType; struct IndexedFile; struct EntityDataAvailable; } // namespace Codemarkup namespace Code { namespace Scip { struct Entity; } // namespace Scip } // namespace Code namespace Codemarkup { namespace Scip { struct EntityInfo; struct ScipEntityDocumentation; struct ScipEntityLocation; struct ScipEntityUses; struct ScipFileEntityXRefLocations; struct ScipResolveLocation; } // namespace Scip } // namespace Codemarkup namespace Code { namespace Python { struct Entity; } // namespace Python } // namespace Code namespace Codemarkup { namespace Python { struct PythonContainsChildEntity; struct PythonContainsParentEntity; struct PythonEntityComments; struct PythonEntityInfo; struct PythonEntityKind; struct PythonEntityLocation; struct PythonEntityModuleName; struct PythonEntityUses; struct PythonExtendsChildEntity; struct PythonExtendsParentEntity; struct PythonFileEntityXRefLocations; struct PythonModifiers; struct PythonResolveLocation; struct PythonVisibility; } // namespace Python } // namespace Codemarkup namespace Code { namespace Python { struct Annotations; } // namespace Python } // namespace Code namespace Codemarkup { namespace Python { struct PythonAnnotation; } // namespace Python } // namespace Codemarkup namespace Code { namespace Pp { struct Entity; } // namespace Pp } // namespace Code namespace Codemarkup { namespace Pp { struct PPEntityLocation; struct PpEntityInfo; struct PpEntityKind; struct PpEntityTraceXRefLocations; struct PpEntityUses; struct PpFileEntityXRefLocations; struct PpResolveLocation; struct PpResolveTraceLocation; } // namespace Pp } // namespace Codemarkup namespace Code { namespace Lsif { struct Entity; } // namespace Lsif } // namespace Code namespace Codemarkup { namespace Lsif { struct EntityInfo; struct LsifEntityLocation; struct LsifEntityModuleName; struct LsifEntityUses; struct LsifFileEntityXRefLocations; struct LsifResolveLocation; } // namespace Lsif } // namespace Codemarkup namespace Code { namespace Kotlin { struct Entity; } // namespace Kotlin } // namespace Code namespace Codemarkup { namespace Kotlin { struct KotlinContainsChildEntity; struct KotlinContainsParentEntity; struct KotlinEntityKind; struct KotlinEntityLocation; struct KotlinEntityUses; struct KotlinExtendsParentEntity; struct KotlinFileEntityXRefLocations; struct KotlinResolveLocation; } // namespace Kotlin } // namespace Codemarkup namespace Code { namespace Java { struct Entity; } // namespace Java } // namespace Code namespace Codemarkup { namespace Java { struct JavaContainsChildEntity; struct JavaContainsParentEntity; struct JavaEntityDocumentation; struct JavaEntityKind; struct JavaEntityLocation; struct JavaEntityUses; struct JavaExtendsChildEntity; struct JavaExtendsParentEntity; struct JavaModifiers; struct JavaResolveLocation; struct JavaVisibility; struct JavalFileEntityXRefLocations; } // namespace Java } // namespace Codemarkup namespace Code { namespace Java { struct Annotations; } // namespace Java } // namespace Code namespace Codemarkup { namespace Java { struct JavaAnnotation; } // namespace Java } // namespace Codemarkup namespace Code { namespace Hs { struct Entity; } // namespace Hs } // namespace Code namespace Codemarkup { namespace Haskell { struct HaskellContainsChildEntity; struct HaskellContainsParentEntity; struct HaskellEntityLocation; struct HaskellEntityUses; struct HaskellFileEntityXRefLocations; struct HaskellResolveLocation; } // namespace Haskell } // namespace Codemarkup namespace Search { namespace Hs { struct SearchByLowerCaseName; struct SearchByName; } // namespace Hs } // namespace Search namespace Code { namespace Hack { struct Entity; } // namespace Hack } // namespace Code namespace Codemarkup { namespace Hack { struct EntityHasHideFromDocsAttr; struct HackContainsChildEntity; struct HackContainsParentEntity; struct HackEntityDocumentation; struct HackEntityInfo; struct HackEntityKind; struct HackEntityLocation; struct HackEntityModuleName; struct HackEntitySource; struct HackEntityUses; struct HackExtendsChildEntity; struct HackExtendsParentEntity; struct HackExtendsParentEntityConcise; struct HackFileEntityXRefLocations; struct HackFileEntityXRefSpans; struct HackModifiers; struct HackRequiredConstraint; struct HackResolveLocation; struct HackVisibility; } // namespace Hack } // namespace Codemarkup namespace Code { namespace Hack { struct Annotations; } // namespace Hack } // namespace Code namespace Codemarkup { namespace Hack { struct HackAnnotation; } // namespace Hack } // namespace Codemarkup namespace Code { namespace Graphql { struct Entity; } // namespace Graphql } // namespace Code namespace Codemarkup { namespace Graphql { struct GraphQLEntityKind; struct GraphQLEntityLocation; struct GraphQLEntityUses; struct GraphQLFileEntityXRefLocations; struct GraphQLResolveLocation; } // namespace Graphql } // namespace Codemarkup namespace Code { namespace Flow { struct Entity; } // namespace Flow } // namespace Code namespace Codemarkup { namespace Flow { struct FlowContainsChildEntity; struct FlowContainsParentEntity; struct FlowEntityDocumentation; struct FlowEntityKind; struct FlowEntityLocation; struct FlowEntityModuleName; struct FlowEntityUses; struct FlowFileEntityXRefLocations; struct FlowFileImportDeclEntityXRefLocations; struct FlowFileReferenceEntityXRefLocations; struct FlowResolveLocation; } // namespace Flow } // namespace Codemarkup namespace Code { namespace Fbthrift { struct Entity; } // namespace Fbthrift } // namespace Code namespace Codemarkup { namespace Fbthrift { struct FbthriftEntityDocumentation; struct FbthriftEntityUses; struct ThriftContainsChildEntity; struct ThriftContainsParentEntity; struct ThriftEntityKind; struct ThriftEntityLocation; struct ThriftExtendsChildEntity; struct ThriftExtendsParentEntity; struct ThriftFileEntityXRefLocations; struct ThriftResolveLocation; } // namespace Fbthrift } // namespace Codemarkup namespace Code { namespace Fbthrift { struct Annotations; } // namespace Fbthrift namespace Erlang { struct Entity; } // namespace Erlang } // namespace Code namespace Codemarkup { namespace Erlang { struct ErlangEntityDocumentation; struct ErlangEntityInfo; struct ErlangEntityKind; struct ErlangEntityLocation; struct ErlangEntityUses; struct ErlangFileEntityXRefLocations; struct ErlangResolveLocation; } // namespace Erlang } // namespace Codemarkup namespace Search { namespace Erlang { struct SearchByFQN; struct SearchByName; } // namespace Erlang } // namespace Search namespace Code { namespace Dataswarm { struct Entity; } // namespace Dataswarm } // namespace Code namespace Codemarkup { namespace Dataswarm { struct DataswarmFileEntityXRefLocations; } // namespace Dataswarm } // namespace Codemarkup namespace Code { namespace Cxx { struct ObjcMethodEntity; struct ObjcSelectorSlotEntity; struct Definition; struct Entity; } // namespace Cxx } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxContainsChildEntity; struct CxxContainsParentEntity; struct CxxDeclToDefXRefTargetLocation; struct CxxDeclarationContainsChild; struct CxxDeclarationContainsParent; struct CxxDeclarationExtendsChild; struct CxxDeclarationExtendsParent; struct CxxDeclarationSource; struct CxxDefToDeclFamilyXRefTargetLocation; struct CxxEntityDocumentation; struct CxxEntityInfo; struct CxxEntityKind; struct CxxEntityLocation; struct CxxEntityMangledNameHash; struct CxxEntitySource; struct CxxEntityUSR; struct CxxEntityUses; struct CxxExtendsChildEntity; struct CxxExtendsParentEntity; struct CxxFileEntitySpellingXRefLocations; struct CxxFileEntityTraceDeclToDefXRefLocations; struct CxxFileEntityXMapFixedXRefLocations; struct CxxFileEntityXMapVariableXRefDeclToDefs; struct CxxFileEntityXRefLocations; struct CxxFindDefinitionOfEntity; struct CxxModifiers; struct CxxNamespaceDeclarationContainsChild; struct CxxResolveDeclarationToEntity; struct CxxResolveLocation; struct CxxResolveTraceLocation; struct CxxVisibility; struct CxxXRefTargetLocation; struct EntityToXRefTarget; struct SymbolToEntity; struct XRefTargetToEntity; } // namespace Cxx } // namespace Codemarkup namespace Glean { namespace Test { struct Entity; } // namespace Test } // namespace Glean namespace Search { namespace Code { struct CxxPreferDefinitions; } // namespace Code namespace Kind { namespace Cxx { struct SearchObjcInterface; } // namespace Cxx } // namespace Kind } // namespace Search namespace Symbolid { namespace Cxx { struct DefinitionOfDecl; struct LookupNamespaceDefinition; } // namespace Cxx } // namespace Symbolid namespace Codemarkup { namespace Cxx { struct CxxDefinitionContainsChild; struct CxxDefinitionContainsParent; struct CxxDefinitionExtendsChild; struct CxxDefinitionExtendsParent; struct CxxDefinitionModifiers; struct CxxDefnVisibility; struct CxxEntityDefinitionBase; } // namespace Cxx } // namespace Codemarkup namespace Search { namespace Cxx { struct DeclIsDefn; } // namespace Cxx } // namespace Search namespace Code { namespace Cxx { struct DeclToDef; struct Annotations; } // namespace Cxx } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxAnnotation; } // namespace Cxx } // namespace Codemarkup namespace Code { namespace Csharp { struct Entity; } // namespace Csharp } // namespace Code namespace Codemarkup { namespace Csharp { struct CSharpEntityKind; struct CSharpEntityLocation; struct CSharpEntityUses; struct CSharpFileEntityXRefLocations; struct CSharpResolveLocation; } // namespace Csharp } // namespace Codemarkup namespace Code { namespace Buck { struct Entity; } // namespace Buck } // namespace Code namespace Codemarkup { namespace Buck { struct BuckEntityKind; struct BuckEntityLocation; struct BuckEntityUses; struct BuckFileEntityXRefLocations; struct BuckResolveLocation; } // namespace Buck } // namespace Codemarkup namespace Search { namespace Buck { struct SearchByFQN; struct SearchDefinition; struct SearchFile; } // namespace Buck } // namespace Search namespace Code { struct SymbolId; enum class Language; struct EntityLanguageSCIP; struct EntityLanguageLSIF; struct Annotations; } // namespace Code namespace Cxx1 { struct FunctionName; struct RecordKind; struct RecordDeclaration; struct Scope; struct DeclarationScope; struct EnumDeclarationByName; struct FunctionDeclarationByNameScope; struct FunctionQName; struct QName; struct RecordDeclarationClass; struct RecordDeclarationStruct; struct RecordDeclarationUnion; struct TypeAliasDeclarationByName; struct VariableDeclarationNonLocalByName; } // namespace Cxx1 namespace Search { namespace Cxx { struct QueryToScopeCase; } // namespace Cxx namespace Kind { namespace Cxx { struct SearchClass; struct SearchEnum; struct SearchEnumerator; struct SearchFunction; struct SearchNamespace; struct SearchStruct; struct SearchTypeAlias; struct SearchUnion; struct SearchVariable; } // namespace Cxx } // namespace Kind } // namespace Search namespace Symbolid { namespace Cxx { struct LookupDeclaration; struct LookupDefinition; struct LookupEnumerator; struct LookupFunctionDeclaration; struct LookupFunctionDefinition; struct LookupFunctionSignatureDeclaration; struct LookupFunctionSignatureDefinition; struct LookupFunctionSignatureQualifierDeclaration; struct LookupFunctionSignatureQualifierDefinition; } // namespace Cxx } // namespace Symbolid namespace Fbthrift { struct ResultType; struct FunctionSpecification; } // namespace Fbthrift namespace Buck { struct XRefDestination; struct XRef; struct Type; struct TranslationUnit; struct TargetUses; struct TargetSourcesBaseModule; struct TargetSources; struct TargetOuts; struct TargetOut; struct TargetMode; struct TargetLocation; struct TargetLinkWhole; struct TargetIndexerName; struct TargetIndexer; struct TargetHash; struct TargetCallByCallExpr; struct TargetCall; struct TargetByType; struct TargetAttribute; struct Target; struct SourceFileLocation; struct SearchByLocalName; struct RuleKey; struct Platform; struct Owner; struct OutsTarget; struct OutputLabel; struct OutTarget; struct LocatorWithLabel; struct LocatorReverseDeps; struct LocatorReverseDep; struct Locator; struct LocalNameLowerCase; struct LocalName; struct Labels; struct Label; struct IndexerName; struct FileXRefs; struct FileToTarget; struct FileTarget; struct FileResolved; struct FileEntity; struct FileDefinition; struct File; struct FailureSources; enum class FailureReason; struct IndexFailureX; struct DestinationUses; struct Dependency; struct TargetDependencies; struct DefinitionLocation; struct Definition; struct Consumer; struct CallName; struct CallExpr; struct CallArgument; struct AttributeName; struct AttributeMapping; struct AttributeValue; struct ArgumentMapping; struct ArgumentValue; } // namespace Buck namespace Anglelang { struct TypeDecl; struct Name; struct Field; struct Type; struct EvolveDecl; enum class DeriveInfo; struct DerivingDecl; struct PredicateDecl; struct Declaration; struct DeclarationLocation; struct DeclarationToName; struct SchemaDecl; struct XRefTarget; struct TargetUses; struct XRef; struct FileXRefs; } // namespace Anglelang namespace Code { namespace Anglelang { struct Entity; } // namespace Anglelang struct Entity; struct Argument; struct CallArgument; } // namespace Code namespace Codemarkup { namespace Hack { struct ConvertCallArguments; struct ConvertMaybeCallArguments; } // namespace Hack namespace Python { struct ConvertCallArguments; struct PythonFileCall; } // namespace Python namespace Hack { struct ConvertArgument; } // namespace Hack namespace Python { struct ConvertArgument; } // namespace Python } // namespace Codemarkup namespace Code { struct EntityLanguage; struct IdlEntity; } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxEntityIdl; } // namespace Cxx namespace Hack { struct HackEntityIdl; } // namespace Hack namespace Yaml { struct YamlFileEntityXLangXRefLocations; } // namespace Yaml struct ChildEntity; struct ContainsChildEntity; struct ContainsParentEntity; struct EntityComments; struct EntityInfo; struct EntityIsDefinition; struct EntityKind; struct EntityLocation; struct EntityModifiers; struct EntityModuleName; struct EntityReferences; struct EntitySource; struct EntityToAnnotations; struct EntityUses; struct EntityVisibility; struct ExtendsChildEntity; struct ExtendsParentEntity; struct ExtendsParentEntityConcise; struct FileCall; struct FileEntityDigest; struct FileEntityInfos; struct FileEntityKinds; struct FileEntityLocations; struct FileEntityXRefInfos; struct FileEntityXRefKinds; struct FileEntityXRefLocations; struct FileEntityXRefRangeSpans; struct FindEntityDefinition; struct GeneratedEntityToIdlEntity; struct GenericEntity; struct FileXRefsGenericEntities; struct ParentEntity; struct SearchRelatedEntities; struct ReferencingEntity; struct ResolveLocation; struct SearchInheritedEntities; struct SymbolToEntity; namespace Cxx { struct CxxFileEntityIdl; struct CxxIdlEntityUses; } // namespace Cxx namespace Hack { struct ConvertCallee; struct ConvertCalleeForFileCall; struct ConvertStaticType; struct HackFileCall; struct HackIdlEntityUses; } // namespace Hack namespace Search { struct EntityLocationAndKind; struct SearchByName; struct SearchByScope; } // namespace Search } // namespace Codemarkup namespace Dyn { struct EntityUsage; } // namespace Dyn namespace Search { namespace Code { struct AngleSearchByLowerCaseName; struct AngleSearchByName; struct BuckSearchByLocalNameFact; struct BuckSearchByLowerCaseName; struct BuckSearchByName; struct CSharpSearchByLowerCaseName; struct CSharpSearchByName; struct CxxSearchByLowerCaseNameKindAndScopeFact; struct CxxSearchByLowerCaseScopeAndKind; struct CxxSearchByNameKindAndScopeFact; struct CxxSearchByScopeAndKind; struct ErlangSearchByLowerCaseName; struct ErlangSearchByName; struct FbthriftSearchByNameFact; struct FlowSearchByLowerCaseNameKindAndScopeFact; struct FlowSearchByLowerCaseScopeAndKind; struct FlowSearchByNameKindAndScopeFact; struct FlowSearchByScopeAndKind; struct GraphQLSearchByLowerCaseName; struct GraphQLSearchByName; struct HackSearchByLowerCaseNameAndKind; struct HackSearchByLowerCaseScopeAndKind; struct HackSearchByNameAndKind; struct HackSearchByNameKindWithNamespace; struct HackSearchByNameKindWithQName; struct HackSearchByScopeAndKind; struct HackSearchByScopeWithNameKinds; struct HsSearchByLowerCaseName; struct HsSearchByName; struct JavaSearchByLowerCaseName; struct JavaSearchByLowerCaseScope; struct JavaSearchByName; struct JavaSearchByNameWithFact; struct JavaSearchByScope; struct JavaSearchByScopeWithName; struct KotlinSearchByLowerCaseName; struct KotlinSearchByLowerCaseScope; struct KotlinSearchByName; struct KotlinSearchByNameWithFact; struct KotlinSearchByScope; struct KotlinSearchByScopeWithName; struct LsifSearchByLowerCaseName; struct LsifSearchByName; struct PpSearchByLowerCaseNameKind; struct PpSearchByNameKind; struct PythonSearchByLowerCaseNameKindAndScopeFact; struct PythonSearchByLowerCaseScopeAndKind; struct PythonSearchByNameKindAndScopeFact; struct PythonSearchByScopeAndKind; struct RustSearchByNameAndKind; struct SearchByLowerCaseNameAndLanguage; struct SearchByLowerCaseNameKindAndLanguage; struct SearchByLowerCaseScope; struct SearchByLowerCaseScopeAndKind; struct SearchByNameAndLanguage; struct SearchByNameKindAndLanguage; struct SearchByScope; struct SearchByScopeAndKind; struct ThriftSearchByLowerCaseName; struct ThriftSearchByName; } // namespace Code } // namespace Search namespace Codemarkup { namespace Anglelang { struct AngleEntityLocation; struct AngleEntityUses; struct AngleFileEntityXRefLocations; struct AngleResolveLocation; } // namespace Anglelang } // namespace Codemarkup namespace Search { namespace Anglelang { struct SearchByName; } // namespace Anglelang } // namespace Search namespace Sys { struct Blob : Predicate> { static const char* GLEAN_name() { return "sys.Blob"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Blob } // namespace Sys } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Src { struct RelByteSpan { uint64_t offset; uint64_t length; bool operator==(const RelByteSpan& other) const { return std::tie(offset,length) == std::tie(other.offset,other.length); } bool operator!=(const RelByteSpan& other) const { return std::tie(offset,length) != std::tie(other.offset,other.length); } bool operator<(const RelByteSpan& other) const { return std::tie(offset,length) < std::tie(other.offset,other.length); } bool operator<=(const RelByteSpan& other) const { return std::tie(offset,length) <= std::tie(other.offset,other.length); } bool operator>(const RelByteSpan& other) const { return std::tie(offset,length) > std::tie(other.offset,other.length); } bool operator>=(const RelByteSpan& other) const { return std::tie(offset,length) >= std::tie(other.offset,other.length); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(offset, length)); } }; // struct RelByteSpan } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Src { struct Range { Fact file; uint64_t lineBegin; uint64_t columnBegin; uint64_t lineEnd; uint64_t columnEnd; bool operator==(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) == std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator!=(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) != std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator<(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) < std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator<=(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) <= std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator>(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) > std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator>=(const Range& other) const { return std::tie(file,lineBegin,columnBegin,lineEnd,columnEnd) >= std::tie(other.file,other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(file, lineBegin, columnBegin, lineEnd, columnEnd)); } }; // struct Range struct RangeContains : Predicate> { static const char* GLEAN_name() { return "src.RangeContains"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct RangeContains } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Src { struct PackedByteSpansGroup { uint64_t length; std::vector offsets; bool operator==(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) == std::tie(other.length,other.offsets); } bool operator!=(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) != std::tie(other.length,other.offsets); } bool operator<(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) < std::tie(other.length,other.offsets); } bool operator<=(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) <= std::tie(other.length,other.offsets); } bool operator>(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) > std::tie(other.length,other.offsets); } bool operator>=(const PackedByteSpansGroup& other) const { return std::tie(length,offsets) >= std::tie(other.length,other.offsets); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(length, offsets)); } }; // struct PackedByteSpansGroup using PackedByteSpans = std::vector; } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Src { struct Loc { Fact file; uint64_t line; uint64_t column; bool operator==(const Loc& other) const { return std::tie(file,line,column) == std::tie(other.file,other.line,other.column); } bool operator!=(const Loc& other) const { return std::tie(file,line,column) != std::tie(other.file,other.line,other.column); } bool operator<(const Loc& other) const { return std::tie(file,line,column) < std::tie(other.file,other.line,other.column); } bool operator<=(const Loc& other) const { return std::tie(file,line,column) <= std::tie(other.file,other.line,other.column); } bool operator>(const Loc& other) const { return std::tie(file,line,column) > std::tie(other.file,other.line,other.column); } bool operator>=(const Loc& other) const { return std::tie(file,line,column) >= std::tie(other.file,other.line,other.column); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(file, line, column)); } }; // struct Loc } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Enum<11>; }; namespace schema { namespace Src { enum class Language { Buck, C, Cpp, Hack, Haskell, ObjC, ObjCpp, Python, Thrift, Java, GraphQL }; } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Src { enum class IndexFailureReason { CompileError, BuildSystemError, Unclassified, DiscoveryError }; struct IndexFailure : Predicate, IndexFailureReason, std::string>> { static const char* GLEAN_name() { return "src.IndexFailure"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct IndexFailure struct FileLines : Predicate, std::vector, bool, bool>> { static const char* GLEAN_name() { return "src.FileLines"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileLines struct FileLanguage : Predicate, Language>> { static const char* GLEAN_name() { return "src.FileLanguage"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileLanguage struct FileDigest : Predicate, std::string> { static const char* GLEAN_name() { return "src.FileDigest"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileDigest struct File : Predicate { static const char* GLEAN_name() { return "src.File"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct File } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Src { struct ByteSpan { uint64_t start; uint64_t length; bool operator==(const ByteSpan& other) const { return std::tie(start,length) == std::tie(other.start,other.length); } bool operator!=(const ByteSpan& other) const { return std::tie(start,length) != std::tie(other.start,other.length); } bool operator<(const ByteSpan& other) const { return std::tie(start,length) < std::tie(other.start,other.length); } bool operator<=(const ByteSpan& other) const { return std::tie(start,length) <= std::tie(other.start,other.length); } bool operator>(const ByteSpan& other) const { return std::tie(start,length) > std::tie(other.start,other.length); } bool operator>=(const ByteSpan& other) const { return std::tie(start,length) >= std::tie(other.start,other.length); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(start, length)); } }; // struct ByteSpan struct ByteSpanContains : Predicate> { static const char* GLEAN_name() { return "src.ByteSpanContains"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ByteSpanContains } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Src { struct FileLocation { Fact file; ByteSpan span; bool operator==(const FileLocation& other) const { return std::tie(file,span) == std::tie(other.file,other.span); } bool operator!=(const FileLocation& other) const { return std::tie(file,span) != std::tie(other.file,other.span); } bool operator<(const FileLocation& other) const { return std::tie(file,span) < std::tie(other.file,other.span); } bool operator<=(const FileLocation& other) const { return std::tie(file,span) <= std::tie(other.file,other.span); } bool operator>(const FileLocation& other) const { return std::tie(file,span) > std::tie(other.file,other.span); } bool operator>=(const FileLocation& other) const { return std::tie(file,span) >= std::tie(other.file,other.span); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(file, span)); } }; // struct FileLocation } // namespace Src } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Src { struct ByteRange { uint64_t begin; uint64_t end; bool operator==(const ByteRange& other) const { return std::tie(begin,end) == std::tie(other.begin,other.end); } bool operator!=(const ByteRange& other) const { return std::tie(begin,end) != std::tie(other.begin,other.end); } bool operator<(const ByteRange& other) const { return std::tie(begin,end) < std::tie(other.begin,other.end); } bool operator<=(const ByteRange& other) const { return std::tie(begin,end) <= std::tie(other.begin,other.end); } bool operator>(const ByteRange& other) const { return std::tie(begin,end) > std::tie(other.begin,other.end); } bool operator>=(const ByteRange& other) const { return std::tie(begin,end) >= std::tie(other.begin,other.end); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(begin, end)); } }; // struct ByteRange } // namespace Src namespace Search { namespace Python { struct QueryToScopeCase : Predicate, bool, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "search.python.QueryToScopeCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QueryToScopeCase struct PythonNameCase : Predicate>> { static const char* GLEAN_name() { return "search.python.PythonNameCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PythonNameCase } // namespace Python namespace Pp { struct SearchByName : Predicate, Fact>> { static const char* GLEAN_name() { return "search.pp.SearchByName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchByName } // namespace Pp namespace Java { struct QueryToScopeCase : Predicate, bool, Fact>> { static const char* GLEAN_name() { return "search.java.QueryToScopeCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QueryToScopeCase struct NameCase : Predicate>> { static const char* GLEAN_name() { return "search.java.NameCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameCase } // namespace Java namespace Hack { struct QueryToScopeCase : Predicate, bool, Fact, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "search.hack.QueryToScopeCase"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct QueryToScopeCase struct HackNameCase : Predicate>> { static const char* GLEAN_name() { return "search.hack.HackNameCase"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct HackNameCase struct HackInAutoImportedNamespace : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "search.hack.HackInAutoImportedNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct HackInAutoImportedNamespace } // namespace Hack namespace Flow { struct TypeDeclarationAsDeclaration : Predicate, Fact>> { static const char* GLEAN_name() { return "search.flow.TypeDeclarationAsDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeDeclarationAsDeclaration struct QueryToScopeCase : Predicate, bool, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "search.flow.QueryToScopeCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QueryToScopeCase struct FlowModuleNameCase : Predicate>> { static const char* GLEAN_name() { return "search.flow.FlowModuleNameCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FlowModuleNameCase } // namespace Flow namespace Cxx { struct QueryToQNameCase : Predicate, bool, Fact>> { static const char* GLEAN_name() { return "search.cxx.QueryToQNameCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct QueryToQNameCase struct QueryToNSQNameCase : Predicate, bool, Fact>> { static const char* GLEAN_name() { return "search.cxx.QueryToNSQNameCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct QueryToNSQNameCase struct CxxRecordCase : Predicate>> { static const char* GLEAN_name() { return "search.cxx.CxxRecordCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct CxxRecordCase struct CxxNamespaceCase : Predicate>> { static const char* GLEAN_name() { return "search.cxx.CxxNamespaceCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct CxxNamespaceCase } // namespace Cxx namespace Anglelang { struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "search.anglelang.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameLowerCase } // namespace Anglelang } // namespace Search } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Scip { enum class TextEncoding { UnspecifiedTextEncoding, UTF8, UTF16 }; struct SymbolName : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.SymbolName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SymbolName struct SymbolDocumentation : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.SymbolDocumentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SymbolDocumentation struct SymbolDisplayName : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.SymbolDisplayName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SymbolDisplayName struct Symbol : Predicate { static const char* GLEAN_name() { return "scip.Symbol"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Symbol } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Scip { struct SomeEntity { Fact defn; bool operator==(const SomeEntity& other) const { return std::tie(defn) == std::tie(other.defn); } bool operator!=(const SomeEntity& other) const { return std::tie(defn) != std::tie(other.defn); } bool operator<(const SomeEntity& other) const { return std::tie(defn) < std::tie(other.defn); } bool operator<=(const SomeEntity& other) const { return std::tie(defn) <= std::tie(other.defn); } bool operator>(const SomeEntity& other) const { return std::tie(defn) > std::tie(other.defn); } bool operator>=(const SomeEntity& other) const { return std::tie(defn) >= std::tie(other.defn); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(defn)); } }; // struct SomeEntity struct ReferenceTarget : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.ReferenceTarget"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ReferenceTarget struct Reference : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.Reference"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Reference } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Enum<1>; }; namespace schema { namespace Scip { enum class ProtocolVersion { UnspecifiedProtocolVersion }; } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Tuple, String>; }; namespace schema { namespace Scip { struct Location { Fact file; facebook::glean::cpp::schema::Src::Range location; std::string name; bool operator==(const Location& other) const { return std::tie(file,location,name) == std::tie(other.file,other.location,other.name); } bool operator!=(const Location& other) const { return std::tie(file,location,name) != std::tie(other.file,other.location,other.name); } bool operator<(const Location& other) const { return std::tie(file,location,name) < std::tie(other.file,other.location,other.name); } bool operator<=(const Location& other) const { return std::tie(file,location,name) <= std::tie(other.file,other.location,other.name); } bool operator>(const Location& other) const { return std::tie(file,location,name) > std::tie(other.file,other.location,other.name); } bool operator>=(const Location& other) const { return std::tie(file,location,name) >= std::tie(other.file,other.location,other.name); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(file, location, name)); } }; // struct Location struct LocalName : Predicate { static const char* GLEAN_name() { return "scip.LocalName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LocalName struct IsImplemented : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.IsImplemented"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct IsImplemented struct IsImplementation : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.IsImplementation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct IsImplementation } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Scip { struct Entity { boost::variant, Alt<1, SomeEntity>, Alt<2, SomeEntity>, Alt<3, SomeEntity>, Alt<4, SomeEntity>, Alt<5, SomeEntity>> GLEAN_value; static Entity rust(const SomeEntity& a) { return Entity{Alt<0, SomeEntity>(a)}; } static Entity go(const SomeEntity& a) { return Entity{Alt<1, SomeEntity>(a)}; } static Entity typescript(const SomeEntity& a) { return Entity{Alt<2, SomeEntity>(a)}; } static Entity java(const SomeEntity& a) { return Entity{Alt<3, SomeEntity>(a)}; } static Entity kotlin(const SomeEntity& a) { return Entity{Alt<4, SomeEntity>(a)}; } static Entity swift(const SomeEntity& a) { return Entity{Alt<5, SomeEntity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity struct EntityDefinition : Predicate>> { static const char* GLEAN_name() { return "scip.EntityDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityDefinition struct EntityLocation : Predicate> { static const char* GLEAN_name() { return "scip.EntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityLocation struct EntityUses : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "scip.EntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityUses struct FileEntityXRefLocation : Predicate, facebook::glean::cpp::schema::Src::Range, Location, Entity>> { static const char* GLEAN_name() { return "scip.FileEntityXRefLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileEntityXRefLocation struct ResolveLocation : Predicate> { static const char* GLEAN_name() { return "scip.ResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ResolveLocation struct SearchBySymbol : Predicate, Entity>> { static const char* GLEAN_name() { return "scip.SearchBySymbol"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchBySymbol struct Documentation : Predicate { static const char* GLEAN_name() { return "scip.Documentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Documentation struct DisplayNameSymbol : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.DisplayNameSymbol"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DisplayNameSymbol struct DisplayName : Predicate { static const char* GLEAN_name() { return "scip.DisplayName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DisplayName struct DefinitionUses : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.DefinitionUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionUses struct DefinitionName : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.DefinitionName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionName struct DefinitionDocumentation : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.DefinitionDocumentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionDocumentation struct Definition : Predicate, Fact>> { static const char* GLEAN_name() { return "scip.Definition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Definition } // namespace Scip namespace Python { namespace Branches { struct Root : Predicate { static const char* GLEAN_name() { return "python.branches.Root"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Root struct FileToRoot : Predicate, Fact>> { static const char* GLEAN_name() { return "python.branches.FileToRoot"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileToRoot struct DirectXRefByFile : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.branches.DirectXRefByFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DirectXRefByFile } // namespace Branches struct XRefsViaNameByTarget : Predicate, Fact, std::vector>> { static const char* GLEAN_name() { return "python.XRefsViaNameByTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct XRefsViaNameByTarget struct XRefsViaName : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.XRefsViaName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct XRefsViaName } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Python { struct XRefViaName { Fact target; facebook::glean::cpp::schema::Src::ByteSpan source; bool operator==(const XRefViaName& other) const { return std::tie(target,source) == std::tie(other.target,other.source); } bool operator!=(const XRefViaName& other) const { return std::tie(target,source) != std::tie(other.target,other.source); } bool operator<(const XRefViaName& other) const { return std::tie(target,source) < std::tie(other.target,other.source); } bool operator<=(const XRefViaName& other) const { return std::tie(target,source) <= std::tie(other.target,other.source); } bool operator>(const XRefViaName& other) const { return std::tie(target,source) > std::tie(other.target,other.source); } bool operator>=(const XRefViaName& other) const { return std::tie(target,source) >= std::tie(other.target,other.source); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source)); } }; // struct XRefViaName struct XRefsViaNameByFile : Predicate, std::vector>> { static const char* GLEAN_name() { return "python.XRefsViaNameByFile"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct XRefsViaNameByFile struct VariableDeclaration : Predicate>> { static const char* GLEAN_name() { return "python.VariableDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct VariableDeclaration struct VariableBySName : Predicate, Fact> { static const char* GLEAN_name() { return "python.VariableBySName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct VariableBySName } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple>>; }; namespace schema { namespace Python { struct TypeInfo { Fact displayType; std::vector xrefs; bool operator==(const TypeInfo& other) const { return std::tie(displayType,xrefs) == std::tie(other.displayType,other.xrefs); } bool operator!=(const TypeInfo& other) const { return std::tie(displayType,xrefs) != std::tie(other.displayType,other.xrefs); } bool operator<(const TypeInfo& other) const { return std::tie(displayType,xrefs) < std::tie(other.displayType,other.xrefs); } bool operator<=(const TypeInfo& other) const { return std::tie(displayType,xrefs) <= std::tie(other.displayType,other.xrefs); } bool operator>(const TypeInfo& other) const { return std::tie(displayType,xrefs) > std::tie(other.displayType,other.xrefs); } bool operator>=(const TypeInfo& other) const { return std::tie(displayType,xrefs) >= std::tie(other.displayType,other.xrefs); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(displayType, xrefs)); } }; // struct TypeInfo struct Type : Predicate { static const char* GLEAN_name() { return "python.Type"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Type struct StringLiteral : Predicate { static const char* GLEAN_name() { return "python.StringLiteral"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct StringLiteral struct SearchVariableByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchVariableByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchVariableByName struct SearchVariableByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchVariableByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchVariableByLowerCaseName struct SearchModuleByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchModuleByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchModuleByName struct SearchModuleByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchModuleByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchModuleByLowerCaseName struct SearchMethodByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchMethodByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchMethodByName struct SearchMethodByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchMethodByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchMethodByLowerCaseName struct SearchFunctionByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchFunctionByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchFunctionByName struct SearchFunctionByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchFunctionByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchFunctionByLowerCaseName struct SearchFieldByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchFieldByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchFieldByName struct SearchFieldByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchFieldByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchFieldByLowerCaseName struct SearchClassByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "python.SearchClassByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchClassByName struct SearchClassByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "python.SearchClassByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchClassByLowerCaseName struct SNameToName : Predicate, Fact> { static const char* GLEAN_name() { return "python.SNameToName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SNameToName struct SName : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "python.SName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SName struct ResolveOriginalName : Predicate, Fact>> { static const char* GLEAN_name() { return "python.ResolveOriginalName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ResolveOriginalName } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple>, Maybe>; }; namespace schema { namespace Python { struct Parameter { Fact name; boost::variant>, Alt<1, TypeInfo>> typeInfo; boost::variant>, Alt<1, std::string>> value; bool operator==(const Parameter& other) const { return std::tie(name,typeInfo,value) == std::tie(other.name,other.typeInfo,other.value); } bool operator!=(const Parameter& other) const { return std::tie(name,typeInfo,value) != std::tie(other.name,other.typeInfo,other.value); } bool operator<(const Parameter& other) const { return std::tie(name,typeInfo,value) < std::tie(other.name,other.typeInfo,other.value); } bool operator<=(const Parameter& other) const { return std::tie(name,typeInfo,value) <= std::tie(other.name,other.typeInfo,other.value); } bool operator>(const Parameter& other) const { return std::tie(name,typeInfo,value) > std::tie(other.name,other.typeInfo,other.value); } bool operator>=(const Parameter& other) const { return std::tie(name,typeInfo,value) >= std::tie(other.name,other.typeInfo,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, typeInfo, value)); } }; // struct Parameter struct NameToSName : Predicate, Fact> { static const char* GLEAN_name() { return "python.NameToSName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct NameToSName struct Name : Predicate { static const char* GLEAN_name() { return "python.Name"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Name struct ModuleDefinition : Predicate>> { static const char* GLEAN_name() { return "python.ModuleDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ModuleDefinition struct ModuleBySName : Predicate, Fact> { static const char* GLEAN_name() { return "python.ModuleBySName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ModuleBySName struct Module : Predicate>> { static const char* GLEAN_name() { return "python.Module"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Module struct MethodOverrides : Predicate, Fact>> { static const char* GLEAN_name() { return "python.MethodOverrides"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct MethodOverrides struct MethodOverriden : Predicate, Fact>> { static const char* GLEAN_name() { return "python.MethodOverriden"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct MethodOverriden struct MethodByLocalNameStr : Predicate, std::string, Fact>> { static const char* GLEAN_name() { return "python.MethodByLocalNameStr"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct MethodByLocalNameStr struct ImportStatementByAsSName : Predicate, Fact>> { static const char* GLEAN_name() { return "python.ImportStatementByAsSName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStatementByAsSName struct ImportStatementByAsName : Predicate, Fact>> { static const char* GLEAN_name() { return "python.ImportStatementByAsName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStatementByAsName struct ImportStatement : Predicate, Fact>> { static const char* GLEAN_name() { return "python.ImportStatement"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStatement struct ImportStarsByFile : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Fact>> { static const char* GLEAN_name() { return "python.ImportStarsByFile"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStarsByFile struct ImportStarStatement : Predicate, Fact>> { static const char* GLEAN_name() { return "python.ImportStarStatement"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStarStatement struct ImportStarLocation : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.ImportStarLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ImportStarLocation struct FunctionDeclaration : Predicate>> { static const char* GLEAN_name() { return "python.FunctionDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FunctionDeclaration struct FunctionBySName : Predicate, Fact> { static const char* GLEAN_name() { return "python.FunctionBySName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FunctionBySName struct DerivedClassToBase : Predicate, Fact>> { static const char* GLEAN_name() { return "python.DerivedClassToBase"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DerivedClassToBase } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Python { struct Definition { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static Definition cls(const Fact& a) { return Definition{Alt<0, Fact>(a)}; } static Definition func(const Fact& a) { return Definition{Alt<1, Fact>(a)}; } static Definition variable(const Fact& a) { return Definition{Alt<2, Fact>(a)}; } static Definition module(const Fact& a) { return Definition{Alt<3, Fact>(a)}; } bool operator==(const Definition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Definition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Definition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Definition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Definition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Definition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Definition struct DefinitionLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DefinitionLocation struct DefinitionsByFile : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Definition>> { static const char* GLEAN_name() { return "python.DefinitionsByFile"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DefinitionsByFile struct IsTopLevelDefinition : Predicate { static const char* GLEAN_name() { return "python.IsTopLevelDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct IsTopLevelDefinition using Decorator = std::string; } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Python { struct DeclarationContainer { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static DeclarationContainer module(const Fact& a) { return DeclarationContainer{Alt<0, Fact>(a)}; } static DeclarationContainer cls(const Fact& a) { return DeclarationContainer{Alt<1, Fact>(a)}; } static DeclarationContainer func(const Fact& a) { return DeclarationContainer{Alt<2, Fact>(a)}; } bool operator==(const DeclarationContainer& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const DeclarationContainer& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const DeclarationContainer& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const DeclarationContainer& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const DeclarationContainer& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const DeclarationContainer& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct DeclarationContainer struct FunctionDefinition : Predicate, bool, boost::variant>, Alt<1, TypeInfo>>, std::vector, boost::variant>, Alt<1, std::vector>>, boost::variant>, Alt<1, std::vector>>, boost::variant>, Alt<1, Parameter>>, boost::variant>, Alt<1, Parameter>>, boost::variant>, Alt<1, std::vector>>, boost::variant>, Alt<1, DeclarationContainer>>>> { static const char* GLEAN_name() { return "python.FunctionDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FunctionDefinition struct VariableDefinition : Predicate, boost::variant>, Alt<1, TypeInfo>>, boost::variant>, Alt<1, DeclarationContainer>>>> { static const char* GLEAN_name() { return "python.VariableDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct VariableDefinition } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Python { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>> GLEAN_value; static Declaration cls(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration func(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration variable(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration imp(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration module(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationDefinition : Predicate> { static const char* GLEAN_name() { return "python.DeclarationDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationDefinition struct DeclarationDocstring : Predicate> { static const char* GLEAN_name() { return "python.DeclarationDocstring"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationDocstring struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationLocation struct DeclarationReference : Predicate> { static const char* GLEAN_name() { return "python.DeclarationReference"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationReference struct DeclarationToName : Predicate> { static const char* GLEAN_name() { return "python.DeclarationToName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationToName struct DeclarationUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "python.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationUses struct DeclarationWithLocalName : Predicate, Declaration>> { static const char* GLEAN_name() { return "python.DeclarationWithLocalName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationWithLocalName struct DeclarationWithName : Predicate, Declaration>> { static const char* GLEAN_name() { return "python.DeclarationWithName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationWithName struct DeclarationWithSName : Predicate, Declaration>> { static const char* GLEAN_name() { return "python.DeclarationWithSName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationWithSName struct DeclarationsByFile : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Declaration>> { static const char* GLEAN_name() { return "python.DeclarationsByFile"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclarationsByFile struct DefinitionDeclaration : Predicate> { static const char* GLEAN_name() { return "python.DefinitionDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DefinitionDeclaration } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Python { struct DirectXRef { Declaration target; facebook::glean::cpp::schema::Src::ByteSpan source; bool operator==(const DirectXRef& other) const { return std::tie(target,source) == std::tie(other.target,other.source); } bool operator!=(const DirectXRef& other) const { return std::tie(target,source) != std::tie(other.target,other.source); } bool operator<(const DirectXRef& other) const { return std::tie(target,source) < std::tie(other.target,other.source); } bool operator<=(const DirectXRef& other) const { return std::tie(target,source) <= std::tie(other.target,other.source); } bool operator>(const DirectXRef& other) const { return std::tie(target,source) > std::tie(other.target,other.source); } bool operator>=(const DirectXRef& other) const { return std::tie(target,source) >= std::tie(other.target,other.source); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source)); } }; // struct DirectXRef struct DirectXRefsByFile : Predicate, DirectXRef>> { static const char* GLEAN_name() { return "python.DirectXRefsByFile"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DirectXRefsByFile struct IsAbstract : Predicate { static const char* GLEAN_name() { return "python.IsAbstract"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct IsAbstract struct IsTopLevelDeclaration : Predicate { static const char* GLEAN_name() { return "python.IsTopLevelDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct IsTopLevelDeclaration struct NonImportDeclaration : Predicate { static const char* GLEAN_name() { return "python.NonImportDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct NonImportDeclaration struct SNameWithDeclaration : Predicate>> { static const char* GLEAN_name() { return "python.SNameWithDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SNameWithDeclaration } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>>; }; namespace schema { namespace Yaml { struct XRefViaName { Fact target; facebook::glean::cpp::schema::Src::ByteSpan source; boost::variant>, Alt<1, facebook::glean::cpp::schema::Python::Declaration>> decl; bool operator==(const XRefViaName& other) const { return std::tie(target,source,decl) == std::tie(other.target,other.source,other.decl); } bool operator!=(const XRefViaName& other) const { return std::tie(target,source,decl) != std::tie(other.target,other.source,other.decl); } bool operator<(const XRefViaName& other) const { return std::tie(target,source,decl) < std::tie(other.target,other.source,other.decl); } bool operator<=(const XRefViaName& other) const { return std::tie(target,source,decl) <= std::tie(other.target,other.source,other.decl); } bool operator>(const XRefViaName& other) const { return std::tie(target,source,decl) > std::tie(other.target,other.source,other.decl); } bool operator>=(const XRefViaName& other) const { return std::tie(target,source,decl) >= std::tie(other.target,other.source,other.decl); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source, decl)); } }; // struct XRefViaName struct XRefsByFile : Predicate, std::vector>> { static const char* GLEAN_name() { return "yaml.XRefsByFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefsByFile } // namespace Yaml namespace Python { struct Contains : Predicate> { static const char* GLEAN_name() { return "python.Contains"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Contains struct ContainingTopLevelDeclaration : Predicate> { static const char* GLEAN_name() { return "python.ContainingTopLevelDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ContainingTopLevelDeclaration struct ContainedByTopLevelDeclaration : Predicate> { static const char* GLEAN_name() { return "python.ContainedByTopLevelDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ContainedByTopLevelDeclaration struct ContainedBy : Predicate> { static const char* GLEAN_name() { return "python.ContainedBy"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ContainedBy struct ClassDefinition : Predicate, boost::variant>, Alt<1, std::vector>>>, boost::variant>, Alt<1, std::vector>>, boost::variant>, Alt<1, std::vector>>, boost::variant>, Alt<1, DeclarationContainer>>>> { static const char* GLEAN_name() { return "python.ClassDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ClassDefinition struct ClassDeclaration : Predicate, boost::variant>, Alt<1, std::vector>>>>> { static const char* GLEAN_name() { return "python.ClassDeclaration"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ClassDeclaration struct ClassBySName : Predicate, Fact> { static const char* GLEAN_name() { return "python.ClassBySName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ClassBySName struct CalleeToCaller : Predicate, Fact>> { static const char* GLEAN_name() { return "python.CalleeToCaller"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CalleeToCaller struct BaseClassToDerived : Predicate, Fact>> { static const char* GLEAN_name() { return "python.BaseClassToDerived"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct BaseClassToDerived } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Python { struct Argument { boost::variant>> GLEAN_value; static Argument lit(const Fact& a) { return Argument{Alt<0, Fact>(a)}; } bool operator==(const Argument& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Argument& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Argument& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Argument& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Argument& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Argument& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Argument } // namespace Python } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, Maybe>>; }; namespace schema { namespace Python { struct CallArgument { boost::variant>, Alt<1, Fact>> label; facebook::glean::cpp::schema::Src::ByteSpan span; boost::variant>, Alt<1, Argument>> argument; bool operator==(const CallArgument& other) const { return std::tie(label,span,argument) == std::tie(other.label,other.span,other.argument); } bool operator!=(const CallArgument& other) const { return std::tie(label,span,argument) != std::tie(other.label,other.span,other.argument); } bool operator<(const CallArgument& other) const { return std::tie(label,span,argument) < std::tie(other.label,other.span,other.argument); } bool operator<=(const CallArgument& other) const { return std::tie(label,span,argument) <= std::tie(other.label,other.span,other.argument); } bool operator>(const CallArgument& other) const { return std::tie(label,span,argument) > std::tie(other.label,other.span,other.argument); } bool operator>=(const CallArgument& other) const { return std::tie(label,span,argument) >= std::tie(other.label,other.span,other.argument); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(label, span, argument)); } }; // struct CallArgument struct FileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::vector>> { static const char* GLEAN_name() { return "python.FileCall"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileCall } // namespace Python namespace Pp1 { struct Use : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Src::Loc>>, bool, facebook::glean::cpp::schema::Src::Range, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "pp1.Use"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Use struct Undef : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "pp1.Undef"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Undef struct Macro : Predicate { static const char* GLEAN_name() { return "pp1.Macro"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Macro struct Include : Predicate, facebook::glean::cpp::schema::Src::Range, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "pp1.Include"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Include struct DefineUse : Predicate, Fact>> { static const char* GLEAN_name() { return "pp1.DefineUse"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefineUse struct DefineLowerCase : Predicate>> { static const char* GLEAN_name() { return "pp1.DefineLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefineLowerCase struct Define : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "pp1.Define"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Define } // namespace Pp1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>; }; namespace schema { namespace Lsif { namespace Types { struct ToolInfo { std::string toolName; std::vector toolArgs; boost::variant>, Alt<1, std::string>> version; bool operator==(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) == std::tie(other.toolName,other.toolArgs,other.version); } bool operator!=(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) != std::tie(other.toolName,other.toolArgs,other.version); } bool operator<(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) < std::tie(other.toolName,other.toolArgs,other.version); } bool operator<=(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) <= std::tie(other.toolName,other.toolArgs,other.version); } bool operator>(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) > std::tie(other.toolName,other.toolArgs,other.version); } bool operator>=(const ToolInfo& other) const { return std::tie(toolName,toolArgs,version) >= std::tie(other.toolName,other.toolArgs,other.version); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(toolName, toolArgs, version)); } }; // struct ToolInfo } // namespace Types } // namespace Lsif namespace Scip { struct Metadata : Predicate>, Alt<1, facebook::glean::cpp::schema::Lsif::Types::ToolInfo>>, std::string, TextEncoding>> { static const char* GLEAN_name() { return "scip.Metadata"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Metadata } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Enum<27>; }; namespace schema { namespace Lsif { namespace Types { enum class SymbolKind { File, Module, Namespace, Package, Class_, Method, Property, Field, Constructor, Enum_, Interface, Function, Variable, Constant, String, Number, Boolean, Array_, Object_, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter, Unknown }; } // namespace Types } // namespace Lsif namespace Scip { struct EntityKind : Predicate> { static const char* GLEAN_name() { return "scip.EntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityKind struct SearchByNameKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>>, Entity>> { static const char* GLEAN_name() { return "scip.SearchByNameKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByNameKind struct SymbolKind : Predicate, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>> { static const char* GLEAN_name() { return "scip.SymbolKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SymbolKind } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Lsif { namespace Types { struct RangeSpan { uint64_t lineBegin; uint64_t columnBegin; uint64_t lineEnd; uint64_t columnEnd; bool operator==(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) == std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator!=(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) != std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator<(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) < std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator<=(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) <= std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator>(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) > std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } bool operator>=(const RangeSpan& other) const { return std::tie(lineBegin,columnBegin,lineEnd,columnEnd) >= std::tie(other.lineBegin,other.columnBegin,other.lineEnd,other.columnEnd); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(lineBegin, columnBegin, lineEnd, columnEnd)); } }; // struct RangeSpan struct ToSrcRange : Predicate, RangeSpan, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "lsif.types.ToSrcRange"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ToSrcRange } // namespace Types } // namespace Lsif namespace Scip { struct DefinitionLocation : Predicate, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact>> { static const char* GLEAN_name() { return "scip.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionLocation struct FileRange : Predicate, facebook::glean::cpp::schema::Lsif::Types::RangeSpan>> { static const char* GLEAN_name() { return "scip.FileRange"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileRange struct FileXLangSymbolRef : Predicate, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact>> { static const char* GLEAN_name() { return "scip.FileXLangSymbolRef"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileXLangSymbolRef struct ReferenceLocation : Predicate, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact>> { static const char* GLEAN_name() { return "scip.ReferenceLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ReferenceLocation } // namespace Scip } // namespace schema template<> struct Repr_ { using Type = Enum<59>; }; namespace schema { namespace Lsif { namespace Types { enum class LanguageId { ABAP, WindowsBat, BibTeX, Clojure, Coffeescript, C, Cpp, CSharp, CSS, Diff, Dart, Dockerfile, Elixir, Erlang, FSharp, Git, Go, Groovy, Handlebars, Haskell, HTML, Ini, Java, JavaScript, JavaScriptReact, JSON, LaTeX, Less, Lua, Makefile, Markdown, ObjectiveC, ObjectiveCpp, Perl, Perl6, PHP, Powershell, Pug, Python, R, Razor, Ruby, Rust, SCSS, Scala, ShaderLab, Shell, SQL, Swift, TypeScript, TypeScriptReact, TeX, VisualBasic, XML, XSL, YAML, UnknownLanguage, Kotlin, OCaml }; } // namespace Types } // namespace Lsif namespace Scip { struct FileLanguage : Predicate, facebook::glean::cpp::schema::Lsif::Types::LanguageId>> { static const char* GLEAN_name() { return "scip.FileLanguage"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileLanguage struct TagDefinition : Predicate, Entity>> { static const char* GLEAN_name() { return "scip.TagDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TagDefinition } // namespace Scip namespace Lsif { namespace Types { struct FromSrcRange : Predicate, RangeSpan>> { static const char* GLEAN_name() { return "lsif.types.FromSrcRange"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FromSrcRange } // namespace Types } // namespace Lsif } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Lsif { struct SomeEntity { boost::variant>, Alt<1, Fact>> GLEAN_value; static SomeEntity decl(const Fact& a) { return SomeEntity{Alt<0, Fact>(a)}; } static SomeEntity defn(const Fact& a) { return SomeEntity{Alt<1, Fact>(a)}; } bool operator==(const SomeEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const SomeEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const SomeEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const SomeEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const SomeEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const SomeEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct SomeEntity struct Reference : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "lsif.Reference"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Reference struct Range : Predicate>, Alt<1, facebook::glean::cpp::schema::Lsif::Types::RangeSpan>>, Fact>> { static const char* GLEAN_name() { return "lsif.Range"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Range struct ProjectDocument : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.ProjectDocument"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ProjectDocument struct Project : Predicate> { static const char* GLEAN_name() { return "lsif.Project"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Project struct PackageInformation : Predicate> { static const char* GLEAN_name() { return "lsif.PackageInformation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PackageInformation struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "lsif.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct NameLowerCase struct NameDefinition : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.NameDefinition"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct NameDefinition struct Name : Predicate { static const char* GLEAN_name() { return "lsif.Name"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Name struct MonikerSymbolKind : Predicate, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>> { static const char* GLEAN_name() { return "lsif.MonikerSymbolKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct MonikerSymbolKind struct MonikerScheme : Predicate { static const char* GLEAN_name() { return "lsif.MonikerScheme"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct MonikerScheme } // namespace Lsif } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Lsif { enum class MonikerKind { Export, Local, Import, Implementation }; struct MonikerId : Predicate { static const char* GLEAN_name() { return "lsif.MonikerId"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct MonikerId struct MonikerDefinition : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "lsif.MonikerDefinition"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct MonikerDefinition struct Moniker : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.Moniker"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Moniker struct Metadata : Predicate>, Alt<1, facebook::glean::cpp::schema::Lsif::Types::ToolInfo>>>> { static const char* GLEAN_name() { return "lsif.Metadata"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Metadata } // namespace Lsif } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Lsif { struct Location { std::string name; Fact file; facebook::glean::cpp::schema::Src::Range location; bool operator==(const Location& other) const { return std::tie(name,file,location) == std::tie(other.name,other.file,other.location); } bool operator!=(const Location& other) const { return std::tie(name,file,location) != std::tie(other.name,other.file,other.location); } bool operator<(const Location& other) const { return std::tie(name,file,location) < std::tie(other.name,other.file,other.location); } bool operator<=(const Location& other) const { return std::tie(name,file,location) <= std::tie(other.name,other.file,other.location); } bool operator>(const Location& other) const { return std::tie(name,file,location) > std::tie(other.name,other.file,other.location); } bool operator>=(const Location& other) const { return std::tie(name,file,location) >= std::tie(other.name,other.file,other.location); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, file, location)); } }; // struct Location struct HoverText : Predicate { static const char* GLEAN_name() { return "lsif.HoverText"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HoverText struct HoverContent : Predicate, facebook::glean::cpp::schema::Lsif::Types::LanguageId>> { static const char* GLEAN_name() { return "lsif.HoverContent"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HoverContent } // namespace Lsif } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Lsif { struct Entity { boost::variant, Alt<1, SomeEntity>, Alt<2, SomeEntity>, Alt<3, SomeEntity>, Alt<4, SomeEntity>, Alt<5, SomeEntity>, Alt<6, SomeEntity>, Alt<7, SomeEntity>, Alt<8, SomeEntity>, Alt<9, SomeEntity>, Alt<10, SomeEntity>, Alt<11, SomeEntity>> GLEAN_value; static Entity erlang(const SomeEntity& a) { return Entity{Alt<0, SomeEntity>(a)}; } static Entity fsharp(const SomeEntity& a) { return Entity{Alt<1, SomeEntity>(a)}; } static Entity go(const SomeEntity& a) { return Entity{Alt<2, SomeEntity>(a)}; } static Entity haskell(const SomeEntity& a) { return Entity{Alt<3, SomeEntity>(a)}; } static Entity java(const SomeEntity& a) { return Entity{Alt<4, SomeEntity>(a)}; } static Entity kotlin(const SomeEntity& a) { return Entity{Alt<5, SomeEntity>(a)}; } static Entity ocaml(const SomeEntity& a) { return Entity{Alt<6, SomeEntity>(a)}; } static Entity python(const SomeEntity& a) { return Entity{Alt<7, SomeEntity>(a)}; } static Entity rust(const SomeEntity& a) { return Entity{Alt<8, SomeEntity>(a)}; } static Entity scala(const SomeEntity& a) { return Entity{Alt<9, SomeEntity>(a)}; } static Entity swift(const SomeEntity& a) { return Entity{Alt<10, SomeEntity>(a)}; } static Entity typescript(const SomeEntity& a) { return Entity{Alt<11, SomeEntity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity struct EntityDefinition : Predicate>> { static const char* GLEAN_name() { return "lsif.EntityDefinition"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct EntityDefinition struct EntityKind : Predicate> { static const char* GLEAN_name() { return "lsif.EntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct EntityKind struct EntityLocation : Predicate> { static const char* GLEAN_name() { return "lsif.EntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct EntityLocation struct EntityUses : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "lsif.EntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct EntityUses struct FileEntityXRefLocation : Predicate, facebook::glean::cpp::schema::Src::Range, Location, Entity>> { static const char* GLEAN_name() { return "lsif.FileEntityXRefLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FileEntityXRefLocation struct ResolveLocation : Predicate> { static const char* GLEAN_name() { return "lsif.ResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ResolveLocation struct SearchByExactLocation : Predicate, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Entity>> { static const char* GLEAN_name() { return "lsif.SearchByExactLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchByExactLocation struct SearchByExactLocationAndName : Predicate, Fact, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Entity>> { static const char* GLEAN_name() { return "lsif.SearchByExactLocationAndName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchByExactLocationAndName struct SearchByMoniker : Predicate, Entity>> { static const char* GLEAN_name() { return "lsif.SearchByMoniker"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchByMoniker struct SearchByName : Predicate, Entity>> { static const char* GLEAN_name() { return "lsif.SearchByName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchByName struct SearchNonLocalByLocation : Predicate, Fact, Entity>> { static const char* GLEAN_name() { return "lsif.SearchNonLocalByLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct SearchNonLocalByLocation struct TagDefinition : Predicate, Entity>> { static const char* GLEAN_name() { return "lsif.TagDefinition"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct TagDefinition struct Document : Predicate, facebook::glean::cpp::schema::Lsif::Types::LanguageId>> { static const char* GLEAN_name() { return "lsif.Document"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Document struct DefinitionUse : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "lsif.DefinitionUse"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DefinitionUse struct DefinitionMoniker : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "lsif.DefinitionMoniker"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DefinitionMoniker struct DefinitionLocation : Predicate, Location>> { static const char* GLEAN_name() { return "lsif.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DefinitionLocation struct DefinitionKind : Predicate, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>> { static const char* GLEAN_name() { return "lsif.DefinitionKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DefinitionKind struct DefinitionHover : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.DefinitionHover"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DefinitionHover struct Definition : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.Definition"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Definition struct Declaration : Predicate, Fact>> { static const char* GLEAN_name() { return "lsif.Declaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Declaration } // namespace Lsif namespace Kotlin { namespace Alpha { struct VariableParent : Predicate, Fact>> { static const char* GLEAN_name() { return "kotlin.alpha.VariableParent"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct VariableParent struct VariableDeclaration : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "kotlin.alpha.VariableDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct VariableDeclaration struct TypeArg : Predicate>> { static const char* GLEAN_name() { return "kotlin.alpha.TypeArg"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct TypeArg struct Type : Predicate, boost::variant>, Alt<1, Fact>>, std::vector>, bool>> { static const char* GLEAN_name() { return "kotlin.alpha.Type"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct Type struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "kotlin.alpha.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DeclarationLocation } // namespace Alpha } // namespace Kotlin } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Kotlin { namespace Alpha { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static Declaration class_(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration method(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration variable(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationFileLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::string>> { static const char* GLEAN_name() { return "kotlin.alpha.DeclarationFileLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct DeclarationFileLocation struct ExtendsDeclaration : Predicate> { static const char* GLEAN_name() { return "kotlin.alpha.ExtendsDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ExtendsDeclaration struct FileDeclarations : Predicate, Declaration>> { static const char* GLEAN_name() { return "kotlin.alpha.FileDeclarations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FileDeclarations struct MethodDeclaration : Predicate, std::vector>, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Src::Loc, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Declaration>>>> { static const char* GLEAN_name() { return "kotlin.alpha.MethodDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct MethodDeclaration struct ParentDeclaration : Predicate> { static const char* GLEAN_name() { return "kotlin.alpha.ParentDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ParentDeclaration } // namespace Alpha } // namespace Kotlin namespace Search { namespace Kotlin { struct SearchByQName : Predicate, facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>> { static const char* GLEAN_name() { return "search.kotlin.SearchByQName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByQName } // namespace Kotlin } // namespace Search namespace Symbolid { namespace Kotlin { struct LookupDeclaration : Predicate, facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>> { static const char* GLEAN_name() { return "symbolid.kotlin.LookupDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupDeclaration struct LookupMethodDeclaration : Predicate, facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>> { static const char* GLEAN_name() { return "symbolid.kotlin.LookupMethodDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupMethodDeclaration } // namespace Kotlin } // namespace Symbolid namespace Kotlin { namespace Alpha { struct ContainsDeclaration : Predicate> { static const char* GLEAN_name() { return "kotlin.alpha.ContainsDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ContainsDeclaration struct ClassMember : Predicate, Fact>> { static const char* GLEAN_name() { return "kotlin.alpha.ClassMember"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ClassMember struct ClassDeclaration : Predicate, std::vector>, Fact>> { static const char* GLEAN_name() { return "kotlin.alpha.ClassDeclaration"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ClassDeclaration } // namespace Alpha } // namespace Kotlin namespace Javakotlin { namespace Alpha { struct Type : Predicate, Alt<1, Fact>, Alt<2, Fact>>> { static const char* GLEAN_name() { return "javakotlin.alpha.Type"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Type struct QName : Predicate, Fact>> { static const char* GLEAN_name() { return "javakotlin.alpha.QName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QName struct Path : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "javakotlin.alpha.Path"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Path struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "javakotlin.alpha.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameLowerCase struct Name : Predicate { static const char* GLEAN_name() { return "javakotlin.alpha.Name"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Name struct MethodName : Predicate, std::vector>>> { static const char* GLEAN_name() { return "javakotlin.alpha.MethodName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MethodName } // namespace Alpha } // namespace Javakotlin } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct XRefTarget { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static XRefTarget definition_(const Fact& a) { return XRefTarget{Alt<0, Fact>(a)}; } static XRefTarget ctor_(const Fact& a) { return XRefTarget{Alt<1, Fact>(a)}; } static XRefTarget method_(const Fact& a) { return XRefTarget{Alt<2, Fact>(a)}; } static XRefTarget field_(const Fact& a) { return XRefTarget{Alt<3, Fact>(a)}; } bool operator==(const XRefTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefTarget struct XRefFile : Predicate, Fact>> { static const char* GLEAN_name() { return "java.alpha.XRefFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefFile struct XRef : Predicate>> { static const char* GLEAN_name() { return "java.alpha.XRef"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRef } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct Wildcard { boost::variant>, Alt<1, Fact>, Alt<2, bool>> GLEAN_value; static Wildcard extends_(const Fact& a) { return Wildcard{Alt<0, Fact>(a)}; } static Wildcard super_(const Fact& a) { return Wildcard{Alt<1, Fact>(a)}; } static Wildcard unbounded(const bool& a) { return Wildcard{Alt<2, bool>(a)}; } bool operator==(const Wildcard& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Wildcard& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Wildcard& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Wildcard& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Wildcard& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Wildcard& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Wildcard struct TypeVar : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.TypeVar"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeVar struct TypeParam : Predicate, std::vector>, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.TypeParam"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeParam struct TypeOfTypeArgs : Predicate, Fact>> { static const char* GLEAN_name() { return "java.alpha.TypeOfTypeArgs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeOfTypeArgs struct TypeArg : Predicate>, Alt<1, Wildcard>>> { static const char* GLEAN_name() { return "java.alpha.TypeArg"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeArg struct PrimitiveType : Predicate> { static const char* GLEAN_name() { return "java.alpha.PrimitiveType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PrimitiveType struct PackageDeclaration : Predicate, std::vector>, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.PackageDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PackageDeclaration struct ObjectType : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ObjectType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ObjectType } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Enum<12>; }; namespace schema { namespace Java { namespace Alpha { enum class Modifier { abstract_, default_, final_, native_, private_, protected_, public_, static_, strictfp_, synchronized_, transient_, volatile_ }; struct ParameterDeclaration : Predicate, Fact, std::vector>, std::vector, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ParameterDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ParameterDeclaration struct InterfaceInheritance : Predicate, Fact>> { static const char* GLEAN_name() { return "java.alpha.InterfaceInheritance"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct InterfaceInheritance struct Inheritance : Predicate, Fact>> { static const char* GLEAN_name() { return "java.alpha.Inheritance"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Inheritance struct ImportDeclaration : Predicate, bool, boost::variant>, Alt<1, std::string>>, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ImportDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ImportDeclaration struct FileXRefs : Predicate, std::vector>>> { static const char* GLEAN_name() { return "java.alpha.FileXRefs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileXRefs } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct ExecutableDefinition { boost::variant>, Alt<1, Fact>> GLEAN_value; static ExecutableDefinition constructor(const Fact& a) { return ExecutableDefinition{Alt<0, Fact>(a)}; } static ExecutableDefinition method(const Fact& a) { return ExecutableDefinition{Alt<1, Fact>(a)}; } bool operator==(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ExecutableDefinition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ExecutableDefinition struct ExecutableDefnLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ExecutableDefnLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExecutableDefnLocation struct LocalDeclaration : Predicate, Fact, std::vector>, std::vector, ExecutableDefinition, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.LocalDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LocalDeclaration } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct Definition { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static Definition class_(const Fact& a) { return Definition{Alt<0, Fact>(a)}; } static Definition interface_(const Fact& a) { return Definition{Alt<1, Fact>(a)}; } static Definition enum_(const Fact& a) { return Definition{Alt<2, Fact>(a)}; } bool operator==(const Definition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Definition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Definition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Definition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Definition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Definition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Definition struct DefinitionLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionLocation struct EnumDeclaration : Predicate, std::vector>, std::vector, std::vector>, boost::variant>, Alt<1, Definition>>, facebook::glean::cpp::schema::Src::ByteSpan, Fact>> { static const char* GLEAN_name() { return "java.alpha.EnumDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EnumDeclaration struct FieldDeclaration : Predicate, Fact, std::vector>, std::vector, Definition, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.FieldDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FieldDeclaration struct InterfaceDeclaration : Predicate, std::vector>, std::vector, std::vector>, boost::variant>, Alt<1, Definition>>, std::vector>, facebook::glean::cpp::schema::Src::ByteSpan, Fact>> { static const char* GLEAN_name() { return "java.alpha.InterfaceDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct InterfaceDeclaration struct MethodDeclaration : Predicate, std::vector>, Fact, std::vector>, std::vector, std::vector>, std::vector>, Definition, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.MethodDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MethodDeclaration } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>> GLEAN_value; static Declaration param(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration local(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration field(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration ctor(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration method(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } static Declaration interface_(const Fact& a) { return Declaration{Alt<5, Fact>(a)}; } static Declaration class_(const Fact& a) { return Declaration{Alt<6, Fact>(a)}; } static Declaration enum_(const Fact& a) { return Declaration{Alt<7, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationAnnotations : Predicate>>> { static const char* GLEAN_name() { return "java.alpha.DeclarationAnnotations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationAnnotations struct DeclarationComment : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.DeclarationComment"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationComment struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationLocation struct DeclarationType : Predicate>> { static const char* GLEAN_name() { return "java.alpha.DeclarationType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationType struct DeclarationUses : Predicate, std::vector>> { static const char* GLEAN_name() { return "java.alpha.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationUses struct DeclarationXRefTarget : Predicate> { static const char* GLEAN_name() { return "java.alpha.DeclarationXRefTarget"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationXRefTarget struct ExtendedByDeclaration : Predicate> { static const char* GLEAN_name() { return "java.alpha.ExtendedByDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExtendedByDeclaration struct ExtendsDeclaration : Predicate> { static const char* GLEAN_name() { return "java.alpha.ExtendsDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExtendsDeclaration struct FileDeclarations : Predicate, Declaration>> { static const char* GLEAN_name() { return "java.alpha.FileDeclarations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileDeclarations struct ParentDeclaration : Predicate> { static const char* GLEAN_name() { return "java.alpha.ParentDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ParentDeclaration struct QNameToDefinition : Predicate, Declaration>> { static const char* GLEAN_name() { return "java.alpha.QNameToDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QNameToDefinition struct XRefOfType : Predicate, Declaration, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.XRefOfType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefOfType struct XRefTargetDeclaration : Predicate> { static const char* GLEAN_name() { return "java.alpha.XRefTargetDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefTargetDeclaration } // namespace Alpha } // namespace Java namespace Search { namespace Java { struct SearchByQName : Predicate, facebook::glean::cpp::schema::Java::Alpha::Declaration>> { static const char* GLEAN_name() { return "search.java.SearchByQName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByQName } // namespace Java } // namespace Search namespace Symbolid { namespace Java { struct LookupDeclaration : Predicate, facebook::glean::cpp::schema::Java::Alpha::Declaration>> { static const char* GLEAN_name() { return "symbolid.java.LookupDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupDeclaration struct LookupMethodDeclaration : Predicate, facebook::glean::cpp::schema::Java::Alpha::Declaration>> { static const char* GLEAN_name() { return "symbolid.java.LookupMethodDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupMethodDeclaration } // namespace Java } // namespace Symbolid namespace Java { namespace Alpha { struct DeclOfExecutableDefn : Predicate> { static const char* GLEAN_name() { return "java.alpha.DeclOfExecutableDefn"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclOfExecutableDefn struct DeclOfDefn : Predicate> { static const char* GLEAN_name() { return "java.alpha.DeclOfDefn"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclOfDefn struct ContainsDeclaration : Predicate> { static const char* GLEAN_name() { return "java.alpha.ContainsDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ContainsDeclaration struct ConstructorDeclaration : Predicate, std::vector>, std::vector>, std::vector, std::vector>, std::vector>, Definition, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ConstructorDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ConstructorDeclaration struct ClassDeclaration : Predicate, std::vector, boost::variant>, Alt<1, Fact>>, std::vector>, std::vector>, boost::variant>, Alt<1, Definition>>, std::vector>, facebook::glean::cpp::schema::Src::ByteSpan, Fact>> { static const char* GLEAN_name() { return "java.alpha.ClassDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ClassDeclaration } // namespace Alpha } // namespace Java } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Java { namespace Alpha { struct BaseType { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static BaseType object(const Fact& a) { return BaseType{Alt<0, Fact>(a)}; } static BaseType primitive(const Fact& a) { return BaseType{Alt<1, Fact>(a)}; } static BaseType variable(const Fact& a) { return BaseType{Alt<2, Fact>(a)}; } static BaseType array(const Fact& a) { return BaseType{Alt<3, Fact>(a)}; } bool operator==(const BaseType& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const BaseType& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const BaseType& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const BaseType& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const BaseType& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const BaseType& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct BaseType struct Type : Predicate>, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.Type"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Type struct ArrayType : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.ArrayType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ArrayType struct Annotation : Predicate, Fact, boost::variant>, Alt<1, std::string>>, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "java.alpha.Annotation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Annotation struct AnnotatedClass : Predicate, Fact>> { static const char* GLEAN_name() { return "java.alpha.AnnotatedClass"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct AnnotatedClass } // namespace Alpha } // namespace Java namespace Indexer { struct Config : Predicate { static const char* GLEAN_name() { return "indexer.Config"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Config } // namespace Indexer namespace Hs { struct ValBind : Predicate, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hs.ValBind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ValBind struct UnitName : Predicate { static const char* GLEAN_name() { return "hs.UnitName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct UnitName struct TypeSynDecl : Predicate>> { static const char* GLEAN_name() { return "hs.TypeSynDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeSynDecl struct TypeFamilyDecl : Predicate>> { static const char* GLEAN_name() { return "hs.TypeFamilyDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeFamilyDecl } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Hs { struct TypeArg { bool visible; Fact ty; bool operator==(const TypeArg& other) const { return std::tie(visible,ty) == std::tie(other.visible,other.ty); } bool operator!=(const TypeArg& other) const { return std::tie(visible,ty) != std::tie(other.visible,other.ty); } bool operator<(const TypeArg& other) const { return std::tie(visible,ty) < std::tie(other.visible,other.ty); } bool operator<=(const TypeArg& other) const { return std::tie(visible,ty) <= std::tie(other.visible,other.ty); } bool operator>(const TypeArg& other) const { return std::tie(visible,ty) > std::tie(other.visible,other.ty); } bool operator>=(const TypeArg& other) const { return std::tie(visible,ty) >= std::tie(other.visible,other.ty); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(visible, ty)); } }; // struct TypeArg struct TyVarBind : Predicate>> { static const char* GLEAN_name() { return "hs.TyVarBind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TyVarBind using TyVar = std::string; } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Hs { enum class TupleSort { boxed, unboxed, constraint }; } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Sum, Tuple>, Tuple, Tuple<>>; }; namespace schema { namespace Hs { struct TyConSort { boost::variant>, Alt<1, std::tuple>, Alt<2, std::tuple>, Alt<3, std::tuple<>>> GLEAN_value; static TyConSort normal() { return TyConSort{Alt<0, std::tuple<>>(std::make_tuple())}; } static TyConSort tuple(const uint64_t& arity, const TupleSort& sort) { return TyConSort{Alt<1, std::tuple>(std::make_tuple(arity, sort))}; } static TyConSort sum(const uint64_t& arity) { return TyConSort{Alt<2, std::tuple>(std::make_tuple(arity))}; } static TyConSort equality() { return TyConSort{Alt<3, std::tuple<>>(std::make_tuple())}; } bool operator==(const TyConSort& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const TyConSort& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const TyConSort& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const TyConSort& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const TyConSort& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const TyConSort& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct TyConSort struct TyCon : Predicate, TyConSort, bool>> { static const char* GLEAN_name() { return "hs.TyCon"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TyCon } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Hs { enum class Specificity { inferred, specified }; struct SourceModule : Predicate, Fact>> { static const char* GLEAN_name() { return "hs.SourceModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SourceModule struct SigDecl : Predicate, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "hs.SigDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SigDecl } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Hs { struct RefTarget { boost::variant>, Alt<1, Fact>> GLEAN_value; static RefTarget name(const Fact& a) { return RefTarget{Alt<0, Fact>(a)}; } static RefTarget modName(const Fact& a) { return RefTarget{Alt<1, Fact>(a)}; } bool operator==(const RefTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const RefTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const RefTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const RefTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const RefTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const RefTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct RefTarget } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Enum<5>; }; namespace schema { namespace Hs { enum class RefKind { importref, exportref, coderef, tydecl, instbind }; } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Hs { struct RefSpan { RefKind kind; facebook::glean::cpp::schema::Src::ByteSpan span; bool operator==(const RefSpan& other) const { return std::tie(kind,span) == std::tie(other.kind,other.span); } bool operator!=(const RefSpan& other) const { return std::tie(kind,span) != std::tie(other.kind,other.span); } bool operator<(const RefSpan& other) const { return std::tie(kind,span) < std::tie(other.kind,other.span); } bool operator<=(const RefSpan& other) const { return std::tie(kind,span) <= std::tie(other.kind,other.span); } bool operator>(const RefSpan& other) const { return std::tie(kind,span) > std::tie(other.kind,other.span); } bool operator>=(const RefSpan& other) const { return std::tie(kind,span) >= std::tie(other.kind,other.span); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(kind, span)); } }; // struct RefSpan struct XRef : Predicate, std::vector>> { static const char* GLEAN_name() { return "hs.XRef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct XRef struct RecordFieldDecl : Predicate, Fact>> { static const char* GLEAN_name() { return "hs.RecordFieldDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct RecordFieldDecl struct PatSynDecl : Predicate>> { static const char* GLEAN_name() { return "hs.PatSynDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PatSynDecl struct PatBind : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hs.PatBind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PatBind struct OccNameLowerCase : Predicate>> { static const char* GLEAN_name() { return "hs.OccNameLowerCase"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct OccNameLowerCase } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Hs { enum class Namespace { var_, datacon, tyvar, tycon }; struct OccName : Predicate> { static const char* GLEAN_name() { return "hs.OccName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct OccName } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Sum, Repr>; }; namespace schema { namespace Hs { struct NameSort { boost::variant>, Alt<1, facebook::glean::cpp::schema::Src::ByteSpan>> GLEAN_value; static NameSort external() { return NameSort{Alt<0, std::tuple<>>(std::make_tuple())}; } static NameSort internal(const facebook::glean::cpp::schema::Src::ByteSpan& a) { return NameSort{Alt<1, facebook::glean::cpp::schema::Src::ByteSpan>(a)}; } bool operator==(const NameSort& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const NameSort& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const NameSort& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const NameSort& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const NameSort& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const NameSort& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct NameSort struct Name : Predicate, Fact, NameSort>> { static const char* GLEAN_name() { return "hs.Name"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Name struct ModuleSource : Predicate, Fact>> { static const char* GLEAN_name() { return "hs.ModuleSource"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleSource struct ModuleName : Predicate { static const char* GLEAN_name() { return "hs.ModuleName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleName struct ModuleDeclarations : Predicate, std::set>, std::set>>> { static const char* GLEAN_name() { return "hs.ModuleDeclarations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleDeclarations struct Module : Predicate, Fact>> { static const char* GLEAN_name() { return "hs.Module"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Module struct MethDecl : Predicate, Fact>> { static const char* GLEAN_name() { return "hs.MethDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct MethDecl struct LitType : Predicate, Alt<1, std::string>, Alt<2, uint64_t>>> { static const char* GLEAN_name() { return "hs.LitType"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LitType struct InstanceDecl : Predicate>, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "hs.InstanceDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InstanceDecl struct InstanceBindToDecl : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hs.InstanceBindToDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InstanceBindToDecl struct InstanceBind : Predicate, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "hs.InstanceBind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InstanceBind struct FileXRefs : Predicate, std::vector>>> { static const char* GLEAN_name() { return "hs.FileXRefs"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileXRefs struct DeclarationLocation : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "hs.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationLocation } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Hs { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>, Alt<8, Fact>, Alt<9, Fact>, Alt<10, Fact>, Alt<11, Fact>, Alt<12, Fact>> GLEAN_value; static Declaration val(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration typeFamily(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration type_(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration data(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration con(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } static Declaration patSyn(const Fact& a) { return Declaration{Alt<5, Fact>(a)}; } static Declaration class_(const Fact& a) { return Declaration{Alt<6, Fact>(a)}; } static Declaration method(const Fact& a) { return Declaration{Alt<7, Fact>(a)}; } static Declaration instance(const Fact& a) { return Declaration{Alt<8, Fact>(a)}; } static Declaration patBind(const Fact& a) { return Declaration{Alt<9, Fact>(a)}; } static Declaration tyVarBind(const Fact& a) { return Declaration{Alt<10, Fact>(a)}; } static Declaration field(const Fact& a) { return Declaration{Alt<11, Fact>(a)}; } static Declaration sig(const Fact& a) { return Declaration{Alt<12, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationOfName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hs.DeclarationOfName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationOfName struct DeclarationSpan : Predicate> { static const char* GLEAN_name() { return "hs.DeclarationSpan"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationSpan struct DataDecl : Predicate, std::vector>>> { static const char* GLEAN_name() { return "hs.DataDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DataDecl struct ConstrDecl : Predicate, Fact, std::vector>>> { static const char* GLEAN_name() { return "hs.ConstrDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ConstrDecl struct ClassDecl : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "hs.ClassDecl"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ClassDecl } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Sum, Tuple<>>; }; namespace schema { namespace Hs { struct ArgFlag { boost::variant, Alt<1, std::tuple<>>> GLEAN_value; static ArgFlag invisible(const Specificity& a) { return ArgFlag{Alt<0, Specificity>(a)}; } static ArgFlag requird() { return ArgFlag{Alt<1, std::tuple<>>(std::make_tuple())}; } bool operator==(const ArgFlag& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ArgFlag& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ArgFlag& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ArgFlag& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ArgFlag& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ArgFlag& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ArgFlag struct Type : Predicate, Alt<1, std::tuple, std::vector>>, Alt<2, std::tuple, std::vector>>, Alt<3, std::tuple, ArgFlag, Fact>>, Alt<4, std::tuple, Fact, Fact>>, Alt<5, std::tuple, Fact>>, Alt<6, Fact>, Alt<7, Fact>, Alt<8, std::tuple<>>>> { static const char* GLEAN_name() { return "hs.Type"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Type } // namespace Hs } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Hack { enum class Visibility { Private, Protected, Public, Internal }; } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Hack { enum class Variance { Contravariant, Covariant, Invariant }; struct UserAttribute : Predicate, std::vector, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.UserAttribute"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct UserAttribute struct TypedefDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.TypedefDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TypedefDeclaration } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Hack { enum class TypeConstKind { Abstract, Concrete, PartiallyAbstract }; struct TypeConstDefinition : Predicate, boost::variant>, Alt<1, Fact>>, TypeConstKind, std::vector>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.TypeConstDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TypeConstDefinition struct Type : Predicate { static const char* GLEAN_name() { return "hack.Type"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Type struct TraitDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.TraitDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TraitDeclaration struct StringLiteral : Predicate { static const char* GLEAN_name() { return "hack.StringLiteral"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StringLiteral struct SearchTypedefByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchTypedefByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTypedefByLowerCaseName struct SearchTypeConstByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchTypeConstByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTypeConstByLowerCaseName struct SearchTraitByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchTraitByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTraitByLowerCaseName struct SearchPropertyByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchPropertyByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchPropertyByLowerCaseName struct SearchNamespaceByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchNamespaceByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchNamespaceByLowerCaseName struct SearchModuleByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchModuleByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchModuleByLowerCaseName struct SearchMethodByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchMethodByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchMethodByLowerCaseName struct SearchInterfaceByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchInterfaceByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchInterfaceByLowerCaseName struct SearchGlobalConstByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchGlobalConstByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchGlobalConstByLowerCaseName struct SearchFunctionByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchFunctionByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchFunctionByLowerCaseName struct SearchEnumeratorByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchEnumeratorByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchEnumeratorByLowerCaseName struct SearchEnumByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchEnumByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchEnumByLowerCaseName struct SearchClassConstByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchClassConstByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchClassConstByLowerCaseName struct SearchClassByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "hack.SearchClassByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchClassByLowerCaseName } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Hack { enum class ReifyKind { Erased, Reified, SoftReified }; } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Enum<1>; }; namespace schema { namespace Hack { enum class ReadonlyKind { Readonly }; struct QName : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.QName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct QName struct PropertyDefinition : Predicate, boost::variant>, Alt<1, Fact>>, Visibility, bool, bool, bool, std::vector>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.PropertyDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct PropertyDefinition } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple, Bool, Bool, Maybe, Array, Maybe, Maybe>>; }; namespace schema { namespace Hack { struct Parameter { Fact name; boost::variant>, Alt<1, Fact>> type; bool isInout; bool isVariadic; boost::variant>, Alt<1, std::string>> defaultValue; std::vector> attributes; boost::variant>, Alt<1, Fact>> typeInfo; boost::variant>, Alt<1, ReadonlyKind>> readonly; bool operator==(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) == std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } bool operator!=(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) != std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } bool operator<(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) < std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } bool operator<=(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) <= std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } bool operator>(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) > std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } bool operator>=(const Parameter& other) const { return std::tie(name,type,isInout,isVariadic,defaultValue,attributes,typeInfo,readonly) >= std::tie(other.name,other.type,other.isInout,other.isVariadic,other.defaultValue,other.attributes,other.typeInfo,other.readonly); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, type, isInout, isVariadic, defaultValue, attributes, typeInfo, readonly)); } }; // struct Parameter struct Signature : Predicate>, Alt<1, Fact>>, std::vector, boost::variant>, Alt<1, std::vector>>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.Signature"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Signature } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Hack { struct Occurrence { boost::variant>> GLEAN_value; static Occurrence method(const Fact& a) { return Occurrence{Alt<0, Fact>(a)}; } bool operator==(const Occurrence& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Occurrence& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Occurrence& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Occurrence& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Occurrence& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Occurrence& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Occurrence struct NamespaceQName : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.NamespaceQName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct NamespaceQName struct NamespaceDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.NamespaceDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct NamespaceDeclaration struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "hack.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct NameLowerCase struct Name : Predicate { static const char* GLEAN_name() { return "hack.Name"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Name } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Hack { struct ModuleMembership { Fact declaration; bool internal; bool operator==(const ModuleMembership& other) const { return std::tie(declaration,internal) == std::tie(other.declaration,other.internal); } bool operator!=(const ModuleMembership& other) const { return std::tie(declaration,internal) != std::tie(other.declaration,other.internal); } bool operator<(const ModuleMembership& other) const { return std::tie(declaration,internal) < std::tie(other.declaration,other.internal); } bool operator<=(const ModuleMembership& other) const { return std::tie(declaration,internal) <= std::tie(other.declaration,other.internal); } bool operator>(const ModuleMembership& other) const { return std::tie(declaration,internal) > std::tie(other.declaration,other.internal); } bool operator>=(const ModuleMembership& other) const { return std::tie(declaration,internal) >= std::tie(other.declaration,other.internal); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(declaration, internal)); } }; // struct ModuleMembership struct ModuleDefinition : Predicate, std::vector>>> { static const char* GLEAN_name() { return "hack.ModuleDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ModuleDefinition struct ModuleDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.ModuleDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ModuleDeclaration struct MethodOverrides : Predicate, Fact, boost::variant>, Alt<1, bool>>>> { static const char* GLEAN_name() { return "hack.MethodOverrides"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MethodOverrides struct MethodOverridden : Predicate, Fact, boost::variant>, Alt<1, bool>>>> { static const char* GLEAN_name() { return "hack.MethodOverridden"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MethodOverridden struct MethodOccurrence : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.MethodOccurrence"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MethodOccurrence struct InterfaceDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.InterfaceDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct InterfaceDeclaration struct IndexerInputsHash : Predicate> { static const char* GLEAN_name() { return "hack.IndexerInputsHash"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct IndexerInputsHash struct GlobalNamespaceAlias : Predicate, Fact>> { static const char* GLEAN_name() { return "hack.GlobalNamespaceAlias"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct GlobalNamespaceAlias struct GlobalConstDefinition : Predicate, boost::variant>, Alt<1, Fact>>, std::string, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.GlobalConstDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct GlobalConstDefinition struct GlobalConstDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.GlobalConstDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct GlobalConstDeclaration struct FunctionDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.FunctionDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FunctionDeclaration } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Hack { struct FieldClassConst { Fact container; Fact name; bool operator==(const FieldClassConst& other) const { return std::tie(container,name) == std::tie(other.container,other.name); } bool operator!=(const FieldClassConst& other) const { return std::tie(container,name) != std::tie(other.container,other.name); } bool operator<(const FieldClassConst& other) const { return std::tie(container,name) < std::tie(other.container,other.name); } bool operator<=(const FieldClassConst& other) const { return std::tie(container,name) <= std::tie(other.container,other.name); } bool operator>(const FieldClassConst& other) const { return std::tie(container,name) > std::tie(other.container,other.name); } bool operator>=(const FieldClassConst& other) const { return std::tie(container,name) >= std::tie(other.container,other.name); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(container, name)); } }; // struct FieldClassConst } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple>, facebook::glean::cpp::schema::Hack::Hint, Bool>; }; namespace schema { namespace Hack { struct ShapeKV { boost::variant, Alt<1, std::string>, Alt<2, FieldClassConst>> key; Fact value; bool opt; bool operator==(const ShapeKV& other) const { return std::tie(key,value,opt) == std::tie(other.key,other.value,other.opt); } bool operator!=(const ShapeKV& other) const { return std::tie(key,value,opt) != std::tie(other.key,other.value,other.opt); } bool operator<(const ShapeKV& other) const { return std::tie(key,value,opt) < std::tie(other.key,other.value,other.opt); } bool operator<=(const ShapeKV& other) const { return std::tie(key,value,opt) <= std::tie(other.key,other.value,other.opt); } bool operator>(const ShapeKV& other) const { return std::tie(key,value,opt) > std::tie(other.key,other.value,other.opt); } bool operator>=(const ShapeKV& other) const { return std::tie(key,value,opt) >= std::tie(other.key,other.value,other.opt); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(key, value, opt)); } }; // struct ShapeKV struct Hint : Predicate, std::vector>>>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, std::tuple>, std::vector>, boost::variant>, Alt<1, Fact>>>>, Alt<4, Fact>, Alt<5, std::tuple>>, Alt<6, Fact>, Alt<7, std::vector>>, Alt<8, std::vector>>, Alt<9, std::tuple>, Alt<1, Fact>>, Fact>>, Alt<10, Fact>, Alt<11, std::string>, Alt<12, std::string>, Alt<13, std::tuple<>>, Alt<14, std::tuple<>>, Alt<15, std::tuple<>>, Alt<16, std::tuple<>>, Alt<17, std::tuple<>>, Alt<18, std::tuple<>>, Alt<19, Fact>>> { static const char* GLEAN_name() { return "hack.Hint"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Hint struct Enumerator : Predicate, Fact>> { static const char* GLEAN_name() { return "hack.Enumerator"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Enumerator struct EnumDefinition : Predicate, Fact, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, std::vector>, std::vector>, std::vector>, bool, boost::variant>, Alt<1, ModuleMembership>>>> { static const char* GLEAN_name() { return "hack.EnumDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EnumDefinition struct EnumDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.EnumDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EnumDeclaration } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Hack { struct Definition { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>, Alt<8, Fact>, Alt<9, Fact>, Alt<10, Fact>, Alt<11, Fact>> GLEAN_value; static Definition class_(const Fact& a) { return Definition{Alt<0, Fact>(a)}; } static Definition classConst(const Fact& a) { return Definition{Alt<1, Fact>(a)}; } static Definition enum_(const Fact& a) { return Definition{Alt<2, Fact>(a)}; } static Definition function_(const Fact& a) { return Definition{Alt<3, Fact>(a)}; } static Definition globalConst(const Fact& a) { return Definition{Alt<4, Fact>(a)}; } static Definition interface_(const Fact& a) { return Definition{Alt<5, Fact>(a)}; } static Definition trait(const Fact& a) { return Definition{Alt<6, Fact>(a)}; } static Definition method(const Fact& a) { return Definition{Alt<7, Fact>(a)}; } static Definition property_(const Fact& a) { return Definition{Alt<8, Fact>(a)}; } static Definition typeConst(const Fact& a) { return Definition{Alt<9, Fact>(a)}; } static Definition typedef_(const Fact& a) { return Definition{Alt<10, Fact>(a)}; } static Definition module(const Fact& a) { return Definition{Alt<11, Fact>(a)}; } bool operator==(const Definition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Definition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Definition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Definition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Definition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Definition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Definition struct Context_ : Predicate { static const char* GLEAN_name() { return "hack.Context_"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Context_ } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Hack { struct ContainerDeclaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static ContainerDeclaration class_(const Fact& a) { return ContainerDeclaration{Alt<0, Fact>(a)}; } static ContainerDeclaration enum_(const Fact& a) { return ContainerDeclaration{Alt<1, Fact>(a)}; } static ContainerDeclaration interface_(const Fact& a) { return ContainerDeclaration{Alt<2, Fact>(a)}; } static ContainerDeclaration trait(const Fact& a) { return ContainerDeclaration{Alt<3, Fact>(a)}; } bool operator==(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ContainerDeclaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ContainerDeclaration struct ContainerDeclarationQName : Predicate> { static const char* GLEAN_name() { return "hack.ContainerDeclarationQName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ContainerDeclarationQName struct ContainerParent : Predicate> { static const char* GLEAN_name() { return "hack.ContainerParent"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ContainerParent } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Hack::Enumerator, facebook::glean::cpp::schema::Hack::FunctionDeclaration, facebook::glean::cpp::schema::Hack::GlobalConstDeclaration, facebook::glean::cpp::schema::Hack::NamespaceDeclaration, facebook::glean::cpp::schema::Hack::MethodDeclaration, facebook::glean::cpp::schema::Hack::PropertyDeclaration, facebook::glean::cpp::schema::Hack::TypeConstDeclaration, facebook::glean::cpp::schema::Hack::TypedefDeclaration, facebook::glean::cpp::schema::Hack::ModuleDeclaration>; }; namespace schema { namespace Hack { struct Declaration { boost::variant>, Alt<1, ContainerDeclaration>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>, Alt<8, Fact>, Alt<9, Fact>, Alt<10, Fact>> GLEAN_value; static Declaration classConst(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration container(const ContainerDeclaration& a) { return Declaration{Alt<1, ContainerDeclaration>(a)}; } static Declaration enumerator(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration function_(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration globalConst(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } static Declaration namespace_(const Fact& a) { return Declaration{Alt<5, Fact>(a)}; } static Declaration method(const Fact& a) { return Declaration{Alt<6, Fact>(a)}; } static Declaration property_(const Fact& a) { return Declaration{Alt<7, Fact>(a)}; } static Declaration typeConst(const Fact& a) { return Declaration{Alt<8, Fact>(a)}; } static Declaration typedef_(const Fact& a) { return Declaration{Alt<9, Fact>(a)}; } static Declaration module(const Fact& a) { return Declaration{Alt<10, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationComment : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "hack.DeclarationComment"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationComment struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "hack.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationLocation struct DeclarationName : Predicate> { static const char* GLEAN_name() { return "hack.DeclarationName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationName struct DeclarationNamespace : Predicate>> { static const char* GLEAN_name() { return "hack.DeclarationNamespace"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationNamespace struct DeclarationSource : Predicate> { static const char* GLEAN_name() { return "hack.DeclarationSource"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationSource struct DeclarationSpan : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "hack.DeclarationSpan"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationSpan struct DeclarationTarget : Predicate> { static const char* GLEAN_name() { return "hack.DeclarationTarget"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DeclarationTarget struct FileDeclarations : Predicate, std::vector>> { static const char* GLEAN_name() { return "hack.FileDeclarations"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FileDeclarations struct MemberCluster : Predicate>> { static const char* GLEAN_name() { return "hack.MemberCluster"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MemberCluster struct ModuleChild : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.ModuleChild"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ModuleChild struct ModuleParent : Predicate>> { static const char* GLEAN_name() { return "hack.ModuleParent"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ModuleParent struct NamespaceMember : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.NamespaceMember"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct NamespaceMember struct SearchClassByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchClassByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchClassByName struct SearchClassConstByName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.SearchClassConstByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchClassConstByName struct SearchEnumByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchEnumByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchEnumByName struct SearchEnumeratorByName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.SearchEnumeratorByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchEnumeratorByName struct SearchFunctionByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchFunctionByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchFunctionByName struct SearchGlobalConstByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchGlobalConstByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchGlobalConstByName struct SearchInterfaceByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchInterfaceByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchInterfaceByName struct SearchMethodByName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.SearchMethodByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchMethodByName struct SearchModuleByName : Predicate> { static const char* GLEAN_name() { return "hack.SearchModuleByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchModuleByName struct SearchNamespaceByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchNamespaceByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchNamespaceByName struct SearchPropertyByName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.SearchPropertyByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchPropertyByName struct SearchTraitByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchTraitByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTraitByName struct SearchTypeConstByName : Predicate, Declaration>> { static const char* GLEAN_name() { return "hack.SearchTypeConstByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTypeConstByName struct SearchTypedefByName : Predicate>, Alt<1, Fact>>, Declaration>> { static const char* GLEAN_name() { return "hack.SearchTypedefByName"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SearchTypedefByName } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum, Repr>; }; namespace schema { namespace Hack { struct XRefTarget { boost::variant, Alt<1, Occurrence>> GLEAN_value; static XRefTarget declaration(const Declaration& a) { return XRefTarget{Alt<0, Declaration>(a)}; } static XRefTarget occurrence(const Occurrence& a) { return XRefTarget{Alt<1, Occurrence>(a)}; } bool operator==(const XRefTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefTarget struct TargetUses : Predicate, std::vector>> { static const char* GLEAN_name() { return "hack.TargetUses"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TargetUses struct TargetUsesAbs : Predicate, std::vector>> { static const char* GLEAN_name() { return "hack.TargetUsesAbs"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TargetUsesAbs } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple, Array>>; }; namespace schema { namespace Hack { struct XRef { XRefTarget target; std::vector ranges; bool operator==(const XRef& other) const { return std::tie(target,ranges) == std::tie(other.target,other.ranges); } bool operator!=(const XRef& other) const { return std::tie(target,ranges) != std::tie(other.target,other.ranges); } bool operator<(const XRef& other) const { return std::tie(target,ranges) < std::tie(other.target,other.ranges); } bool operator<=(const XRef& other) const { return std::tie(target,ranges) <= std::tie(other.target,other.ranges); } bool operator>(const XRef& other) const { return std::tie(target,ranges) > std::tie(other.target,other.ranges); } bool operator>=(const XRef& other) const { return std::tie(target,ranges) >= std::tie(other.target,other.ranges); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, ranges)); } }; // struct XRef struct FileXRefs : Predicate, std::set>> { static const char* GLEAN_name() { return "hack.FileXRefs"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FileXRefs struct TypeInfo : Predicate, std::vector, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.TypeInfo"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TypeInfo } // namespace Hack namespace Search { namespace Hack { struct SearchByName : Predicate, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchByName"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchByName struct SearchFunctionInNamespace : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchFunctionInNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchFunctionInNamespace struct SearchGlobalConstInNamespace : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchGlobalConstInNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchGlobalConstInNamespace struct SearchInContainer : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInContainer"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInContainer struct SearchInContainerNoProperty : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInContainerNoProperty"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInContainerNoProperty struct SearchInContainerOrEnum : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInContainerOrEnum"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInContainerOrEnum struct SearchInContainerOrEnumNoProperty : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInContainerOrEnumNoProperty"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInContainerOrEnumNoProperty struct SearchInEnum : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInEnum"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInEnum struct SearchInNamespace : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchInNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchInNamespace struct SearchModule : Predicate, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchModule"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchModule struct SearchNamespace : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchNamespace struct SearchNamespacedDecl : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchNamespacedDecl"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchNamespacedDecl struct SearchPropertyInContainer : Predicate, Fact, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchPropertyInContainer"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchPropertyInContainer struct SearchTypeInNamespace : Predicate, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Hack::Declaration>> { static const char* GLEAN_name() { return "search.hack.SearchTypeInNamespace"; } static constexpr size_t GLEAN_version() { return 7; } }; // struct SearchTypeInNamespace } // namespace Hack } // namespace Search namespace Hack { struct InheritedMembers : Predicate>>> { static const char* GLEAN_name() { return "hack.InheritedMembers"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct InheritedMembers struct MethodDeclaration : Predicate, ContainerDeclaration>> { static const char* GLEAN_name() { return "hack.MethodDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MethodDeclaration struct PropertyDeclaration : Predicate, ContainerDeclaration>> { static const char* GLEAN_name() { return "hack.PropertyDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct PropertyDeclaration struct TypeConstDeclaration : Predicate, ContainerDeclaration>> { static const char* GLEAN_name() { return "hack.TypeConstDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TypeConstDeclaration struct ContainerChild : Predicate> { static const char* GLEAN_name() { return "hack.ContainerChild"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ContainerChild } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Hack { enum class ConstraintKind { As, Equal, Super }; } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Hack::Type, Maybe>; }; namespace schema { namespace Hack { struct Constraint { ConstraintKind constraintKind; Fact type; boost::variant>, Alt<1, Fact>> typeInfo; bool operator==(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) == std::tie(other.constraintKind,other.type,other.typeInfo); } bool operator!=(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) != std::tie(other.constraintKind,other.type,other.typeInfo); } bool operator<(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) < std::tie(other.constraintKind,other.type,other.typeInfo); } bool operator<=(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) <= std::tie(other.constraintKind,other.type,other.typeInfo); } bool operator>(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) > std::tie(other.constraintKind,other.type,other.typeInfo); } bool operator>=(const Constraint& other) const { return std::tie(constraintKind,type,typeInfo) >= std::tie(other.constraintKind,other.type,other.typeInfo); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(constraintKind, type, typeInfo)); } }; // struct Constraint } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, Array>, Array>; }; namespace schema { namespace Hack { struct TypeParameter { Fact name; Variance variance; ReifyKind reifyKind; std::vector constraints; std::vector> attributes; bool operator==(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) == std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } bool operator!=(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) != std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } bool operator<(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) < std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } bool operator<=(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) <= std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } bool operator>(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) > std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } bool operator>=(const TypeParameter& other) const { return std::tie(name,variance,reifyKind,constraints,attributes) >= std::tie(other.name,other.variance,other.reifyKind,other.constraints,other.attributes); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, variance, reifyKind, constraints, attributes)); } }; // struct TypeParameter struct FunctionDefinition : Predicate, Fact, bool, std::vector>, std::vector, boost::variant>, Alt<1, ModuleMembership>>, boost::variant>, Alt<1, ReadonlyKind>>>> { static const char* GLEAN_name() { return "hack.FunctionDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FunctionDefinition struct InterfaceDefinition : Predicate, std::vector, std::vector>, std::vector>, std::vector, std::vector>, boost::variant>, Alt<1, ModuleMembership>>>> { static const char* GLEAN_name() { return "hack.InterfaceDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct InterfaceDefinition struct MethodDefinition : Predicate, Fact, Visibility, bool, bool, bool, bool, std::vector>, std::vector, boost::variant>, Alt<1, bool>>, boost::variant>, Alt<1, ReadonlyKind>>>> { static const char* GLEAN_name() { return "hack.MethodDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MethodDefinition struct TraitDefinition : Predicate, std::vector, std::vector>, std::vector>, std::vector>, std::vector, std::vector>, std::vector>, boost::variant>, Alt<1, ModuleMembership>>, boost::variant>, Alt<1, std::vector>>>>> { static const char* GLEAN_name() { return "hack.TraitDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TraitDefinition struct TypedefDefinition : Predicate, bool, std::vector>, std::vector, boost::variant>, Alt<1, ModuleMembership>>>> { static const char* GLEAN_name() { return "hack.TypedefDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TypedefDefinition struct ClassDefinition : Predicate, bool, bool, std::vector, boost::variant>, Alt<1, Fact>>, std::vector>, std::vector>, std::vector>, std::vector, boost::variant>, Alt<1, ModuleMembership>>>> { static const char* GLEAN_name() { return "hack.ClassDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ClassDefinition struct ClassDeclaration : Predicate>> { static const char* GLEAN_name() { return "hack.ClassDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ClassDeclaration struct ClassConstDefinition : Predicate, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, std::string>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "hack.ClassConstDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ClassConstDefinition struct ClassConstDeclaration : Predicate, ContainerDeclaration>> { static const char* GLEAN_name() { return "hack.ClassConstDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ClassConstDeclaration struct AttributeToDefinition : Predicate, Definition>> { static const char* GLEAN_name() { return "hack.AttributeToDefinition"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct AttributeToDefinition struct AttributeToDeclaration : Predicate, Declaration, Fact>> { static const char* GLEAN_name() { return "hack.AttributeToDeclaration"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct AttributeToDeclaration struct AttributeHasParameter : Predicate, std::string, Fact>> { static const char* GLEAN_name() { return "hack.AttributeHasParameter"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct AttributeHasParameter } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Hack { struct Argument { boost::variant>, Alt<1, XRefTarget>> GLEAN_value; static Argument lit(const Fact& a) { return Argument{Alt<0, Fact>(a)}; } static Argument xref(const XRefTarget& a) { return Argument{Alt<1, XRefTarget>(a)}; } bool operator==(const Argument& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Argument& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Argument& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Argument& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Argument& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Argument& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Argument } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>>; }; namespace schema { namespace Hack { struct CallArgument { facebook::glean::cpp::schema::Src::RelByteSpan span; boost::variant>, Alt<1, Argument>> argument; bool operator==(const CallArgument& other) const { return std::tie(span,argument) == std::tie(other.span,other.argument); } bool operator!=(const CallArgument& other) const { return std::tie(span,argument) != std::tie(other.span,other.argument); } bool operator<(const CallArgument& other) const { return std::tie(span,argument) < std::tie(other.span,other.argument); } bool operator<=(const CallArgument& other) const { return std::tie(span,argument) <= std::tie(other.span,other.argument); } bool operator>(const CallArgument& other) const { return std::tie(span,argument) > std::tie(other.span,other.argument); } bool operator>=(const CallArgument& other) const { return std::tie(span,argument) >= std::tie(other.span,other.argument); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(span, argument)); } }; // struct CallArgument struct FileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::vector, boost::variant>, Alt<1, XRefTarget>>, boost::variant>, Alt<1, CallArgument>>, boost::variant>, Alt<1, Declaration>>, std::set>> { static const char* GLEAN_name() { return "hack.FileCall"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FileCall } // namespace Hack namespace Graphql { struct VariableDef : Predicate, Fact, std::vector>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "graphql.VariableDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct VariableDef struct Value : Predicate { static const char* GLEAN_name() { return "graphql.Value"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Value struct UnionTypeDef : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.UnionTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct UnionTypeDef } // namespace Graphql } // namespace schema template<> struct Repr_ { using Type = Tuple, Array, Array>; }; namespace schema { namespace Graphql { struct SelectionSet { std::vector> fields; std::vector> inlineFragments; std::vector> fragmentSpreads; bool operator==(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) == std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } bool operator!=(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) != std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } bool operator<(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) < std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } bool operator<=(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) <= std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } bool operator>(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) > std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } bool operator>=(const SelectionSet& other) const { return std::tie(fields,inlineFragments,fragmentSpreads) >= std::tie(other.fields,other.inlineFragments,other.fragmentSpreads); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(fields, inlineFragments, fragmentSpreads)); } }; // struct SelectionSet struct ScalarTypeDef : Predicate, std::vector>>> { static const char* GLEAN_name() { return "graphql.ScalarTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ScalarTypeDef } // namespace Graphql } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Graphql { enum class OperationKind { QUERY, MUTATION, SUBSCRIPTION }; struct Operation : Predicate, OperationKind, std::vector>, std::vector>, SelectionSet, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "graphql.Operation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Operation struct ObjectTypeDef : Predicate, std::vector>, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.ObjectTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ObjectTypeDef using Name = Fact; struct NameLowerCase : Predicate> { static const char* GLEAN_name() { return "graphql.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct NameLowerCase struct InterfaceTypeDef : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.InterfaceTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InterfaceTypeDef struct InputValueDef : Predicate, Fact, std::vector>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "graphql.InputValueDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InputValueDef struct InputObjectTypeDef : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.InputObjectTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InputObjectTypeDef struct InlineFragment : Predicate, std::vector>, SelectionSet, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "graphql.InlineFragment"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct InlineFragment struct FragmentSpread : Predicate, facebook::glean::cpp::schema::Src::FileLocation, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.FragmentSpread"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FragmentSpread struct Fragment : Predicate, Fact, std::vector>, std::vector>, SelectionSet, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "graphql.Fragment"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Fragment struct FieldDef : Predicate, Fact, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.FieldDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FieldDef struct Field : Predicate, Fact, std::vector>, SelectionSet, std::vector>, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Src::FileLocation>> { static const char* GLEAN_name() { return "graphql.Field"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Field struct EnumTypeDef : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "graphql.EnumTypeDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct EnumTypeDef } // namespace Graphql } // namespace schema template<> struct Repr_ { using Type = Enum<18>; }; namespace schema { namespace Graphql { enum class DirectiveDefLocation { QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, SCHEMA, SCALAR, OBJECT, FIELD_DEFINITION, ARGUMENT_DEFINITION, INTERFACE, UNION, ENUM, ENUM_VALUE, INPUT_OBJECT, INPUT_FIELD_DEFINITION }; struct DirectiveDef : Predicate, std::vector>, std::vector>> { static const char* GLEAN_name() { return "graphql.DirectiveDef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DirectiveDef struct Directive : Predicate, std::vector>>> { static const char* GLEAN_name() { return "graphql.Directive"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Directive } // namespace Graphql } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Graphql { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>> GLEAN_value; static Declaration operation_(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration fragment_(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration field_(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration enum_(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration directive_(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "graphql.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationLocation struct DeclarationName : Predicate> { static const char* GLEAN_name() { return "graphql.DeclarationName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationName struct DeclarationUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "graphql.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationUses struct FileDeclarations : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Declaration>> { static const char* GLEAN_name() { return "graphql.FileDeclarations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileDeclarations struct SearchByName : Predicate> { static const char* GLEAN_name() { return "graphql.SearchByName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByName } // namespace Graphql } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Graphql { struct XRef { Declaration decl; facebook::glean::cpp::schema::Src::ByteSpan span; bool operator==(const XRef& other) const { return std::tie(decl,span) == std::tie(other.decl,other.span); } bool operator!=(const XRef& other) const { return std::tie(decl,span) != std::tie(other.decl,other.span); } bool operator<(const XRef& other) const { return std::tie(decl,span) < std::tie(other.decl,other.span); } bool operator<=(const XRef& other) const { return std::tie(decl,span) <= std::tie(other.decl,other.span); } bool operator>(const XRef& other) const { return std::tie(decl,span) > std::tie(other.decl,other.span); } bool operator>=(const XRef& other) const { return std::tie(decl,span) >= std::tie(other.decl,other.span); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(decl, span)); } }; // struct XRef struct FileXRefs : Predicate, XRef>> { static const char* GLEAN_name() { return "graphql.FileXRefs"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileXRefs struct DeclHasName : Predicate>> { static const char* GLEAN_name() { return "graphql.DeclHasName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclHasName struct BelongToConfig : Predicate, Fact, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "graphql.BelongToConfig"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct BelongToConfig struct Argument : Predicate, Fact>> { static const char* GLEAN_name() { return "graphql.Argument"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Argument } // namespace Graphql namespace Glean { namespace Test { struct nothingTest : Predicate>, Alt<1, std::string>>, uint64_t>> { static const char* GLEAN_name() { return "glean.test.nothingTest"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct nothingTest } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Glean { namespace Test { struct WrappedStringPair { Fact wrapped; bool operator==(const WrappedStringPair& other) const { return std::tie(wrapped) == std::tie(other.wrapped); } bool operator!=(const WrappedStringPair& other) const { return std::tie(wrapped) != std::tie(other.wrapped); } bool operator<(const WrappedStringPair& other) const { return std::tie(wrapped) < std::tie(other.wrapped); } bool operator<=(const WrappedStringPair& other) const { return std::tie(wrapped) <= std::tie(other.wrapped); } bool operator>(const WrappedStringPair& other) const { return std::tie(wrapped) > std::tie(other.wrapped); } bool operator>=(const WrappedStringPair& other) const { return std::tie(wrapped) >= std::tie(other.wrapped); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(wrapped)); } }; // struct WrappedStringPair struct ViaStringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.ViaStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ViaStringPair struct Unbound2 : Predicate> { static const char* GLEAN_name() { return "glean.test.Unbound2"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Unbound2 struct Unbound : Predicate> { static const char* GLEAN_name() { return "glean.test.Unbound"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Unbound struct TreeToTree : Predicate, Fact> { static const char* GLEAN_name() { return "glean.test.TreeToTree"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct TreeToTree struct Tree : Predicate, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "glean.test.Tree"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Tree } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Glean { namespace Test { struct Sum_ { boost::variant, Alt<1, uint64_t>, Alt<2, bool>> GLEAN_value; static Sum_ mon(const uint8_t& a) { return Sum_{Alt<0, uint8_t>(a)}; } static Sum_ tue(const uint64_t& a) { return Sum_{Alt<1, uint64_t>(a)}; } static Sum_ wed(const bool& a) { return Sum_{Alt<2, bool>(a)}; } bool operator==(const Sum_& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Sum_& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Sum_& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Sum_& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Sum_& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Sum_& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Sum_ struct StringPairBox : Predicate>> { static const char* GLEAN_name() { return "glean.test.StringPairBox"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StringPairBox struct StringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.StringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StringPair struct StoredRevStringPairWithRev : Predicate> { static const char* GLEAN_name() { return "glean.test.StoredRevStringPairWithRev"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StoredRevStringPairWithRev struct StoredRevStringPairWithA : Predicate> { static const char* GLEAN_name() { return "glean.test.StoredRevStringPairWithA"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StoredRevStringPairWithA struct StoredRevStringPairSum : Predicate> { static const char* GLEAN_name() { return "glean.test.StoredRevStringPairSum"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StoredRevStringPairSum struct StoredRevStringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.StoredRevStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StoredRevStringPair struct StoredDualStringPair : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.StoredDualStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct StoredDualStringPair struct SkipRevEdge : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.SkipRevEdge"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SkipRevEdge struct SameString : Predicate> { static const char* GLEAN_name() { return "glean.test.SameString"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct SameString struct RevStringPairs : Predicate>> { static const char* GLEAN_name() { return "glean.test.RevStringPairs"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RevStringPairs struct RevStringPairRec : Predicate> { static const char* GLEAN_name() { return "glean.test.RevStringPairRec"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RevStringPairRec struct RevStringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.RevStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RevStringPair struct RevRevStringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.RevRevStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RevRevStringPair struct RevEdge : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.RevEdge"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RevEdge struct ReflStringPair : Predicate { static const char* GLEAN_name() { return "glean.test.ReflStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ReflStringPair struct RefRef : Predicate> { static const char* GLEAN_name() { return "glean.test.RefRef"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct RefRef struct Ref : Predicate> { static const char* GLEAN_name() { return "glean.test.Ref"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Ref struct Qux : Predicate { static const char* GLEAN_name() { return "glean.test.Qux"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Qux struct Predicate_0 : Predicate { static const char* GLEAN_name() { return "glean.test.Predicate"; } static constexpr size_t GLEAN_version() { return 0; } }; // struct Predicate_0 struct NodePair : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.NodePair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct NodePair struct Node : Predicate> { static const char* GLEAN_name() { return "glean.test.Node"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Node struct Name : Predicate { static const char* GLEAN_name() { return "glean.test.Name"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Name struct MatchOneAlt : Predicate> { static const char* GLEAN_name() { return "glean.test.MatchOneAlt"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct MatchOneAlt struct LeftOr2 : Predicate> { static const char* GLEAN_name() { return "glean.test.LeftOr2"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct LeftOr2 struct LeftOr : Predicate> { static const char* GLEAN_name() { return "glean.test.LeftOr"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct LeftOr struct KeyValue : Predicate, std::tuple> { static const char* GLEAN_name() { return "glean.test.KeyValue"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct KeyValue struct IsThree : Predicate { static const char* GLEAN_name() { return "glean.test.IsThree"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct IsThree struct IsParent : Predicate> { static const char* GLEAN_name() { return "glean.test.IsParent"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct IsParent struct IsGlean : Predicate { static const char* GLEAN_name() { return "glean.test.IsGlean"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct IsGlean struct FooToFoo : Predicate, Fact> { static const char* GLEAN_name() { return "glean.test.FooToFoo"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct FooToFoo struct Foo : Predicate> { static const char* GLEAN_name() { return "glean.test.Foo"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Foo struct Expr : Predicate>, Alt<1, uint64_t>, Alt<2, Fact>, Alt<3, std::tuple, Fact>>, Alt<4, std::tuple, Fact>>>> { static const char* GLEAN_name() { return "glean.test.Expr"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Expr } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Glean { namespace Test { enum class Enum_ { red, green, blue }; } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Glean { namespace Test { struct Rec { Enum_ alpha; Sum_ beta; bool operator==(const Rec& other) const { return std::tie(alpha,beta) == std::tie(other.alpha,other.beta); } bool operator!=(const Rec& other) const { return std::tie(alpha,beta) != std::tie(other.alpha,other.beta); } bool operator<(const Rec& other) const { return std::tie(alpha,beta) < std::tie(other.alpha,other.beta); } bool operator<=(const Rec& other) const { return std::tie(alpha,beta) <= std::tie(other.alpha,other.beta); } bool operator>(const Rec& other) const { return std::tie(alpha,beta) > std::tie(other.alpha,other.beta); } bool operator>=(const Rec& other) const { return std::tie(alpha,beta) >= std::tie(other.alpha,other.beta); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(alpha, beta)); } }; // struct Rec struct EmptyStoredStringPair : Predicate> { static const char* GLEAN_name() { return "glean.test.EmptyStoredStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EmptyStoredStringPair struct EmptyPred : Predicate { static const char* GLEAN_name() { return "glean.test.EmptyPred"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EmptyPred struct EdgeWrapper : Predicate>> { static const char* GLEAN_name() { return "glean.test.EdgeWrapper"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EdgeWrapper } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Glean { namespace Test { struct EdgeSum { boost::variant>, Alt<1, Fact>> GLEAN_value; static EdgeSum fst(const Fact& a) { return EdgeSum{Alt<0, Fact>(a)}; } static EdgeSum snd(const Fact& a) { return EdgeSum{Alt<1, Fact>(a)}; } bool operator==(const EdgeSum& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const EdgeSum& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const EdgeSum& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const EdgeSum& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const EdgeSum& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const EdgeSum& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct EdgeSum struct EdgeFromNotA : Predicate> { static const char* GLEAN_name() { return "glean.test.EdgeFromNotA"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EdgeFromNotA struct Edge : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.Edge"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Edge struct DualStringPair : Predicate, Fact>> { static const char* GLEAN_name() { return "glean.test.DualStringPair"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DualStringPair struct DerivedKeyValue2 : Predicate, std::tuple> { static const char* GLEAN_name() { return "glean.test.DerivedKeyValue2"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DerivedKeyValue2 struct DerivedKeyValue : Predicate> { static const char* GLEAN_name() { return "glean.test.DerivedKeyValue"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct DerivedKeyValue struct Bar : Predicate> { static const char* GLEAN_name() { return "glean.test.Bar"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Bar using ArrayString = std::vector; using ArrayNat = std::vector; using ArrayByte = std::vector; using ArrayBool = std::vector; enum class KitchenSink_enum_ { e, f, g }; } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; template<> struct Repr_ { using Type = Tuple>, Tuple, Sum, Enum<3>, Repr, Repr, Repr, Array, Array, Array, Array, Array, Array>, Array>, Array>, Array>, Array>, Array>, Array>, Set, Set, Set>; }; namespace schema { namespace Glean { namespace Test { struct KitchenSink { uint8_t byt; uint64_t nat; bool bool_; std::string string_; Fact pred; boost::variant>, Alt<1, std::tuple<>>> maybe_; std::tuple record_; boost::variant>, Alt<1, Fact>> sum_; KitchenSink_enum_ enum_; Rec named_record_; Sum_ named_sum_; Enum_ named_enum_; std::vector array_of_byte; std::vector array_of_nat; std::vector array_of_bool; std::vector array_of_string; std::vector> array_of_pred; std::vector array_of_named_record; std::vector array_of_named_sum; std::vector array_of_named_enum; std::vector array2_of_byte; std::vector array2_of_nat; std::vector array2_of_bool; std::vector array2_of_string; std::set set_of_nat; std::set set_of_string; std::set> set_of_pred; bool operator==(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) == std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } bool operator!=(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) != std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } bool operator<(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) < std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } bool operator<=(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) <= std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } bool operator>(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) > std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } bool operator>=(const KitchenSink& other) const { return std::tie(byt,nat,bool_,string_,pred,maybe_,record_,sum_,enum_,named_record_,named_sum_,named_enum_,array_of_byte,array_of_nat,array_of_bool,array_of_string,array_of_pred,array_of_named_record,array_of_named_sum,array_of_named_enum,array2_of_byte,array2_of_nat,array2_of_bool,array2_of_string,set_of_nat,set_of_string,set_of_pred) >= std::tie(other.byt,other.nat,other.bool_,other.string_,other.pred,other.maybe_,other.record_,other.sum_,other.enum_,other.named_record_,other.named_sum_,other.named_enum_,other.array_of_byte,other.array_of_nat,other.array_of_bool,other.array_of_string,other.array_of_pred,other.array_of_named_record,other.array_of_named_sum,other.array_of_named_enum,other.array2_of_byte,other.array2_of_nat,other.array2_of_bool,other.array2_of_string,other.set_of_nat,other.set_of_string,other.set_of_pred); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(byt, nat, bool_, string_, pred, maybe_, record_, sum_, enum_, named_record_, named_sum_, named_enum_, array_of_byte, array_of_nat, array_of_bool, array_of_string, array_of_pred, array_of_named_record, array_of_named_sum, array_of_named_enum, array2_of_byte, array2_of_nat, array2_of_bool, array2_of_string, set_of_nat, set_of_string, set_of_pred)); } }; // struct KitchenSink struct Predicate_ : Predicate { static const char* GLEAN_name() { return "glean.test.Predicate"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Predicate_ } // namespace Test } // namespace Glean } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Gencode { enum class GenCodeVariant { Full, Partial }; struct GenCodeSignature : Predicate { static const char* GLEAN_name() { return "gencode.GenCodeSignature"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GenCodeSignature struct GenCodeCommand : Predicate { static const char* GLEAN_name() { return "gencode.GenCodeCommand"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GenCodeCommand struct GenCodeClass : Predicate { static const char* GLEAN_name() { return "gencode.GenCodeClass"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GenCodeClass struct GenCodeBySource : Predicate, Fact>> { static const char* GLEAN_name() { return "gencode.GenCodeBySource"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GenCodeBySource struct GenCode : Predicate, GenCodeVariant, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "gencode.GenCode"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GenCode } // namespace Gencode } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Flow { struct XRef { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static XRef localRef(const Fact& a) { return XRef{Alt<0, Fact>(a)}; } static XRef memberRef(const Fact& a) { return XRef{Alt<1, Fact>(a)}; } static XRef typeRef(const Fact& a) { return XRef{Alt<2, Fact>(a)}; } bool operator==(const XRef& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRef& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRef& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRef& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRef& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRef& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRef struct TypeImportDeclaration : Predicate, boost::variant>, Alt<1, Fact>, Alt<2, Fact>>>> { static const char* GLEAN_name() { return "flow.TypeImportDeclaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeImportDeclaration struct TypeExport : Predicate>, Alt<1, Fact>>> { static const char* GLEAN_name() { return "flow.TypeExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeExport struct TypeDeclarationReference : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.TypeDeclarationReference"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeDeclarationReference struct TypeDeclarationInfo : Predicate, Fact, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "flow.TypeDeclarationInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeDeclarationInfo struct TypeDeclaration : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.TypeDeclaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct TypeDeclaration struct Type : Predicate { static const char* GLEAN_name() { return "flow.Type"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Type struct StringToFileModule : Predicate>> { static const char* GLEAN_name() { return "flow.StringToFileModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct StringToFileModule struct SourceOfTypeExport : Predicate, boost::variant>, Alt<1, Fact>, Alt<2, Fact>>>> { static const char* GLEAN_name() { return "flow.SourceOfTypeExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SourceOfTypeExport struct SourceOfExport : Predicate, boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>>>> { static const char* GLEAN_name() { return "flow.SourceOfExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SourceOfExport } // namespace Flow } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Flow { struct SomeDeclaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static SomeDeclaration localDecl(const Fact& a) { return SomeDeclaration{Alt<0, Fact>(a)}; } static SomeDeclaration memberDecl(const Fact& a) { return SomeDeclaration{Alt<1, Fact>(a)}; } static SomeDeclaration typeDecl(const Fact& a) { return SomeDeclaration{Alt<2, Fact>(a)}; } bool operator==(const SomeDeclaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const SomeDeclaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const SomeDeclaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const SomeDeclaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const SomeDeclaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const SomeDeclaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct SomeDeclaration } // namespace Flow } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Flow::Module>; }; namespace schema { namespace Flow { struct SomeEntity { boost::variant, Alt<1, Fact>> GLEAN_value; static SomeEntity decl(const SomeDeclaration& a) { return SomeEntity{Alt<0, SomeDeclaration>(a)}; } static SomeEntity module_(const Fact& a) { return SomeEntity{Alt<1, Fact>(a)}; } bool operator==(const SomeEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const SomeEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const SomeEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const SomeEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const SomeEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const SomeEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct SomeEntity } // namespace Flow namespace Search { namespace Flow { struct FlowSearchByNameNonImport : Predicate, facebook::glean::cpp::schema::Flow::SomeDeclaration>> { static const char* GLEAN_name() { return "search.flow.FlowSearchByNameNonImport"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FlowSearchByNameNonImport } // namespace Flow } // namespace Search namespace Flow { struct SearchTypeDeclarationByName : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.SearchTypeDeclarationByName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchTypeDeclarationByName struct SearchTypeDeclarationByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "flow.SearchTypeDeclarationByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchTypeDeclarationByLowerCaseName struct SearchTypeByModuleExport : Predicate, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.SearchTypeByModuleExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchTypeByModuleExport struct SearchModuleByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "flow.SearchModuleByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchModuleByLowerCaseName struct SearchMemberDeclarationByName : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.SearchMemberDeclarationByName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchMemberDeclarationByName struct SearchMemberDeclarationByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "flow.SearchMemberDeclarationByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchMemberDeclarationByLowerCaseName struct SearchDeclarationByName : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.SearchDeclarationByName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchDeclarationByName struct SearchDeclarationByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "flow.SearchDeclarationByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchDeclarationByLowerCaseName struct SearchByNameModule : Predicate>> { static const char* GLEAN_name() { return "flow.SearchByNameModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByNameModule struct SearchByName : Predicate, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.SearchByName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByName struct SearchByModuleName : Predicate>> { static const char* GLEAN_name() { return "flow.SearchByModuleName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByModuleName struct SearchByModule : Predicate, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.SearchByModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByModule struct SearchByFileModule : Predicate, Fact, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.SearchByFileModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct SearchByFileModule struct Range : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.Range"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Range struct Name : Predicate { static const char* GLEAN_name() { return "flow.Name"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Name struct ModuleTypeExport : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.ModuleTypeExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleTypeExport struct ModuleNameLowerCase : Predicate>> { static const char* GLEAN_name() { return "flow.ModuleNameLowerCase"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleNameLowerCase struct ModuleLocationByFile : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan, std::string>> { static const char* GLEAN_name() { return "flow.ModuleLocationByFile"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleLocationByFile struct ModuleLocation : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan, std::string>> { static const char* GLEAN_name() { return "flow.ModuleLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleLocation struct ModuleExport : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.ModuleExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleExport struct ModuleDoc : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.ModuleDoc"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleDoc struct ModuleContains : Predicate, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.ModuleContains"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleContains struct ModuleComments : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.ModuleComments"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ModuleComments struct Module : Predicate>, Alt<1, std::tuple<>>, Alt<2, std::string>, Alt<3, std::tuple<>>, Alt<4, std::string>>> { static const char* GLEAN_name() { return "flow.Module"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Module struct MemberDeclarationReference : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.MemberDeclarationReference"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct MemberDeclarationReference struct MemberDeclarationInfo : Predicate, Fact, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "flow.MemberDeclarationInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct MemberDeclarationInfo struct MemberDeclaration : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.MemberDeclaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct MemberDeclaration struct LocalDeclarationReference : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.LocalDeclarationReference"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LocalDeclarationReference struct ImportDeclaration : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "flow.ImportDeclaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct ImportDeclaration struct FlowXRefDeclInfo : Predicate, Fact, Fact, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.FlowXRefDeclInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowXRefDeclInfo struct FlowTypeImportXRef : Predicate, SomeEntity, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.FlowTypeImportXRef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowTypeImportXRef struct FlowTypeExportLocation : Predicate, SomeEntity, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.FlowTypeExportLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowTypeExportLocation struct FlowTypeEntityImportUses : Predicate>> { static const char* GLEAN_name() { return "flow.FlowTypeEntityImportUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowTypeEntityImportUses struct FlowSameModule : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.FlowSameModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowSameModule struct FlowModuleNamespaceXRef : Predicate, SomeEntity, Fact>> { static const char* GLEAN_name() { return "flow.FlowModuleNamespaceXRef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowModuleNamespaceXRef struct FlowImportXRef : Predicate, SomeEntity, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.FlowImportXRef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowImportXRef struct FlowExportLocation : Predicate, Fact, SomeEntity, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.FlowExportLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowExportLocation struct FlowEntityUsesAll : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.FlowEntityUsesAll"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowEntityUsesAll struct FlowEntityImportUses : Predicate>> { static const char* GLEAN_name() { return "flow.FlowEntityImportUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowEntityImportUses struct FlowCompatibleExport : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.FlowCompatibleExport"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FlowCompatibleExport struct FileXRef : Predicate, XRef>> { static const char* GLEAN_name() { return "flow.FileXRef"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileXRef struct FileOfStringModule : Predicate, std::string>> { static const char* GLEAN_name() { return "flow.FileOfStringModule"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileOfStringModule struct FileDeclaration : Predicate, SomeDeclaration>> { static const char* GLEAN_name() { return "flow.FileDeclaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct FileDeclaration struct Export : Predicate>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, std::tuple<>>, Alt<4, Fact>>> { static const char* GLEAN_name() { return "flow.Export"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Export struct Documentation : Predicate> { static const char* GLEAN_name() { return "flow.Documentation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Documentation struct DeclarationUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationUses struct DeclarationSignature : Predicate> { static const char* GLEAN_name() { return "flow.DeclarationSignature"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationSignature struct DeclarationNameSpan : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.DeclarationNameSpan"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationNameSpan struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "flow.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationLocation struct DeclarationInfo : Predicate, Fact, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "flow.DeclarationInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct DeclarationInfo struct Declaration : Predicate, Fact>> { static const char* GLEAN_name() { return "flow.Declaration"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct Declaration } // namespace Flow } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Fbthrift { struct XRefTarget { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>> GLEAN_value; static XRefTarget include_(const Fact& a) { return XRefTarget{Alt<0, Fact>(a)}; } static XRefTarget named(const Fact& a) { return XRefTarget{Alt<1, Fact>(a)}; } static XRefTarget exception_(const Fact& a) { return XRefTarget{Alt<2, Fact>(a)}; } static XRefTarget service_(const Fact& a) { return XRefTarget{Alt<3, Fact>(a)}; } static XRefTarget constant(const Fact& a) { return XRefTarget{Alt<4, Fact>(a)}; } static XRefTarget enumValue(const Fact& a) { return XRefTarget{Alt<5, Fact>(a)}; } static XRefTarget function_(const Fact& a) { return XRefTarget{Alt<6, Fact>(a)}; } static XRefTarget field(const Fact& a) { return XRefTarget{Alt<7, Fact>(a)}; } bool operator==(const XRefTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefTarget } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Fbthrift { struct TypedConst { boost::variant>, Alt<1, Fact>> GLEAN_value; static TypedConst literal(const Fact& a) { return TypedConst{Alt<0, Fact>(a)}; } static TypedConst identifier(const Fact& a) { return TypedConst{Alt<1, Fact>(a)}; } bool operator==(const TypedConst& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const TypedConst& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const TypedConst& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const TypedConst& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const TypedConst& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const TypedConst& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct TypedConst } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Fbthrift::TypeSpecification>; }; namespace schema { namespace Fbthrift { struct TypedConstT { TypedConst const_; Fact type_; bool operator==(const TypedConstT& other) const { return std::tie(const_,type_) == std::tie(other.const_,other.type_); } bool operator!=(const TypedConstT& other) const { return std::tie(const_,type_) != std::tie(other.const_,other.type_); } bool operator<(const TypedConstT& other) const { return std::tie(const_,type_) < std::tie(other.const_,other.type_); } bool operator<=(const TypedConstT& other) const { return std::tie(const_,type_) <= std::tie(other.const_,other.type_); } bool operator>(const TypedConstT& other) const { return std::tie(const_,type_) > std::tie(other.const_,other.type_); } bool operator>=(const TypedConstT& other) const { return std::tie(const_,type_) >= std::tie(other.const_,other.type_); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(const_, type_)); } }; // struct TypedConstT } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Fbthrift { struct UnionFieldVal { Fact name; TypedConstT value; bool operator==(const UnionFieldVal& other) const { return std::tie(name,value) == std::tie(other.name,other.value); } bool operator!=(const UnionFieldVal& other) const { return std::tie(name,value) != std::tie(other.name,other.value); } bool operator<(const UnionFieldVal& other) const { return std::tie(name,value) < std::tie(other.name,other.value); } bool operator<=(const UnionFieldVal& other) const { return std::tie(name,value) <= std::tie(other.name,other.value); } bool operator>(const UnionFieldVal& other) const { return std::tie(name,value) > std::tie(other.name,other.value); } bool operator>=(const UnionFieldVal& other) const { return std::tie(name,value) >= std::tie(other.name,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, value)); } }; // struct UnionFieldVal struct UnionVal : Predicate> { static const char* GLEAN_name() { return "fbthrift.UnionVal"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct UnionVal struct TypeDefType : Predicate, Fact, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.TypeDefType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeDefType } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Fbthrift { struct Target { XRefTarget target; bool operator==(const Target& other) const { return std::tie(target) == std::tie(other.target); } bool operator!=(const Target& other) const { return std::tie(target) != std::tie(other.target); } bool operator<(const Target& other) const { return std::tie(target) < std::tie(other.target); } bool operator<=(const Target& other) const { return std::tie(target) <= std::tie(other.target); } bool operator>(const Target& other) const { return std::tie(target) > std::tie(other.target); } bool operator>=(const Target& other) const { return std::tie(target) >= std::tie(other.target); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target)); } }; // struct Target struct StructuredAnnotation : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.StructuredAnnotation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct StructuredAnnotation } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Repr, Tuple<>>; }; namespace schema { namespace Fbthrift { struct StructFieldValValue { boost::variant, Alt<1, Fact>, Alt<2, TypedConstT>, Alt<3, std::tuple<>>> GLEAN_value; static StructFieldValValue val(const TypedConstT& a) { return StructFieldValValue{Alt<0, TypedConstT>(a)}; } static StructFieldValValue default_(const Fact& a) { return StructFieldValValue{Alt<1, Fact>(a)}; } static StructFieldValValue just(const TypedConstT& a) { return StructFieldValValue{Alt<2, TypedConstT>(a)}; } static StructFieldValValue nothing() { return StructFieldValValue{Alt<3, std::tuple<>>(std::make_tuple())}; } bool operator==(const StructFieldValValue& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const StructFieldValValue& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const StructFieldValValue& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const StructFieldValValue& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const StructFieldValValue& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const StructFieldValValue& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct StructFieldValValue } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Fbthrift { struct StructFieldVal { Fact name; StructFieldValValue value; bool operator==(const StructFieldVal& other) const { return std::tie(name,value) == std::tie(other.name,other.value); } bool operator!=(const StructFieldVal& other) const { return std::tie(name,value) != std::tie(other.name,other.value); } bool operator<(const StructFieldVal& other) const { return std::tie(name,value) < std::tie(other.name,other.value); } bool operator<=(const StructFieldVal& other) const { return std::tie(name,value) <= std::tie(other.name,other.value); } bool operator>(const StructFieldVal& other) const { return std::tie(name,value) > std::tie(other.name,other.value); } bool operator>=(const StructFieldVal& other) const { return std::tie(name,value) >= std::tie(other.name,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, value)); } }; // struct StructFieldVal struct StructVal : Predicate>> { static const char* GLEAN_name() { return "fbthrift.StructVal"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct StructVal struct ServiceParent : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.ServiceParent"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ServiceParent struct ServiceName : Predicate>> { static const char* GLEAN_name() { return "fbthrift.ServiceName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ServiceName struct ServiceInteractionFunctions : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.ServiceInteractionFunctions"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ServiceInteractionFunctions struct ServiceDefinition : Predicate, std::vector>, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.ServiceDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ServiceDefinition struct ServiceChild : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.ServiceChild"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ServiceChild struct SearchByName : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.SearchByName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByName } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>; }; namespace schema { namespace Fbthrift { struct ResultSink { Fact type_; boost::variant>, Alt<1, Fact>> firstResponse; boost::variant>, Alt<1, Fact>> finalResponse; bool operator==(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) == std::tie(other.type_,other.firstResponse,other.finalResponse); } bool operator!=(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) != std::tie(other.type_,other.firstResponse,other.finalResponse); } bool operator<(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) < std::tie(other.type_,other.firstResponse,other.finalResponse); } bool operator<=(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) <= std::tie(other.type_,other.firstResponse,other.finalResponse); } bool operator>(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) > std::tie(other.type_,other.firstResponse,other.finalResponse); } bool operator>=(const ResultSink& other) const { return std::tie(type_,firstResponse,finalResponse) >= std::tie(other.type_,other.firstResponse,other.finalResponse); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(type_, firstResponse, finalResponse)); } }; // struct ResultSink } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Fbthrift { enum class Qualifier { default_, optional_, required_ }; struct QualName : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.QualName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct QualName } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Enum<9>; }; namespace schema { namespace Fbthrift { enum class PrimitiveType { bool_, byte_, i16_, i32_, i64_, float_, double_, binary_, string_ }; struct PackageName : Predicate { static const char* GLEAN_name() { return "fbthrift.PackageName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PackageName struct Package : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.Package"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Package struct NamespaceValue : Predicate { static const char* GLEAN_name() { return "fbthrift.NamespaceValue"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NamespaceValue struct NamespaceName : Predicate { static const char* GLEAN_name() { return "fbthrift.NamespaceName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NamespaceName struct Namespace : Predicate, Fact, Fact, bool>> { static const char* GLEAN_name() { return "fbthrift.Namespace"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Namespace } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Fbthrift { enum class NamedKind { typedef_, enum_, struct_, union_ }; } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Fbthrift { struct NamedType { Fact name; NamedKind kind; bool operator==(const NamedType& other) const { return std::tie(name,kind) == std::tie(other.name,other.kind); } bool operator!=(const NamedType& other) const { return std::tie(name,kind) != std::tie(other.name,other.kind); } bool operator<(const NamedType& other) const { return std::tie(name,kind) < std::tie(other.name,other.kind); } bool operator<=(const NamedType& other) const { return std::tie(name,kind) <= std::tie(other.name,other.kind); } bool operator>(const NamedType& other) const { return std::tie(name,kind) > std::tie(other.name,other.kind); } bool operator>=(const NamedType& other) const { return std::tie(name,kind) >= std::tie(other.name,other.kind); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, kind)); } }; // struct NamedType struct NamedDecl : Predicate> { static const char* GLEAN_name() { return "fbthrift.NamedDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NamedDecl struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "fbthrift.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameLowerCase } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Fbthrift { struct MapType { Fact key_; Fact value; bool operator==(const MapType& other) const { return std::tie(key_,value) == std::tie(other.key_,other.value); } bool operator!=(const MapType& other) const { return std::tie(key_,value) != std::tie(other.key_,other.value); } bool operator<(const MapType& other) const { return std::tie(key_,value) < std::tie(other.key_,other.value); } bool operator<=(const MapType& other) const { return std::tie(key_,value) <= std::tie(other.key_,other.value); } bool operator>(const MapType& other) const { return std::tie(key_,value) > std::tie(other.key_,other.value); } bool operator>=(const MapType& other) const { return std::tie(key_,value) >= std::tie(other.key_,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(key_, value)); } }; // struct MapType } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Fbthrift { struct Loc { uint64_t startLine; uint64_t startCol; uint64_t endLine; uint64_t endCol; bool operator==(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) == std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } bool operator!=(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) != std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } bool operator<(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) < std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } bool operator<=(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) <= std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } bool operator>(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) > std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } bool operator>=(const Loc& other) const { return std::tie(startLine,startCol,endLine,endCol) >= std::tie(other.startLine,other.startCol,other.endLine,other.endCol); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(startLine, startCol, endLine, endCol)); } }; // struct Loc } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Fbthrift { struct XRef { Loc locRef; XRefTarget target; bool operator==(const XRef& other) const { return std::tie(locRef,target) == std::tie(other.locRef,other.target); } bool operator!=(const XRef& other) const { return std::tie(locRef,target) != std::tie(other.locRef,other.target); } bool operator<(const XRef& other) const { return std::tie(locRef,target) < std::tie(other.locRef,other.target); } bool operator<=(const XRef& other) const { return std::tie(locRef,target) <= std::tie(other.locRef,other.target); } bool operator>(const XRef& other) const { return std::tie(locRef,target) > std::tie(other.locRef,other.target); } bool operator>=(const XRef& other) const { return std::tie(locRef,target) >= std::tie(other.locRef,other.target); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(locRef, target)); } }; // struct XRef } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Fbthrift { struct KeyValue { TypedConst key; TypedConst value; bool operator==(const KeyValue& other) const { return std::tie(key,value) == std::tie(other.key,other.value); } bool operator!=(const KeyValue& other) const { return std::tie(key,value) != std::tie(other.key,other.value); } bool operator<(const KeyValue& other) const { return std::tie(key,value) < std::tie(other.key,other.value); } bool operator<=(const KeyValue& other) const { return std::tie(key,value) <= std::tie(other.key,other.value); } bool operator>(const KeyValue& other) const { return std::tie(key,value) > std::tie(other.key,other.value); } bool operator>=(const KeyValue& other) const { return std::tie(key,value) >= std::tie(other.key,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(key, value)); } }; // struct KeyValue struct InteractionName : Predicate>> { static const char* GLEAN_name() { return "fbthrift.InteractionName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct InteractionName struct InteractionDefinition : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.InteractionDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct InteractionDefinition } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Fbthrift { struct IntegerLiteral { bool isNonNegative; uint64_t absValue; bool operator==(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) == std::tie(other.isNonNegative,other.absValue); } bool operator!=(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) != std::tie(other.isNonNegative,other.absValue); } bool operator<(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) < std::tie(other.isNonNegative,other.absValue); } bool operator<=(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) <= std::tie(other.isNonNegative,other.absValue); } bool operator>(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) > std::tie(other.isNonNegative,other.absValue); } bool operator>=(const IntegerLiteral& other) const { return std::tie(isNonNegative,absValue) >= std::tie(other.isNonNegative,other.absValue); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(isNonNegative, absValue)); } }; // struct IntegerLiteral struct Identifier : Predicate { static const char* GLEAN_name() { return "fbthrift.Identifier"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Identifier struct FunctionName : Predicate, Fact>> { static const char* GLEAN_name() { return "fbthrift.FunctionName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FunctionName } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Fbthrift { struct FloatLiteral { bool isNaN; bool isPositive; uint64_t exponent; uint64_t significand; bool operator==(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) == std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } bool operator!=(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) != std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } bool operator<(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) < std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } bool operator<=(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) <= std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } bool operator>(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) > std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } bool operator>=(const FloatLiteral& other) const { return std::tie(isNaN,isPositive,exponent,significand) >= std::tie(other.isNaN,other.isPositive,other.exponent,other.significand); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(isNaN, isPositive, exponent, significand)); } }; // struct FloatLiteral struct Literal : Predicate, Alt<1, IntegerLiteral>, Alt<2, IntegerLiteral>, Alt<3, IntegerLiteral>, Alt<4, FloatLiteral>, Alt<5, FloatLiteral>, Alt<6, bool>, Alt<7, std::string>, Alt<8, std::vector>, Alt<9, std::vector>, Alt<10, std::vector>, Alt<11, std::vector>, Alt<12, Fact>, Alt<13, Fact>, Alt<14, Fact>, Alt<15, Fact>, Alt<16, Fact>>> { static const char* GLEAN_name() { return "fbthrift.Literal"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Literal struct FileXRefs : Predicate, std::vector>> { static const char* GLEAN_name() { return "fbthrift.FileXRefs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileXRefs struct File : Predicate> { static const char* GLEAN_name() { return "fbthrift.File"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct File } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Fbthrift { enum class FieldKind { struct_, union_, exception_ }; using FieldId = IntegerLiteral; } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::Identifier, Maybe>, Array>; }; namespace schema { namespace Fbthrift { struct FieldSpecification { FieldId id; Qualifier qualifier; Fact type_; Fact name; boost::variant>, Alt<1, TypedConst>> value; std::vector> structuredAnnotations; bool operator==(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) == std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } bool operator!=(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) != std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } bool operator<(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) < std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } bool operator<=(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) <= std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } bool operator>(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) > std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } bool operator>=(const FieldSpecification& other) const { return std::tie(id,qualifier,type_,name,value,structuredAnnotations) >= std::tie(other.id,other.qualifier,other.type_,other.name,other.value,other.structuredAnnotations); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(id, qualifier, type_, name, value, structuredAnnotations)); } }; // struct FieldSpecification struct StructType : Predicate, std::vector, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.StructType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct StructType } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::Identifier, Array>; }; namespace schema { namespace Fbthrift { struct UnqualField { FieldId id; Fact type_; Fact name; std::vector> structuredAnnotations; bool operator==(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) == std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator!=(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) != std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator<(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) < std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator<=(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) <= std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator>(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) > std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator>=(const UnqualField& other) const { return std::tie(id,type_,name,structuredAnnotations) >= std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(id, type_, name, structuredAnnotations)); } }; // struct UnqualField struct UnionType : Predicate, std::vector, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.UnionType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct UnionType struct FieldDecl : Predicate, FieldKind, Fact>> { static const char* GLEAN_name() { return "fbthrift.FieldDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FieldDecl struct ExceptionVal : Predicate> { static const char* GLEAN_name() { return "fbthrift.ExceptionVal"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExceptionVal struct ExceptionType : Predicate, std::vector, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.ExceptionType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExceptionType } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Fbthrift { struct ExceptionSpecName { boost::variant>, Alt<1, Fact>> GLEAN_value; static ExceptionSpecName simple(const Fact& a) { return ExceptionSpecName{Alt<0, Fact>(a)}; } static ExceptionSpecName typedef_(const Fact& a) { return ExceptionSpecName{Alt<1, Fact>(a)}; } bool operator==(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ExceptionSpecName& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ExceptionSpecName } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, facebook::glean::cpp::schema::Fbthrift::Identifier, Array>; }; namespace schema { namespace Fbthrift { struct ExceptionSpecification { FieldId id; ExceptionSpecName type_; Fact name; std::vector> structuredAnnotations; bool operator==(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) == std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator!=(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) != std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator<(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) < std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator<=(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) <= std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator>(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) > std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } bool operator>=(const ExceptionSpecification& other) const { return std::tie(id,type_,name,structuredAnnotations) >= std::tie(other.id,other.type_,other.name,other.structuredAnnotations); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(id, type_, name, structuredAnnotations)); } }; // struct ExceptionSpecification } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Array>>; }; namespace schema { namespace Fbthrift { struct ResultStream { boost::variant>, Alt<1, Fact>> response; Fact stream_; std::vector throws_; bool operator==(const ResultStream& other) const { return std::tie(response,stream_,throws_) == std::tie(other.response,other.stream_,other.throws_); } bool operator!=(const ResultStream& other) const { return std::tie(response,stream_,throws_) != std::tie(other.response,other.stream_,other.throws_); } bool operator<(const ResultStream& other) const { return std::tie(response,stream_,throws_) < std::tie(other.response,other.stream_,other.throws_); } bool operator<=(const ResultStream& other) const { return std::tie(response,stream_,throws_) <= std::tie(other.response,other.stream_,other.throws_); } bool operator>(const ResultStream& other) const { return std::tie(response,stream_,throws_) > std::tie(other.response,other.stream_,other.throws_); } bool operator>=(const ResultStream& other) const { return std::tie(response,stream_,throws_) >= std::tie(other.response,other.stream_,other.throws_); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(response, stream_, throws_)); } }; // struct ResultStream struct TypeDefException : Predicate, ExceptionSpecName>> { static const char* GLEAN_name() { return "fbthrift.TypeDefException"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeDefException struct ExceptionName : Predicate>> { static const char* GLEAN_name() { return "fbthrift.ExceptionName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ExceptionName struct EnumerationType : Predicate, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.EnumerationType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EnumerationType struct EnumValueDef : Predicate, IntegerLiteral, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.EnumValueDef"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EnumValueDef struct EnumValue : Predicate>> { static const char* GLEAN_name() { return "fbthrift.EnumValue"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EnumValue struct EnumVal : Predicate>> { static const char* GLEAN_name() { return "fbthrift.EnumVal"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EnumVal using Declaration = XRefTarget; struct DeclarationComment : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "fbthrift.DeclarationComment"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationComment struct DeclarationFile : Predicate>> { static const char* GLEAN_name() { return "fbthrift.DeclarationFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationFile struct DeclarationMember : Predicate, Fact, Declaration>> { static const char* GLEAN_name() { return "fbthrift.DeclarationMember"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationMember struct DeclarationName : Predicate, Declaration>> { static const char* GLEAN_name() { return "fbthrift.DeclarationName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationName struct DeclarationNameSpan : Predicate, Fact, Loc>> { static const char* GLEAN_name() { return "fbthrift.DeclarationNameSpan"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationNameSpan struct DeclarationUses : Predicate, Loc>> { static const char* GLEAN_name() { return "fbthrift.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationUses struct FileDeclaration : Predicate, Declaration>> { static const char* GLEAN_name() { return "fbthrift.FileDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileDeclaration struct FunctionDeclarationName : Predicate, Fact, Declaration>> { static const char* GLEAN_name() { return "fbthrift.FunctionDeclarationName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FunctionDeclarationName } // namespace Fbthrift namespace Hack { struct HackToThrift : Predicate> { static const char* GLEAN_name() { return "hack.HackToThrift"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct HackToThrift struct ThriftToHack : Predicate> { static const char* GLEAN_name() { return "hack.ThriftToHack"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ThriftToHack } // namespace Hack } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Fbthrift { struct ContainerType { boost::variant>, Alt<1, Fact>, Alt<2, MapType>> GLEAN_value; static ContainerType list_(const Fact& a) { return ContainerType{Alt<0, Fact>(a)}; } static ContainerType set_(const Fact& a) { return ContainerType{Alt<1, Fact>(a)}; } static ContainerType map_(const MapType& a) { return ContainerType{Alt<2, MapType>(a)}; } bool operator==(const ContainerType& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ContainerType& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ContainerType& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ContainerType& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ContainerType& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ContainerType& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ContainerType struct TypeSpecification : Predicate, Alt<1, ContainerType>, Alt<2, NamedType>>> { static const char* GLEAN_name() { return "fbthrift.TypeSpecification"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeSpecification struct ConstantDefinition : Predicate, TypedConstT>> { static const char* GLEAN_name() { return "fbthrift.ConstantDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ConstantDefinition struct Constant : Predicate>> { static const char* GLEAN_name() { return "fbthrift.Constant"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Constant } // namespace Fbthrift namespace Erlang { struct NameLowerCase : Predicate> { static const char* GLEAN_name() { return "erlang.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameLowerCase } // namespace Erlang } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Erlang { struct Fqn { std::string module; std::string name; uint64_t arity; bool operator==(const Fqn& other) const { return std::tie(module,name,arity) == std::tie(other.module,other.name,other.arity); } bool operator!=(const Fqn& other) const { return std::tie(module,name,arity) != std::tie(other.module,other.name,other.arity); } bool operator<(const Fqn& other) const { return std::tie(module,name,arity) < std::tie(other.module,other.name,other.arity); } bool operator<=(const Fqn& other) const { return std::tie(module,name,arity) <= std::tie(other.module,other.name,other.arity); } bool operator>(const Fqn& other) const { return std::tie(module,name,arity) > std::tie(other.module,other.name,other.arity); } bool operator>=(const Fqn& other) const { return std::tie(module,name,arity) >= std::tie(other.module,other.name,other.arity); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(module, name, arity)); } }; // struct Fqn struct FunctionDeclaration : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "erlang.FunctionDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FunctionDeclaration } // namespace Erlang } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Erlang { struct XRefViaFqn { Fqn target; facebook::glean::cpp::schema::Src::ByteSpan source; bool operator==(const XRefViaFqn& other) const { return std::tie(target,source) == std::tie(other.target,other.source); } bool operator!=(const XRefViaFqn& other) const { return std::tie(target,source) != std::tie(other.target,other.source); } bool operator<(const XRefViaFqn& other) const { return std::tie(target,source) < std::tie(other.target,other.source); } bool operator<=(const XRefViaFqn& other) const { return std::tie(target,source) <= std::tie(other.target,other.source); } bool operator>(const XRefViaFqn& other) const { return std::tie(target,source) > std::tie(other.target,other.source); } bool operator>=(const XRefViaFqn& other) const { return std::tie(target,source) >= std::tie(other.target,other.source); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source)); } }; // struct XRefViaFqn struct XRefsViaFqnByFile : Predicate, std::vector>> { static const char* GLEAN_name() { return "erlang.XRefsViaFqnByFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefsViaFqnByFile struct DeclarationComment : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "erlang.DeclarationComment"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationComment } // namespace Erlang } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Erlang { struct Declaration { boost::variant>> GLEAN_value; static Declaration func(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "erlang.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationLocation struct DeclarationReference : Predicate> { static const char* GLEAN_name() { return "erlang.DeclarationReference"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationReference struct DeclarationToFqn : Predicate { static const char* GLEAN_name() { return "erlang.DeclarationToFqn"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationToFqn struct DeclarationUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "erlang.DeclarationUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationUses struct DeclarationWithFqn : Predicate> { static const char* GLEAN_name() { return "erlang.DeclarationWithFqn"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationWithFqn struct DeclarationsByFile : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Declaration>> { static const char* GLEAN_name() { return "erlang.DeclarationsByFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationsByFile struct SearchByName : Predicate> { static const char* GLEAN_name() { return "erlang.SearchByName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByName } // namespace Erlang } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Dyn { enum class Usage { Unused, Enumerated, Used }; struct ObserverIdentifier : Predicate { static const char* GLEAN_name() { return "dyn.ObserverIdentifier"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct ObserverIdentifier } // namespace Dyn } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Dyn { struct Observer { boost::variant>, Alt<1, Fact>> GLEAN_value; static Observer symbol(const Fact& a) { return Observer{Alt<0, Fact>(a)}; } static Observer other(const Fact& a) { return Observer{Alt<1, Fact>(a)}; } bool operator==(const Observer& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Observer& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Observer& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Observer& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Observer& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Observer& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Observer struct Environment : Predicate { static const char* GLEAN_name() { return "dyn.Environment"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct Environment struct EntityDynamicReference : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "dyn.EntityDynamicReference"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EntityDynamicReference } // namespace Dyn } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Digest { struct Digest { std::string hash; uint64_t size; bool operator==(const Digest& other) const { return std::tie(hash,size) == std::tie(other.hash,other.size); } bool operator!=(const Digest& other) const { return std::tie(hash,size) != std::tie(other.hash,other.size); } bool operator<(const Digest& other) const { return std::tie(hash,size) < std::tie(other.hash,other.size); } bool operator<=(const Digest& other) const { return std::tie(hash,size) <= std::tie(other.hash,other.size); } bool operator>(const Digest& other) const { return std::tie(hash,size) > std::tie(other.hash,other.size); } bool operator>=(const Digest& other) const { return std::tie(hash,size) >= std::tie(other.hash,other.size); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(hash, size)); } }; // struct Digest struct FileDigest : Predicate, Digest>> { static const char* GLEAN_name() { return "digest.FileDigest"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileDigest } // namespace Digest } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>, Maybe>; }; namespace schema { namespace Glass { struct FileMetadata { bool indexed; boost::variant>, Alt<1, Fact>> offsets; boost::variant>, Alt<1, facebook::glean::cpp::schema::Digest::Digest>> digest; boost::variant>, Alt<1, Fact>> indexFailure; bool operator==(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) == std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } bool operator!=(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) != std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } bool operator<(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) < std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } bool operator<=(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) <= std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } bool operator>(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) > std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } bool operator>=(const FileMetadata& other) const { return std::tie(indexed,offsets,digest,indexFailure) >= std::tie(other.indexed,other.offsets,other.digest,other.indexFailure); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(indexed, offsets, digest, indexFailure)); } }; // struct FileMetadata struct FileInfo : Predicate, FileMetadata>> { static const char* GLEAN_name() { return "glass.FileInfo"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileInfo } // namespace Glass namespace Dataswarm { struct TableDeclaration : Predicate> { static const char* GLEAN_name() { return "dataswarm.TableDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TableDeclaration struct TableColumnDeclaration : Predicate> { static const char* GLEAN_name() { return "dataswarm.TableColumnDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TableColumnDeclaration struct SubqueryDeclaration : Predicate> { static const char* GLEAN_name() { return "dataswarm.SubqueryDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SubqueryDeclaration struct SubqueryColumnDeclaration : Predicate> { static const char* GLEAN_name() { return "dataswarm.SubqueryColumnDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SubqueryColumnDeclaration struct MacroDeclaration : Predicate> { static const char* GLEAN_name() { return "dataswarm.MacroDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MacroDeclaration } // namespace Dataswarm } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Dataswarm { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>> GLEAN_value; static Declaration macro(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration table(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration subquery(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration table_column(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration subquery_column(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "dataswarm.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationLocation struct DeclarationName : Predicate> { static const char* GLEAN_name() { return "dataswarm.DeclarationName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationName } // namespace Dataswarm } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Dataswarm { struct XRef { Declaration target; facebook::glean::cpp::schema::Src::ByteSpan source; bool operator==(const XRef& other) const { return std::tie(target,source) == std::tie(other.target,other.source); } bool operator!=(const XRef& other) const { return std::tie(target,source) != std::tie(other.target,other.source); } bool operator<(const XRef& other) const { return std::tie(target,source) < std::tie(other.target,other.source); } bool operator<=(const XRef& other) const { return std::tie(target,source) <= std::tie(other.target,other.source); } bool operator>(const XRef& other) const { return std::tie(target,source) > std::tie(other.target,other.source); } bool operator>=(const XRef& other) const { return std::tie(target,source) >= std::tie(other.target,other.source); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source)); } }; // struct XRef struct XRefsByFile : Predicate, std::vector>> { static const char* GLEAN_name() { return "dataswarm.XRefsByFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct XRefsByFile } // namespace Dataswarm } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct XRefVia { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static XRefVia usingDeclaration(const Fact& a) { return XRefVia{Alt<0, Fact>(a)}; } static XRefVia usingDirective(const Fact& a) { return XRefVia{Alt<1, Fact>(a)}; } static XRefVia macro(const Fact& a) { return XRefVia{Alt<2, Fact>(a)}; } bool operator==(const XRefVia& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefVia& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefVia& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefVia& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefVia& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefVia& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefVia struct VariableLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.VariableLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct VariableLowerCase struct UsingDirective : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.UsingDirective"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct UsingDirective struct UsingDeclaration : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.UsingDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct UsingDeclaration using USR = std::string; struct TypeAliasLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.TypeAliasLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TypeAliasLowerCase } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Cxx1 { enum class TypeAliasKind { Typedef, Using }; struct TypeAliasDeclaration : Predicate, Fact, TypeAliasKind, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.TypeAliasDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TypeAliasDeclaration struct Type : Predicate { static const char* GLEAN_name() { return "cxx1.Type"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Type struct TranslationUnitXRefs : Predicate, std::vector>>> { static const char* GLEAN_name() { return "cxx1.TranslationUnitXRefs"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TranslationUnitXRefs struct TranslationUnitTrace : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.TranslationUnitTrace"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TranslationUnitTrace struct TranslationUnitIncludeTree : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.TranslationUnitIncludeTree"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TranslationUnitIncludeTree struct Trace : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "cxx1.Trace"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Trace } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Cxx1 { enum class RefQualifier { None_, LValue, RValue }; struct RecordUnionLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.RecordUnionLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordUnionLowerCase struct RecordStructLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.RecordStructLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordStructLowerCase struct RecordDerived : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.RecordDerived"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDerived struct RecordClassLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.RecordClassLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordClassLowerCase } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct PpEntity { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static PpEntity define(const Fact& a) { return PpEntity{Alt<0, Fact>(a)}; } static PpEntity undef(const Fact& a) { return PpEntity{Alt<1, Fact>(a)}; } static PpEntity include_(const Fact& a) { return PpEntity{Alt<2, Fact>(a)}; } bool operator==(const PpEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const PpEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const PpEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const PpEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const PpEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const PpEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct PpEntity } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Cxx1 { struct Parameter { Fact name; Fact type; bool operator==(const Parameter& other) const { return std::tie(name,type) == std::tie(other.name,other.type); } bool operator!=(const Parameter& other) const { return std::tie(name,type) != std::tie(other.name,other.type); } bool operator<(const Parameter& other) const { return std::tie(name,type) < std::tie(other.name,other.type); } bool operator<=(const Parameter& other) const { return std::tie(name,type) <= std::tie(other.name,other.type); } bool operator>(const Parameter& other) const { return std::tie(name,type) > std::tie(other.name,other.type); } bool operator>=(const Parameter& other) const { return std::tie(name,type) >= std::tie(other.name,other.type); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, type)); } }; // struct Parameter struct Signature : Predicate, std::vector>> { static const char* GLEAN_name() { return "cxx1.Signature"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Signature struct PPDefineLocation : Predicate, std::string, Fact, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.PPDefineLocation"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct PPDefineLocation using Operator = std::string; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Cxx1 { struct ObjcSelectorSlot { Fact objcMethod; uint64_t index; bool operator==(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) == std::tie(other.objcMethod,other.index); } bool operator!=(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) != std::tie(other.objcMethod,other.index); } bool operator<(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) < std::tie(other.objcMethod,other.index); } bool operator<=(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) <= std::tie(other.objcMethod,other.index); } bool operator>(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) > std::tie(other.objcMethod,other.index); } bool operator>=(const ObjcSelectorSlot& other) const { return std::tie(objcMethod,index) >= std::tie(other.objcMethod,other.index); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(objcMethod, index)); } }; // struct ObjcSelectorSlot struct ObjcSelector : Predicate> { static const char* GLEAN_name() { return "cxx1.ObjcSelector"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcSelector } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Cxx1 { enum class ObjcPropertyKind { Synthesize, Dynamic }; struct ObjcPropertyImplementation : Predicate, ObjcPropertyKind, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.ObjcPropertyImplementation"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcPropertyImplementation struct ObjcPropertyIVar : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcPropertyIVar"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcPropertyIVar struct ObjcMethodDefinition : Predicate> { static const char* GLEAN_name() { return "cxx1.ObjcMethodDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcMethodDefinition struct ObjcMethodDeclarationName : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcMethodDeclarationName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcMethodDeclarationName struct ObjcInterfaceToImplementation : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcInterfaceToImplementation"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcInterfaceToImplementation struct ObjcImplements : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcImplements"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcImplements } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Cxx1 { struct ObjcIVar { bool synthesize; boost::variant>, Alt<1, uint64_t>> bitsize; bool operator==(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) == std::tie(other.synthesize,other.bitsize); } bool operator!=(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) != std::tie(other.synthesize,other.bitsize); } bool operator<(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) < std::tie(other.synthesize,other.bitsize); } bool operator<=(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) <= std::tie(other.synthesize,other.bitsize); } bool operator>(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) > std::tie(other.synthesize,other.bitsize); } bool operator>=(const ObjcIVar& other) const { return std::tie(synthesize,bitsize) >= std::tie(other.synthesize,other.bitsize); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(synthesize, bitsize)); } }; // struct ObjcIVar struct ObjcContainerInterfaceLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.ObjcContainerInterfaceLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerInterfaceLowerCase struct ObjcContainerInheritance : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcContainerInheritance"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerInheritance struct ObjcContainerDefinition : Predicate, std::vector>, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcContainerDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerDefinition struct ObjcContainerDeclarationInterface : Predicate>> { static const char* GLEAN_name() { return "cxx1.ObjcContainerDeclarationInterface"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerDeclarationInterface struct ObjcContainerBase : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.ObjcContainerBase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerBase } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Cxx1 { struct ObjcCategoryId { Fact className; Fact categoryName; bool operator==(const ObjcCategoryId& other) const { return std::tie(className,categoryName) == std::tie(other.className,other.categoryName); } bool operator!=(const ObjcCategoryId& other) const { return std::tie(className,categoryName) != std::tie(other.className,other.categoryName); } bool operator<(const ObjcCategoryId& other) const { return std::tie(className,categoryName) < std::tie(other.className,other.categoryName); } bool operator<=(const ObjcCategoryId& other) const { return std::tie(className,categoryName) <= std::tie(other.className,other.categoryName); } bool operator>(const ObjcCategoryId& other) const { return std::tie(className,categoryName) > std::tie(other.className,other.categoryName); } bool operator>=(const ObjcCategoryId& other) const { return std::tie(className,categoryName) >= std::tie(other.className,other.categoryName); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(className, categoryName)); } }; // struct ObjcCategoryId } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Cxx1::Name, facebook::glean::cpp::schema::Cxx1::Name, Repr>; }; namespace schema { namespace Cxx1 { struct ObjcContainerId { boost::variant>, Alt<1, Fact>, Alt<2, ObjcCategoryId>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, ObjcCategoryId>> GLEAN_value; static ObjcContainerId protocol(const Fact& a) { return ObjcContainerId{Alt<0, Fact>(a)}; } static ObjcContainerId interface_(const Fact& a) { return ObjcContainerId{Alt<1, Fact>(a)}; } static ObjcContainerId categoryInterface(const ObjcCategoryId& a) { return ObjcContainerId{Alt<2, ObjcCategoryId>(a)}; } static ObjcContainerId extensionInterface(const Fact& a) { return ObjcContainerId{Alt<3, Fact>(a)}; } static ObjcContainerId implementation(const Fact& a) { return ObjcContainerId{Alt<4, Fact>(a)}; } static ObjcContainerId categoryImplementation(const ObjcCategoryId& a) { return ObjcContainerId{Alt<5, ObjcCategoryId>(a)}; } bool operator==(const ObjcContainerId& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ObjcContainerId& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ObjcContainerId& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ObjcContainerId& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ObjcContainerId& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ObjcContainerId& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ObjcContainerId struct ObjcContainerDeclaration : Predicate> { static const char* GLEAN_name() { return "cxx1.ObjcContainerDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcContainerDeclaration struct ObjcMethodDeclaration : Predicate, std::vector, ObjcContainerId, Fact, bool, bool, bool, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.ObjcMethodDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcMethodDeclaration struct ObjcPropertyDeclaration : Predicate, ObjcContainerId, Fact, bool, bool, bool, bool, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.ObjcPropertyDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjcPropertyDeclaration struct ObjContainerIdName : Predicate>> { static const char* GLEAN_name() { return "cxx1.ObjContainerIdName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ObjContainerIdName } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct NamespaceTarget { boost::variant>, Alt<1, Fact>> GLEAN_value; static NamespaceTarget namespace_(const Fact& a) { return NamespaceTarget{Alt<0, Fact>(a)}; } static NamespaceTarget namespaceAlias(const Fact& a) { return NamespaceTarget{Alt<1, Fact>(a)}; } bool operator==(const NamespaceTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const NamespaceTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const NamespaceTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const NamespaceTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const NamespaceTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const NamespaceTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct NamespaceTarget struct NamespaceQName : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "cxx1.NamespaceQName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceQName struct NamespaceLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.NamespaceLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceLowerCase struct NamespaceDefinition : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.NamespaceDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceDefinition struct NamespaceDeclarationName : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.NamespaceDeclarationName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceDeclarationName struct NamespaceDeclarationByName : Predicate>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "cxx1.NamespaceDeclarationByName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceDeclarationByName struct NamespaceDeclaration : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.NamespaceDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceDeclaration struct NamespaceAliasDeclaration : Predicate, NamespaceTarget, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.NamespaceAliasDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct NamespaceAliasDeclaration struct Name : Predicate { static const char* GLEAN_name() { return "cxx1.Name"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Name } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Cxx1 { struct MethodSignature { bool isVirtual; bool isConst; bool isVolatile; RefQualifier refQualifier; bool operator==(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) == std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } bool operator!=(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) != std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } bool operator<(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) < std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } bool operator<=(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) <= std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } bool operator>(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) > std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } bool operator>=(const MethodSignature& other) const { return std::tie(isVirtual,isConst,isVolatile,refQualifier) >= std::tie(other.isVirtual,other.isConst,other.isVolatile,other.refQualifier); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(isVirtual, isConst, isVolatile, refQualifier)); } }; // struct MethodSignature struct MethodOverrides : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.MethodOverrides"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct MethodOverrides struct MethodOverridden : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.MethodOverridden"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct MethodOverridden } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Cxx1 { struct MaybeIncludeTree { boost::variant>, Alt<1, Fact>> tree; bool operator==(const MaybeIncludeTree& other) const { return std::tie(tree) == std::tie(other.tree); } bool operator!=(const MaybeIncludeTree& other) const { return std::tie(tree) != std::tie(other.tree); } bool operator<(const MaybeIncludeTree& other) const { return std::tie(tree) < std::tie(other.tree); } bool operator<=(const MaybeIncludeTree& other) const { return std::tie(tree) <= std::tie(other.tree); } bool operator>(const MaybeIncludeTree& other) const { return std::tie(tree) > std::tie(other.tree); } bool operator>=(const MaybeIncludeTree& other) const { return std::tie(tree) >= std::tie(other.tree); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(tree)); } }; // struct MaybeIncludeTree using MangledNameHash = std::string; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Cxx1 { enum class LocalVariableKind { SimpleVariable, StaticVariable, Parameter }; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Cxx1 { enum class LocalVariableAttribute { Plain, Constexpr }; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Cxx1 { struct LocalVariable { LocalVariableKind kind; LocalVariableAttribute attribute; bool operator==(const LocalVariable& other) const { return std::tie(kind,attribute) == std::tie(other.kind,other.attribute); } bool operator!=(const LocalVariable& other) const { return std::tie(kind,attribute) != std::tie(other.kind,other.attribute); } bool operator<(const LocalVariable& other) const { return std::tie(kind,attribute) < std::tie(other.kind,other.attribute); } bool operator<=(const LocalVariable& other) const { return std::tie(kind,attribute) <= std::tie(other.kind,other.attribute); } bool operator>(const LocalVariable& other) const { return std::tie(kind,attribute) > std::tie(other.kind,other.attribute); } bool operator>=(const LocalVariable& other) const { return std::tie(kind,attribute) >= std::tie(other.kind,other.attribute); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(kind, attribute)); } }; // struct LocalVariable using LiteralOperator = std::string; struct IncludeTreeTranslationUnit : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.IncludeTreeTranslationUnit"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct IncludeTreeTranslationUnit struct IncludeTreeParent : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.IncludeTreeParent"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct IncludeTreeParent struct IncludeTree : Predicate, std::vector>> { static const char* GLEAN_name() { return "cxx1.IncludeTree"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct IncludeTree } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Cxx1 { struct IncludeTrace { Fact include_; boost::variant>, Alt<1, Fact>> trace; bool operator==(const IncludeTrace& other) const { return std::tie(include_,trace) == std::tie(other.include_,other.trace); } bool operator!=(const IncludeTrace& other) const { return std::tie(include_,trace) != std::tie(other.include_,other.trace); } bool operator<(const IncludeTrace& other) const { return std::tie(include_,trace) < std::tie(other.include_,other.trace); } bool operator<=(const IncludeTrace& other) const { return std::tie(include_,trace) <= std::tie(other.include_,other.trace); } bool operator>(const IncludeTrace& other) const { return std::tie(include_,trace) > std::tie(other.include_,other.trace); } bool operator>=(const IncludeTrace& other) const { return std::tie(include_,trace) >= std::tie(other.include_,other.trace); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(include_, trace)); } }; // struct IncludeTrace } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Pp1::Define, facebook::glean::cpp::schema::Pp1::Undef, facebook::glean::cpp::schema::Pp1::Use>; }; namespace schema { namespace Cxx1 { struct PPEvent { boost::variant, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static PPEvent include_(const IncludeTrace& a) { return PPEvent{Alt<0, IncludeTrace>(a)}; } static PPEvent define(const Fact& a) { return PPEvent{Alt<1, Fact>(a)}; } static PPEvent undef(const Fact& a) { return PPEvent{Alt<2, Fact>(a)}; } static PPEvent use(const Fact& a) { return PPEvent{Alt<3, Fact>(a)}; } bool operator==(const PPEvent& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const PPEvent& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const PPEvent& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const PPEvent& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const PPEvent& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const PPEvent& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct PPEvent struct PPTrace : Predicate, std::vector>> { static const char* GLEAN_name() { return "cxx1.PPTrace"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct PPTrace } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Cxx1 { enum class GlobalVariableKind { SimpleVariable, StaticVariable, StaticMember }; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Cxx1 { enum class GlobalVariableAttribute { Plain, Inline, Constexpr }; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, Bool>; }; namespace schema { namespace Cxx1 { struct GlobalVariable { GlobalVariableKind kind; GlobalVariableAttribute attribute; bool definition; bool operator==(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) == std::tie(other.kind,other.attribute,other.definition); } bool operator!=(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) != std::tie(other.kind,other.attribute,other.definition); } bool operator<(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) < std::tie(other.kind,other.attribute,other.definition); } bool operator<=(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) <= std::tie(other.kind,other.attribute,other.definition); } bool operator>(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) > std::tie(other.kind,other.attribute,other.definition); } bool operator>=(const GlobalVariable& other) const { return std::tie(kind,attribute,definition) >= std::tie(other.kind,other.attribute,other.definition); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(kind, attribute, definition)); } }; // struct GlobalVariable struct FunctionLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.FunctionLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionLowerCase struct FunctionDefinition : Predicate, bool>> { static const char* GLEAN_name() { return "cxx1.FunctionDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDefinition struct FunctionDeclarationNameString : Predicate, std::string>> { static const char* GLEAN_name() { return "cxx1.FunctionDeclarationNameString"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDeclarationNameString struct FunctionDeclarationName : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.FunctionDeclarationName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDeclarationName struct FunctionDeclaration : Predicate, Fact, boost::variant>, Alt<1, MethodSignature>>, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.FunctionDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDeclaration struct FunctionDeclAttribute : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.FunctionDeclAttribute"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDeclAttribute struct FunctionAttribute : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.FunctionAttribute"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionAttribute } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, Repr>; }; namespace schema { namespace Cxx1 { struct From { facebook::glean::cpp::schema::Src::PackedByteSpans spans; facebook::glean::cpp::schema::Src::PackedByteSpans expansions; facebook::glean::cpp::schema::Src::PackedByteSpans spellings; bool operator==(const From& other) const { return std::tie(spans,expansions,spellings) == std::tie(other.spans,other.expansions,other.spellings); } bool operator!=(const From& other) const { return std::tie(spans,expansions,spellings) != std::tie(other.spans,other.expansions,other.spellings); } bool operator<(const From& other) const { return std::tie(spans,expansions,spellings) < std::tie(other.spans,other.expansions,other.spellings); } bool operator<=(const From& other) const { return std::tie(spans,expansions,spellings) <= std::tie(other.spans,other.expansions,other.spellings); } bool operator>(const From& other) const { return std::tie(spans,expansions,spellings) > std::tie(other.spans,other.expansions,other.spellings); } bool operator>=(const From& other) const { return std::tie(spans,expansions,spellings) >= std::tie(other.spans,other.expansions,other.spellings); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(spans, expansions, spellings)); } }; // struct From struct FileXRefs : Predicate, std::vector>>> { static const char* GLEAN_name() { return "cxx1.FileXRefs"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FileXRefs struct FilePPUseXRefs : Predicate, facebook::glean::cpp::schema::Src::Range, Fact>> { static const char* GLEAN_name() { return "cxx1.FilePPUseXRefs"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FilePPUseXRefs struct FilePPUseTraceXRefs : Predicate, Fact, facebook::glean::cpp::schema::Src::Range, Fact>> { static const char* GLEAN_name() { return "cxx1.FilePPUseTraceXRefs"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FilePPUseTraceXRefs struct FilePPTraceXRefs : Predicate, Fact, facebook::glean::cpp::schema::Src::Range, PpEntity, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "cxx1.FilePPTraceXRefs"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FilePPTraceXRefs } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Cxx1 { struct Field { bool mutable_; boost::variant>, Alt<1, uint64_t>> bitsize; bool operator==(const Field& other) const { return std::tie(mutable_,bitsize) == std::tie(other.mutable_,other.bitsize); } bool operator!=(const Field& other) const { return std::tie(mutable_,bitsize) != std::tie(other.mutable_,other.bitsize); } bool operator<(const Field& other) const { return std::tie(mutable_,bitsize) < std::tie(other.mutable_,other.bitsize); } bool operator<=(const Field& other) const { return std::tie(mutable_,bitsize) <= std::tie(other.mutable_,other.bitsize); } bool operator>(const Field& other) const { return std::tie(mutable_,bitsize) > std::tie(other.mutable_,other.bitsize); } bool operator>=(const Field& other) const { return std::tie(mutable_,bitsize) >= std::tie(other.mutable_,other.bitsize); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(mutable_, bitsize)); } }; // struct Field } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr>; }; namespace schema { namespace Cxx1 { struct VariableKind { boost::variant, Alt<1, LocalVariable>, Alt<2, Field>, Alt<3, ObjcIVar>> GLEAN_value; static VariableKind global_(const GlobalVariable& a) { return VariableKind{Alt<0, GlobalVariable>(a)}; } static VariableKind local(const LocalVariable& a) { return VariableKind{Alt<1, LocalVariable>(a)}; } static VariableKind field(const Field& a) { return VariableKind{Alt<2, Field>(a)}; } static VariableKind ivar(const ObjcIVar& a) { return VariableKind{Alt<3, ObjcIVar>(a)}; } bool operator==(const VariableKind& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const VariableKind& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const VariableKind& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const VariableKind& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const VariableKind& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const VariableKind& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct VariableKind struct VariableDeclaration : Predicate, Fact, VariableKind, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.VariableDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct VariableDeclaration struct EnumeratorLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.EnumeratorLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumeratorLowerCase struct EnumeratorInEnum : Predicate, Fact>> { static const char* GLEAN_name() { return "cxx1.EnumeratorInEnum"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumeratorInEnum struct EnumeratorByName : Predicate>> { static const char* GLEAN_name() { return "cxx1.EnumeratorByName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumeratorByName struct Enumerator : Predicate, Fact, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.Enumerator"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Enumerator struct EnumLowerCase : Predicate> { static const char* GLEAN_name() { return "cxx1.EnumLowerCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumLowerCase struct EnumDefinition : Predicate, std::vector>>> { static const char* GLEAN_name() { return "cxx1.EnumDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumDefinition struct EnumDeclaration : Predicate, bool, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.EnumDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumDeclaration } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct DefinitionEntity { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>> GLEAN_value; static DefinitionEntity record_(const Fact& a) { return DefinitionEntity{Alt<0, Fact>(a)}; } static DefinitionEntity function_(const Fact& a) { return DefinitionEntity{Alt<1, Fact>(a)}; } static DefinitionEntity enum_(const Fact& a) { return DefinitionEntity{Alt<2, Fact>(a)}; } static DefinitionEntity objcMethod(const Fact& a) { return DefinitionEntity{Alt<3, Fact>(a)}; } static DefinitionEntity objcContainer(const Fact& a) { return DefinitionEntity{Alt<4, Fact>(a)}; } static DefinitionEntity variable(const Fact& a) { return DefinitionEntity{Alt<5, Fact>(a)}; } static DefinitionEntity namespace_(const Fact& a) { return DefinitionEntity{Alt<6, Fact>(a)}; } bool operator==(const DefinitionEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const DefinitionEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const DefinitionEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const DefinitionEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const DefinitionEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const DefinitionEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct DefinitionEntity struct DefnInRecord : Predicate>> { static const char* GLEAN_name() { return "cxx1.DefnInRecord"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DefnInRecord } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, Fact>, Alt<8, Fact>, Alt<9, Fact>, Alt<10, Fact>, Alt<11, Fact>> GLEAN_value; static Declaration namespace_(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration usingDeclaration(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration usingDirective(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration record_(const Fact& a) { return Declaration{Alt<3, Fact>(a)}; } static Declaration enum_(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } static Declaration function_(const Fact& a) { return Declaration{Alt<5, Fact>(a)}; } static Declaration variable(const Fact& a) { return Declaration{Alt<6, Fact>(a)}; } static Declaration objcContainer(const Fact& a) { return Declaration{Alt<7, Fact>(a)}; } static Declaration objcMethod(const Fact& a) { return Declaration{Alt<8, Fact>(a)}; } static Declaration objcProperty(const Fact& a) { return Declaration{Alt<9, Fact>(a)}; } static Declaration typeAlias(const Fact& a) { return Declaration{Alt<10, Fact>(a)}; } static Declaration namespaceAlias(const Fact& a) { return Declaration{Alt<11, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationComment : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "cxx1.DeclarationComment"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationComment struct DeclarationInTrace : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclarationInTrace"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationInTrace struct DeclarationLocationName : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclarationLocationName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationLocationName struct DeclarationLocationNameSpan : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "cxx1.DeclarationLocationNameSpan"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationLocationNameSpan struct DeclarationNameSpan : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "cxx1.DeclarationNameSpan"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationNameSpan struct DeclarationSources : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclarationSources"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationSources struct DeclarationSrcRange : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclarationSrcRange"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationSrcRange struct DeclarationTargets : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclarationTargets"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationTargets struct DeclarationToUSR : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclarationToUSR"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationToUSR struct Declarations : Predicate> { static const char* GLEAN_name() { return "cxx1.Declarations"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Declarations struct DefToBaseDecl : Predicate> { static const char* GLEAN_name() { return "cxx1.DefToBaseDecl"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DefToBaseDecl struct MangledNameHashToDeclaration : Predicate> { static const char* GLEAN_name() { return "cxx1.MangledNameHashToDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct MangledNameHashToDeclaration struct Same : Predicate> { static const char* GLEAN_name() { return "cxx1.Same"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Same struct USRToDeclaration : Predicate> { static const char* GLEAN_name() { return "cxx1.USRToDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct USRToDeclaration } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Cxx1::Enumerator, facebook::glean::cpp::schema::Cxx1::ObjcSelector, Repr, Repr, facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget>; }; namespace schema { namespace Cxx1 { struct XRefTarget { boost::variant, Alt<1, Fact>, Alt<2, Fact>, Alt<3, ObjcSelectorSlot>, Alt<4, facebook::glean::cpp::schema::Src::Loc>, Alt<5, Fact>> GLEAN_value; static XRefTarget declaration(const Declaration& a) { return XRefTarget{Alt<0, Declaration>(a)}; } static XRefTarget enumerator(const Fact& a) { return XRefTarget{Alt<1, Fact>(a)}; } static XRefTarget objcSelector(const Fact& a) { return XRefTarget{Alt<2, Fact>(a)}; } static XRefTarget objcSelectorSlot(const ObjcSelectorSlot& a) { return XRefTarget{Alt<3, ObjcSelectorSlot>(a)}; } static XRefTarget unknown(const facebook::glean::cpp::schema::Src::Loc& a) { return XRefTarget{Alt<4, facebook::glean::cpp::schema::Src::Loc>(a)}; } static XRefTarget indirect(const Fact& a) { return XRefTarget{Alt<5, Fact>(a)}; } bool operator==(const XRefTarget& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefTarget& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefTarget& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefTarget& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefTarget& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefTarget& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefTarget } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Cxx1 { struct FixedXRef { XRefTarget target; From from; bool operator==(const FixedXRef& other) const { return std::tie(target,from) == std::tie(other.target,other.from); } bool operator!=(const FixedXRef& other) const { return std::tie(target,from) != std::tie(other.target,other.from); } bool operator<(const FixedXRef& other) const { return std::tie(target,from) < std::tie(other.target,other.from); } bool operator<=(const FixedXRef& other) const { return std::tie(target,from) <= std::tie(other.target,other.from); } bool operator>(const FixedXRef& other) const { return std::tie(target,from) > std::tie(other.target,other.from); } bool operator>=(const FixedXRef& other) const { return std::tie(target,from) >= std::tie(other.target,other.from); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, from)); } }; // struct FixedXRef struct FileXRefMap : Predicate, std::vector, std::vector>> { static const char* GLEAN_name() { return "cxx1.FileXRefMap"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FileXRefMap struct SpellingXRef : Predicate> { static const char* GLEAN_name() { return "cxx1.SpellingXRef"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct SpellingXRef struct TargetUses : Predicate, From>> { static const char* GLEAN_name() { return "cxx1.TargetUses"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TargetUses struct ThriftToCxx : Predicate> { static const char* GLEAN_name() { return "cxx1.ThriftToCxx"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct ThriftToCxx struct XRefIndirectTarget : Predicate> { static const char* GLEAN_name() { return "cxx1.XRefIndirectTarget"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct XRefIndirectTarget struct XRefTargets : Predicate> { static const char* GLEAN_name() { return "cxx1.XRefTargets"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct XRefTargets } // namespace Cxx1 namespace Symbolid { namespace Cxx { struct LookupNamespaceDeclaration : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Cxx1::Declaration>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupNamespaceDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupNamespaceDeclaration } // namespace Cxx } // namespace Symbolid namespace Cxx1 { struct DeclToFamily : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclToFamily"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclToFamily struct DeclInRecord : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclInRecord"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclInRecord struct DeclInObjcContainer : Predicate>> { static const char* GLEAN_name() { return "cxx1.DeclInObjcContainer"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclInObjcContainer struct DeclFamilyOf : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclFamilyOf"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclFamilyOf struct DeclFamily : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclFamily"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclFamily struct CxxToThrift : Predicate> { static const char* GLEAN_name() { return "cxx1.CxxToThrift"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct CxxToThrift struct Attribute : Predicate { static const char* GLEAN_name() { return "cxx1.Attribute"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct Attribute } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Cxx1 { enum class Access { Public, Protected, Private }; } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Tuple, Bool>; }; namespace schema { namespace Cxx1 { struct RecordBase { Fact base; Access access; bool isVirtual; bool operator==(const RecordBase& other) const { return std::tie(base,access,isVirtual) == std::tie(other.base,other.access,other.isVirtual); } bool operator!=(const RecordBase& other) const { return std::tie(base,access,isVirtual) != std::tie(other.base,other.access,other.isVirtual); } bool operator<(const RecordBase& other) const { return std::tie(base,access,isVirtual) < std::tie(other.base,other.access,other.isVirtual); } bool operator<=(const RecordBase& other) const { return std::tie(base,access,isVirtual) <= std::tie(other.base,other.access,other.isVirtual); } bool operator>(const RecordBase& other) const { return std::tie(base,access,isVirtual) > std::tie(other.base,other.access,other.isVirtual); } bool operator>=(const RecordBase& other) const { return std::tie(base,access,isVirtual) >= std::tie(other.base,other.access,other.isVirtual); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(base, access, isVirtual)); } }; // struct RecordBase struct RecordDefinition : Predicate, std::vector, Fact>> { static const char* GLEAN_name() { return "cxx1.RecordDefinition"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDefinition } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Csharp { enum class Variance { In, None_, Out }; } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Enum<9>; }; namespace schema { namespace Csharp { enum class UnityPackageType { Undefined, ThirdParty, Core, Runtime, Modules, Worlds, Apps, Clones, TestPackages }; struct UnityPackageToProject : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.UnityPackageToProject"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct UnityPackageToProject struct UnityPackage : Predicate> { static const char* GLEAN_name() { return "csharp.UnityPackage"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct UnityPackage } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Enum<7>; }; namespace schema { namespace Csharp { enum class UnityAssemblyType { Package, Editor, Tests, TestsEditor, UnitTests, Internal, AllApis }; struct UnityProjectSource : Predicate, UnityAssemblyType, Fact>> { static const char* GLEAN_name() { return "csharp.UnityProjectSource"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct UnityProjectSource struct TypeParameter : Predicate, boost::variant>, Alt<1, Variance>>, bool, bool, bool>> { static const char* GLEAN_name() { return "csharp.TypeParameter"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeParameter struct SourceFileToProject : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.SourceFileToProject"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SourceFileToProject struct SolutionToProject : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.SolutionToProject"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SolutionToProject struct Solution : Predicate>> { static const char* GLEAN_name() { return "csharp.Solution"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Solution } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Enum<5>; }; namespace schema { namespace Csharp { enum class RefKind { In, None_, Out, Ref, RefReadOnly }; struct ProjectToSourceFile : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.ProjectToSourceFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ProjectToSourceFile struct ProjectToSolution : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.ProjectToSolution"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ProjectToSolution } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Csharp { struct ProjectSource { boost::variant>, Alt<1, Fact>> GLEAN_value; static ProjectSource unityProjectSource(const Fact& a) { return ProjectSource{Alt<0, Fact>(a)}; } static ProjectSource msbuildProjectSource(const Fact& a) { return ProjectSource{Alt<1, Fact>(a)}; } bool operator==(const ProjectSource& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ProjectSource& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ProjectSource& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ProjectSource& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ProjectSource& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ProjectSource& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ProjectSource struct Project : Predicate>, Alt<1, std::string>>, boost::variant>, Alt<1, std::string>>, boost::variant>, Alt<1, std::string>>, boost::variant>, Alt<1, std::string>>, boost::variant>, Alt<1, std::string>>, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "csharp.Project"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Project struct Namespace : Predicate, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "csharp.Namespace"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Namespace } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Csharp { struct NamedType { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>> GLEAN_value; static NamedType class_(const Fact& a) { return NamedType{Alt<0, Fact>(a)}; } static NamedType interface_(const Fact& a) { return NamedType{Alt<1, Fact>(a)}; } static NamedType record_(const Fact& a) { return NamedType{Alt<2, Fact>(a)}; } static NamedType struct_(const Fact& a) { return NamedType{Alt<3, Fact>(a)}; } bool operator==(const NamedType& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const NamedType& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const NamedType& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const NamedType& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const NamedType& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const NamedType& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct NamedType struct NameLowerCase : Predicate>> { static const char* GLEAN_name() { return "csharp.NameLowerCase"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct NameLowerCase struct Name : Predicate { static const char* GLEAN_name() { return "csharp.Name"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Name } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Enum<21>; }; namespace schema { namespace Csharp { enum class MethodKind { AnonymousFunction, BuiltinOperator, Constructor, Conversion, DeclareMethod, DelegateInvoke, Destructor, EventAdd, EventRaise, EventRemove, ExplicitInterfaceImplementation, FunctionPointerSignature, LambdaMethod, LocalFunction, Ordinary, PropertyGet, PropertySet, ReducedExtension, SharedConstructor, StaticConstructor, UserDefinedOperator }; } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Csharp { struct MethodInvocationExpression { Fact memberAccess; bool operator==(const MethodInvocationExpression& other) const { return std::tie(memberAccess) == std::tie(other.memberAccess); } bool operator!=(const MethodInvocationExpression& other) const { return std::tie(memberAccess) != std::tie(other.memberAccess); } bool operator<(const MethodInvocationExpression& other) const { return std::tie(memberAccess) < std::tie(other.memberAccess); } bool operator<=(const MethodInvocationExpression& other) const { return std::tie(memberAccess) <= std::tie(other.memberAccess); } bool operator>(const MethodInvocationExpression& other) const { return std::tie(memberAccess) > std::tie(other.memberAccess); } bool operator>=(const MethodInvocationExpression& other) const { return std::tie(memberAccess) >= std::tie(other.memberAccess); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(memberAccess)); } }; // struct MethodInvocationExpression } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Csharp { struct MemberAccessExpression { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>> GLEAN_value; static MemberAccessExpression local(const Fact& a) { return MemberAccessExpression{Alt<0, Fact>(a)}; } static MemberAccessExpression parameter(const Fact& a) { return MemberAccessExpression{Alt<1, Fact>(a)}; } static MemberAccessExpression field(const Fact& a) { return MemberAccessExpression{Alt<2, Fact>(a)}; } static MemberAccessExpression property(const Fact& a) { return MemberAccessExpression{Alt<3, Fact>(a)}; } static MemberAccessExpression method(const Fact& a) { return MemberAccessExpression{Alt<4, Fact>(a)}; } bool operator==(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const MemberAccessExpression& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct MemberAccessExpression struct MSBuildProjectSource : Predicate>> { static const char* GLEAN_name() { return "csharp.MSBuildProjectSource"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MSBuildProjectSource } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Src::FileLines>; }; namespace schema { namespace Csharp { struct Location { facebook::glean::cpp::schema::Src::FileLocation fileLocation; Fact fileLines; bool operator==(const Location& other) const { return std::tie(fileLocation,fileLines) == std::tie(other.fileLocation,other.fileLines); } bool operator!=(const Location& other) const { return std::tie(fileLocation,fileLines) != std::tie(other.fileLocation,other.fileLines); } bool operator<(const Location& other) const { return std::tie(fileLocation,fileLines) < std::tie(other.fileLocation,other.fileLines); } bool operator<=(const Location& other) const { return std::tie(fileLocation,fileLines) <= std::tie(other.fileLocation,other.fileLines); } bool operator>(const Location& other) const { return std::tie(fileLocation,fileLines) > std::tie(other.fileLocation,other.fileLines); } bool operator>=(const Location& other) const { return std::tie(fileLocation,fileLines) >= std::tie(other.fileLocation,other.fileLines); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(fileLocation, fileLines)); } }; // struct Location struct MemberAccessLocation : Predicate> { static const char* GLEAN_name() { return "csharp.MemberAccessLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MemberAccessLocation struct MethodInvocationLocation : Predicate, Location, boost::variant>, Alt<1, MethodInvocationExpression>>>> { static const char* GLEAN_name() { return "csharp.MethodInvocationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct MethodInvocationLocation struct Implements : Predicate>> { static const char* GLEAN_name() { return "csharp.Implements"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Implements struct FunctionPointerType : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.FunctionPointerType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FunctionPointerType struct FullName : Predicate, Fact>> { static const char* GLEAN_name() { return "csharp.FullName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FullName } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Enum<10>; }; namespace schema { namespace Csharp { enum class Accessibility { Friend, Internal, NotApplicable, Private, Protected, ProtectedAndFriend, ProtectedAndInternal, ProtectedOrFriend, ProtectedOrInternal, Public }; struct Class : Predicate, boost::variant>, Alt<1, Fact>>, std::vector>, boost::variant>, Alt<1, NamedType>>, Accessibility, bool, bool, bool>> { static const char* GLEAN_name() { return "csharp.Class"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Class struct Interface : Predicate, std::vector>, boost::variant>, Alt<1, NamedType>>, Accessibility, bool>> { static const char* GLEAN_name() { return "csharp.Interface"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Interface struct Record : Predicate, boost::variant>, Alt<1, Fact>>, std::vector>, boost::variant>, Alt<1, NamedType>>, Accessibility, bool, bool>> { static const char* GLEAN_name() { return "csharp.Record"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Record struct Struct : Predicate, std::vector>, boost::variant>, Alt<1, NamedType>>, Accessibility>> { static const char* GLEAN_name() { return "csharp.Struct"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Struct } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Csharp::FunctionPointerType, facebook::glean::cpp::schema::Csharp::PointerType, facebook::glean::cpp::schema::Csharp::TypeParameter>; }; namespace schema { namespace Csharp { struct AType { boost::variant>, Alt<1, NamedType>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>> GLEAN_value; static AType arrayType(const Fact& a) { return AType{Alt<0, Fact>(a)}; } static AType namedType(const NamedType& a) { return AType{Alt<1, NamedType>(a)}; } static AType functionPointerType(const Fact& a) { return AType{Alt<2, Fact>(a)}; } static AType pointerType(const Fact& a) { return AType{Alt<3, Fact>(a)}; } static AType typeParameter(const Fact& a) { return AType{Alt<4, Fact>(a)}; } bool operator==(const AType& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const AType& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const AType& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const AType& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const AType& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const AType& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct AType struct ArrayType : Predicate> { static const char* GLEAN_name() { return "csharp.ArrayType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ArrayType } // namespace Csharp } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Csharp::Method, facebook::glean::cpp::schema::Csharp::Field, facebook::glean::cpp::schema::Csharp::Parameter, facebook::glean::cpp::schema::Csharp::TypeParameter, facebook::glean::cpp::schema::Csharp::Local, facebook::glean::cpp::schema::Csharp::Property>; }; namespace schema { namespace Csharp { struct Definition { boost::variant, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>> GLEAN_value; static Definition type(const AType& a) { return Definition{Alt<0, AType>(a)}; } static Definition method(const Fact& a) { return Definition{Alt<1, Fact>(a)}; } static Definition field(const Fact& a) { return Definition{Alt<2, Fact>(a)}; } static Definition parameter(const Fact& a) { return Definition{Alt<3, Fact>(a)}; } static Definition typeParameter(const Fact& a) { return Definition{Alt<4, Fact>(a)}; } static Definition local(const Fact& a) { return Definition{Alt<5, Fact>(a)}; } static Definition property(const Fact& a) { return Definition{Alt<6, Fact>(a)}; } bool operator==(const Definition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Definition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Definition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Definition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Definition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Definition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Definition struct DefinitionLocation : Predicate> { static const char* GLEAN_name() { return "csharp.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionLocation struct DefinitionLocationName : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::string>> { static const char* GLEAN_name() { return "csharp.DefinitionLocationName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionLocationName struct FileDefinitions : Predicate, Definition>> { static const char* GLEAN_name() { return "csharp.FileDefinitions"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileDefinitions struct FileEntityXRefs : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, Definition>> { static const char* GLEAN_name() { return "csharp.FileEntityXRefs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileEntityXRefs struct SearchByName : Predicate, Definition>> { static const char* GLEAN_name() { return "csharp.SearchByName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByName struct Field : Predicate, AType, NamedType, Accessibility, bool, bool, bool>> { static const char* GLEAN_name() { return "csharp.Field"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Field struct Local : Predicate, AType, Fact, RefKind, bool>> { static const char* GLEAN_name() { return "csharp.Local"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Local struct Method : Predicate, NamedType, std::vector>, std::vector>, bool, AType, Accessibility>> { static const char* GLEAN_name() { return "csharp.Method"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Method struct ObjectCreationLocation : Predicate, Location>> { static const char* GLEAN_name() { return "csharp.ObjectCreationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ObjectCreationLocation struct Parameter : Predicate, AType, RefKind, bool, bool, bool>> { static const char* GLEAN_name() { return "csharp.Parameter"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Parameter struct PointerType : Predicate> { static const char* GLEAN_name() { return "csharp.PointerType"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PointerType struct Property : Predicate, NamedType, AType, std::vector>, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, bool, bool>> { static const char* GLEAN_name() { return "csharp.Property"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Property struct TypeLocation : Predicate> { static const char* GLEAN_name() { return "csharp.TypeLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeLocation } // namespace Csharp namespace Codemarkup { namespace Yaml { struct YamlDataAvailable : Predicate> { static const char* GLEAN_name() { return "codemarkup.yaml.YamlDataAvailable"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct YamlDataAvailable } // namespace Yaml } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Codemarkup { namespace Types { enum class Visibility { Public, Protected, Private, Internal }; } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<34>; }; namespace schema { namespace Codemarkup { namespace Types { enum class SymbolKind { Package, Type, Value, File, Module, Namespace, Class_, Method, Property, Field, Constructor, Enum_, Interface, Function, Variable, Constant, String, Number, Boolean, Array_, Object_, Key, Null, Enumerator, Struct, Event, Operator, TypeParameter, Union, Macro, Trait, Fragment, Operation, Directive }; } // namespace Types } // namespace Codemarkup namespace Search { namespace Code { struct CxxNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { static const char* GLEAN_name() { return "search.code.CxxNameLowerCase"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxNameLowerCase struct FlowNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { static const char* GLEAN_name() { return "search.code.FlowNameLowerCase"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FlowNameLowerCase struct HackNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { static const char* GLEAN_name() { return "search.code.HackNameLowerCase"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackNameLowerCase struct PythonNameLowerCase : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, std::string>> { static const char* GLEAN_name() { return "search.code.PythonNameLowerCase"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PythonNameLowerCase } // namespace Code } // namespace Search } // namespace schema template<> struct Repr_ { using Type = Tuple, Bool>; }; namespace schema { namespace Codemarkup { namespace Types { struct SymbolInfo { SymbolKind kind; bool isAbstract; bool operator==(const SymbolInfo& other) const { return std::tie(kind,isAbstract) == std::tie(other.kind,other.isAbstract); } bool operator!=(const SymbolInfo& other) const { return std::tie(kind,isAbstract) != std::tie(other.kind,other.isAbstract); } bool operator<(const SymbolInfo& other) const { return std::tie(kind,isAbstract) < std::tie(other.kind,other.isAbstract); } bool operator<=(const SymbolInfo& other) const { return std::tie(kind,isAbstract) <= std::tie(other.kind,other.isAbstract); } bool operator>(const SymbolInfo& other) const { return std::tie(kind,isAbstract) > std::tie(other.kind,other.isAbstract); } bool operator>=(const SymbolInfo& other) const { return std::tie(kind,isAbstract) >= std::tie(other.kind,other.isAbstract); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(kind, isAbstract)); } }; // struct SymbolInfo } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum, Repr>; }; namespace schema { namespace Codemarkup { namespace Types { struct RangeSpan { boost::variant, Alt<1, facebook::glean::cpp::schema::Src::Range>> GLEAN_value; static RangeSpan span(const facebook::glean::cpp::schema::Src::ByteSpan& a) { return RangeSpan{Alt<0, facebook::glean::cpp::schema::Src::ByteSpan>(a)}; } static RangeSpan range(const facebook::glean::cpp::schema::Src::Range& a) { return RangeSpan{Alt<1, facebook::glean::cpp::schema::Src::Range>(a)}; } bool operator==(const RangeSpan& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const RangeSpan& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const RangeSpan& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const RangeSpan& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const RangeSpan& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const RangeSpan& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct RangeSpan struct RangeSpanContains : Predicate> { static const char* GLEAN_name() { return "codemarkup.types.RangeSpanContains"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct RangeSpanContains } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Codemarkup { namespace Types { struct Modifiers { bool isAbstract; bool isFinal; bool isAsync; bool isStatic; bool isReadonly; bool isConst; bool isMutable; bool isVolatile; bool isVirtual; bool isInline; bool operator==(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) == std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } bool operator!=(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) != std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } bool operator<(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) < std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } bool operator<=(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) <= std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } bool operator>(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) > std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } bool operator>=(const Modifiers& other) const { return std::tie(isAbstract,isFinal,isAsync,isStatic,isReadonly,isConst,isMutable,isVolatile,isVirtual,isInline) >= std::tie(other.isAbstract,other.isFinal,other.isAsync,other.isStatic,other.isReadonly,other.isConst,other.isMutable,other.isVolatile,other.isVirtual,other.isInline); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(isAbstract, isFinal, isAsync, isStatic, isReadonly, isConst, isMutable, isVolatile, isVirtual, isInline)); } }; // struct Modifiers } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<10>; }; namespace schema { namespace Codemarkup { namespace Types { enum class Modifier { Abstract, Final, Async, Static, Readonly, Const, Mutable, Volatile, Virtual, Inline }; } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Tuple, Maybe>>; }; namespace schema { namespace Codemarkup { namespace Types { struct Location { std::string name; Fact file; RangeSpan location; boost::variant>, Alt<1, facebook::glean::cpp::schema::Src::FileLocation>> destination; bool operator==(const Location& other) const { return std::tie(name,file,location,destination) == std::tie(other.name,other.file,other.location,other.destination); } bool operator!=(const Location& other) const { return std::tie(name,file,location,destination) != std::tie(other.name,other.file,other.location,other.destination); } bool operator<(const Location& other) const { return std::tie(name,file,location,destination) < std::tie(other.name,other.file,other.location,other.destination); } bool operator<=(const Location& other) const { return std::tie(name,file,location,destination) <= std::tie(other.name,other.file,other.location,other.destination); } bool operator>(const Location& other) const { return std::tie(name,file,location,destination) > std::tie(other.name,other.file,other.location,other.destination); } bool operator>=(const Location& other) const { return std::tie(name,file,location,destination) >= std::tie(other.name,other.file,other.location,other.destination); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, file, location, destination)); } }; // struct Location } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Codemarkup { namespace Types { struct XRefLocation { Location target; RangeSpan source; bool operator==(const XRefLocation& other) const { return std::tie(target,source) == std::tie(other.target,other.source); } bool operator!=(const XRefLocation& other) const { return std::tie(target,source) != std::tie(other.target,other.source); } bool operator<(const XRefLocation& other) const { return std::tie(target,source) < std::tie(other.target,other.source); } bool operator<=(const XRefLocation& other) const { return std::tie(target,source) <= std::tie(other.target,other.source); } bool operator>(const XRefLocation& other) const { return std::tie(target,source) > std::tie(other.target,other.source); } bool operator>=(const XRefLocation& other) const { return std::tie(target,source) >= std::tie(other.target,other.source); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, source)); } }; // struct XRefLocation } // namespace Types } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Codemarkup { namespace Search { enum class SearchCase { Sensitive, Insensitive }; } // namespace Search namespace Scip { struct LsifKindToKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.scip.LsifKindToKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LsifKindToKind struct FileXLangSymbolRefs : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, Fact>> { static const char* GLEAN_name() { return "codemarkup.scip.FileXLangSymbolRefs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileXLangSymbolRefs } // namespace Scip namespace Python { struct NonImportPythonDeclarationKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.NonImportPythonDeclarationKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct NonImportPythonDeclarationKind struct NonImportPythonDeclarationInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.NonImportPythonDeclarationInfo"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct NonImportPythonDeclarationInfo struct ConvertLabel : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "codemarkup.python.ConvertLabel"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertLabel } // namespace Python namespace Pp { struct PpIncludeXRefLocations : Predicate, facebook::glean::cpp::schema::Src::Range, Fact>> { static const char* GLEAN_name() { return "codemarkup.pp.PpIncludeXRefLocations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpIncludeXRefLocations } // namespace Pp namespace Lsif { struct LsifKindToKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifKindToKind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifKindToKind } // namespace Lsif } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<3>; }; namespace schema { namespace Codemarkup { namespace Hack { enum class RequiredRelation { implements_, extends_, class_ }; struct HackInheritedEntities : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackInheritedEntities"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackInheritedEntities struct HackEnumInheritedMembers : Predicate>> { static const char* GLEAN_name() { return "codemarkup.hack.HackEnumInheritedMembers"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEnumInheritedMembers struct FromHackVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.FromHackVisibility"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FromHackVisibility } // namespace Hack namespace Flow { struct FlowDocumentationSpan : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowDocumentationSpan"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowDocumentationSpan struct FlowDeclarationDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowDeclarationDocumentation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowDeclarationDocumentation } // namespace Flow namespace Cxx { struct FromCxxVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.FromCxxVisibility"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FromCxxVisibility struct CxxFileEntityXMapVariableXRefDeclLocations : Predicate, facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::Location>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityXMapVariableXRefDeclLocations"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityXMapVariableXRefDeclLocations struct CxxDeclarationModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationModifiers"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationModifiers struct CxxDeclVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclVisibility"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclVisibility struct CxxDeclKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclKind"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclKind struct CxxDeclInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclInfo"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclInfo struct CxxDataAvailable : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDataAvailable"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDataAvailable } // namespace Cxx } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<2>; }; namespace schema { namespace Codemarkup { enum class SearchStyle { ShowAll, HideUninteresting }; } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Enum<7>; }; namespace schema { namespace Codemarkup { enum class RelationType { ExtendsParentOfChild, ExtendsChildOfParent, ContainsChildOfParent, ContainsParentOfChild, RequireExtendsParentOfChild, RequireImplementsParentOfChild, RequireClassParentOfChild }; struct IndexedFile : Predicate> { static const char* GLEAN_name() { return "codemarkup.IndexedFile"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct IndexedFile struct EntityDataAvailable : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityDataAvailable"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityDataAvailable } // namespace Codemarkup namespace Code { namespace Scip { using SymbolId = Fact; } // namespace Scip } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Code { namespace Scip { struct Entity { boost::variant, Alt<1, facebook::glean::cpp::schema::Scip::SomeEntity>, Alt<2, facebook::glean::cpp::schema::Scip::SomeEntity>, Alt<3, facebook::glean::cpp::schema::Scip::SomeEntity>, Alt<4, facebook::glean::cpp::schema::Scip::SomeEntity>, Alt<5, facebook::glean::cpp::schema::Scip::SomeEntity>> GLEAN_value; static Entity rust(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } static Entity go(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<1, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } static Entity typescript(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<2, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } static Entity java(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<3, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } static Entity kotlin(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<4, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } static Entity swift(const facebook::glean::cpp::schema::Scip::SomeEntity& a) { return Entity{Alt<5, facebook::glean::cpp::schema::Scip::SomeEntity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Scip } // namespace Code namespace Codemarkup { namespace Scip { struct EntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.scip.EntityInfo"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityInfo struct ScipEntityDocumentation : Predicate>> { static const char* GLEAN_name() { return "codemarkup.scip.ScipEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ScipEntityDocumentation struct ScipEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.scip.ScipEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ScipEntityLocation struct ScipEntityUses : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "codemarkup.scip.ScipEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ScipEntityUses struct ScipFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Scip::Entity>> { static const char* GLEAN_name() { return "codemarkup.scip.ScipFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ScipFileEntityXRefLocations struct ScipResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.scip.ScipResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ScipResolveLocation } // namespace Scip } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Python { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Python::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Python::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Python } // namespace Code namespace Codemarkup { namespace Python { struct PythonContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonContainsChildEntity struct PythonContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonContainsParentEntity struct PythonEntityComments : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityComments"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityComments struct PythonEntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityInfo"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityInfo struct PythonEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityKind struct PythonEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityLocation struct PythonEntityModuleName : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityModuleName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityModuleName struct PythonEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.python.PythonEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonEntityUses struct PythonExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonExtendsChildEntity struct PythonExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonExtendsParentEntity struct PythonFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Python::Entity>> { static const char* GLEAN_name() { return "codemarkup.python.PythonFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonFileEntityXRefLocations struct PythonModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonModifiers"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonModifiers struct PythonResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonResolveLocation struct PythonVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonVisibility"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonVisibility } // namespace Python } // namespace Codemarkup namespace Code { namespace Python { using CallArgument = facebook::glean::cpp::schema::Python::CallArgument; } // namespace Python } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum>>; }; namespace schema { namespace Code { namespace Python { struct Annotations { boost::variant>> GLEAN_value; static Annotations decorators(const std::vector& a) { return Annotations{Alt<0, std::vector>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Python } // namespace Code namespace Codemarkup { namespace Python { struct PythonAnnotation : Predicate> { static const char* GLEAN_name() { return "codemarkup.python.PythonAnnotation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonAnnotation } // namespace Python } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Code { namespace Pp { struct Entity { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static Entity define(const Fact& a) { return Entity{Alt<0, Fact>(a)}; } static Entity undef(const Fact& a) { return Entity{Alt<1, Fact>(a)}; } static Entity include_(const Fact& a) { return Entity{Alt<2, Fact>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Pp } // namespace Code namespace Codemarkup { namespace Pp { struct PPEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.pp.PPEntityLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PPEntityLocation struct PpEntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.pp.PpEntityInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpEntityInfo struct PpEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.pp.PpEntityKind"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpEntityKind struct PpEntityTraceXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Pp::Entity>> { static const char* GLEAN_name() { return "codemarkup.pp.PpEntityTraceXRefLocations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpEntityTraceXRefLocations struct PpEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.pp.PpEntityUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpEntityUses struct PpFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Pp::Entity>> { static const char* GLEAN_name() { return "codemarkup.pp.PpFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpFileEntityXRefLocations struct PpResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.pp.PpResolveLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpResolveLocation struct PpResolveTraceLocation : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Pp::Entity>> { static const char* GLEAN_name() { return "codemarkup.pp.PpResolveTraceLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct PpResolveTraceLocation } // namespace Pp } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Code { namespace Lsif { struct Entity { boost::variant, Alt<1, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<2, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<3, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<4, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<5, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<6, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<7, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<8, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<9, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<10, facebook::glean::cpp::schema::Lsif::SomeEntity>, Alt<11, facebook::glean::cpp::schema::Lsif::SomeEntity>> GLEAN_value; static Entity erlang(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity fsharp(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<1, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity go(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<2, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity haskell(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<3, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity java(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<4, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity kotlin(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<5, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity ocaml(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<6, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity python(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<7, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity rust(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<8, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity scala(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<9, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity swift(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<10, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } static Entity typescript(const facebook::glean::cpp::schema::Lsif::SomeEntity& a) { return Entity{Alt<11, facebook::glean::cpp::schema::Lsif::SomeEntity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Lsif } // namespace Code namespace Codemarkup { namespace Lsif { struct EntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.lsif.EntityInfo"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct EntityInfo struct LsifEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifEntityLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifEntityLocation struct LsifEntityModuleName : Predicate> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifEntityModuleName"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifEntityModuleName struct LsifEntityUses : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifEntityUses"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifEntityUses struct LsifFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Lsif::Entity>> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifFileEntityXRefLocations struct LsifResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.lsif.LsifResolveLocation"; } static constexpr size_t GLEAN_version() { return 3; } }; // struct LsifResolveLocation } // namespace Lsif } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Kotlin { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Kotlin::Alpha::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Kotlin } // namespace Code namespace Codemarkup { namespace Kotlin { struct KotlinContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinContainsChildEntity struct KotlinContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinContainsParentEntity struct KotlinEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinEntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinEntityKind struct KotlinEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinEntityLocation struct KotlinEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinEntityUses struct KotlinExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinExtendsParentEntity struct KotlinFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Kotlin::Entity>> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinFileEntityXRefLocations struct KotlinResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.kotlin.KotlinResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct KotlinResolveLocation } // namespace Kotlin } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Java { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Java::Alpha::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Java::Alpha::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Java } // namespace Code namespace Codemarkup { namespace Java { struct JavaContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaContainsChildEntity struct JavaContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaContainsParentEntity struct JavaEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.java.JavaEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaEntityDocumentation struct JavaEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaEntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaEntityKind struct JavaEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaEntityLocation struct JavaEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.java.JavaEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaEntityUses struct JavaExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaExtendsChildEntity struct JavaExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaExtendsParentEntity struct JavaModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaModifiers"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaModifiers struct JavaResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaResolveLocation struct JavaVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaVisibility"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaVisibility struct JavalFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Java::Entity>> { static const char* GLEAN_name() { return "codemarkup.java.JavalFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavalFileEntityXRefLocations } // namespace Java } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Java { struct Annotations { boost::variant>>> GLEAN_value; static Annotations annotations(const std::vector>& a) { return Annotations{Alt<0, std::vector>>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Java } // namespace Code namespace Codemarkup { namespace Java { struct JavaAnnotation : Predicate> { static const char* GLEAN_name() { return "codemarkup.java.JavaAnnotation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct JavaAnnotation } // namespace Java } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Code { namespace Hs { struct Entity { boost::variant>, Alt<1, Fact>> GLEAN_value; static Entity name(const Fact& a) { return Entity{Alt<0, Fact>(a)}; } static Entity mod(const Fact& a) { return Entity{Alt<1, Fact>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Hs } // namespace Code namespace Codemarkup { namespace Haskell { struct HaskellContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellContainsChildEntity struct HaskellContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellContainsParentEntity struct HaskellEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellEntityLocation struct HaskellEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellEntityUses struct HaskellFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Hs::Entity>> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellFileEntityXRefLocations struct HaskellResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.haskell.HaskellResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HaskellResolveLocation } // namespace Haskell } // namespace Codemarkup namespace Search { namespace Hs { struct SearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.hs.SearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 9; } }; // struct SearchByLowerCaseName struct SearchByName : Predicate> { static const char* GLEAN_name() { return "search.hs.SearchByName"; } static constexpr size_t GLEAN_version() { return 9; } }; // struct SearchByName } // namespace Hs } // namespace Search } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Hack { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Hack::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Hack::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Hack } // namespace Code namespace Codemarkup { namespace Hack { struct EntityHasHideFromDocsAttr : Predicate { static const char* GLEAN_name() { return "codemarkup.hack.EntityHasHideFromDocsAttr"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct EntityHasHideFromDocsAttr struct HackContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackContainsChildEntity struct HackContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackContainsParentEntity struct HackEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityDocumentation struct HackEntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityInfo"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityInfo struct HackEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityKind struct HackEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityLocation struct HackEntityModuleName : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityModuleName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityModuleName struct HackEntitySource : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntitySource"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntitySource struct HackEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityUses struct HackExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackExtendsChildEntity struct HackExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackExtendsParentEntity struct HackExtendsParentEntityConcise : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackExtendsParentEntityConcise"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackExtendsParentEntityConcise struct HackFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Hack::Entity>> { static const char* GLEAN_name() { return "codemarkup.hack.HackFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackFileEntityXRefLocations struct HackFileEntityXRefSpans : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, facebook::glean::cpp::schema::Code::Hack::Entity>> { static const char* GLEAN_name() { return "codemarkup.hack.HackFileEntityXRefSpans"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackFileEntityXRefSpans struct HackModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackModifiers"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackModifiers struct HackRequiredConstraint : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackRequiredConstraint"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackRequiredConstraint struct HackResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackResolveLocation struct HackVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackVisibility"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackVisibility } // namespace Hack } // namespace Codemarkup namespace Code { namespace Hack { using CallArgument = facebook::glean::cpp::schema::Hack::CallArgument; } // namespace Hack } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Hack { struct Annotations { boost::variant>>> GLEAN_value; static Annotations attributes(const std::vector>& a) { return Annotations{Alt<0, std::vector>>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Hack } // namespace Code namespace Codemarkup { namespace Hack { struct HackAnnotation : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackAnnotation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackAnnotation } // namespace Hack } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Graphql { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Graphql::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Graphql::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Graphql } // namespace Code namespace Codemarkup { namespace Graphql { struct GraphQLEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.graphql.GraphQLEntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GraphQLEntityKind struct GraphQLEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.graphql.GraphQLEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GraphQLEntityLocation struct GraphQLEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.graphql.GraphQLEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GraphQLEntityUses struct GraphQLFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Graphql::Entity>> { static const char* GLEAN_name() { return "codemarkup.graphql.GraphQLFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GraphQLFileEntityXRefLocations struct GraphQLResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.graphql.GraphQLResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct GraphQLResolveLocation } // namespace Graphql } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Flow::Module>; }; namespace schema { namespace Code { namespace Flow { struct Entity { boost::variant, Alt<1, Fact>> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Flow::SomeDeclaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Flow::SomeDeclaration>(a)}; } static Entity module_(const Fact& a) { return Entity{Alt<1, Fact>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Flow } // namespace Code namespace Codemarkup { namespace Flow { struct FlowContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowContainsChildEntity struct FlowContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowContainsParentEntity struct FlowEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowEntityDocumentation struct FlowEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowEntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowEntityKind struct FlowEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowEntityLocation struct FlowEntityModuleName : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowEntityModuleName"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowEntityModuleName struct FlowEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowEntityUses struct FlowFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Flow::Entity>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowFileEntityXRefLocations struct FlowFileImportDeclEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Flow::Entity>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowFileImportDeclEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowFileImportDeclEntityXRefLocations struct FlowFileReferenceEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Flow::Entity>> { static const char* GLEAN_name() { return "codemarkup.flow.FlowFileReferenceEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowFileReferenceEntityXRefLocations struct FlowResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.flow.FlowResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct FlowResolveLocation } // namespace Flow } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Fbthrift { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Fbthrift::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Fbthrift::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Fbthrift } // namespace Code namespace Codemarkup { namespace Fbthrift { struct FbthriftEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.fbthrift.FbthriftEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FbthriftEntityDocumentation struct FbthriftEntityUses : Predicate, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "codemarkup.fbthrift.FbthriftEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FbthriftEntityUses struct ThriftContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftContainsChildEntity struct ThriftContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftContainsParentEntity struct ThriftEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftEntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftEntityKind struct ThriftEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftEntityLocation struct ThriftExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftExtendsChildEntity struct ThriftExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftExtendsParentEntity struct ThriftFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftFileEntityXRefLocations struct ThriftResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.fbthrift.ThriftResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct ThriftResolveLocation } // namespace Fbthrift } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Fbthrift { struct Annotations { boost::variant>>> GLEAN_value; static Annotations annotations(const std::vector>& a) { return Annotations{Alt<0, std::vector>>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Fbthrift } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Erlang { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Erlang::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Erlang::Declaration>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Erlang } // namespace Code namespace Codemarkup { namespace Erlang { struct ErlangEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangEntityDocumentation struct ErlangEntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangEntityInfo"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangEntityInfo struct ErlangEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangEntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangEntityKind struct ErlangEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangEntityLocation struct ErlangEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangEntityUses struct ErlangFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Erlang::Entity>> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangFileEntityXRefLocations struct ErlangResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.erlang.ErlangResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ErlangResolveLocation } // namespace Erlang } // namespace Codemarkup namespace Search { namespace Erlang { struct SearchByFQN : Predicate> { static const char* GLEAN_name() { return "search.erlang.SearchByFQN"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchByFQN struct SearchByName : Predicate> { static const char* GLEAN_name() { return "search.erlang.SearchByName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchByName } // namespace Erlang } // namespace Search } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Code { namespace Dataswarm { struct Entity { facebook::glean::cpp::schema::Dataswarm::Declaration decl; bool operator==(const Entity& other) const { return std::tie(decl) == std::tie(other.decl); } bool operator!=(const Entity& other) const { return std::tie(decl) != std::tie(other.decl); } bool operator<(const Entity& other) const { return std::tie(decl) < std::tie(other.decl); } bool operator<=(const Entity& other) const { return std::tie(decl) <= std::tie(other.decl); } bool operator>(const Entity& other) const { return std::tie(decl) > std::tie(other.decl); } bool operator>=(const Entity& other) const { return std::tie(decl) >= std::tie(other.decl); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(decl)); } }; // struct Entity } // namespace Dataswarm } // namespace Code namespace Codemarkup { namespace Dataswarm { struct DataswarmFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Dataswarm::Entity>> { static const char* GLEAN_name() { return "codemarkup.dataswarm.DataswarmFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DataswarmFileEntityXRefLocations } // namespace Dataswarm } // namespace Codemarkup namespace Code { namespace Cxx { using SymbolId = facebook::glean::cpp::schema::Cxx1::USR; } // namespace Cxx } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Code { namespace Cxx { struct ObjcMethodEntity { boost::variant>, Alt<1, Fact>> GLEAN_value; static ObjcMethodEntity decl(const Fact& a) { return ObjcMethodEntity{Alt<0, Fact>(a)}; } static ObjcMethodEntity defn(const Fact& a) { return ObjcMethodEntity{Alt<1, Fact>(a)}; } bool operator==(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ObjcMethodEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ObjcMethodEntity } // namespace Cxx } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Tuple, Nat>; }; namespace schema { namespace Code { namespace Cxx { struct ObjcSelectorSlotEntity { ObjcMethodEntity objcMethod; uint64_t index; bool operator==(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) == std::tie(other.objcMethod,other.index); } bool operator!=(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) != std::tie(other.objcMethod,other.index); } bool operator<(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) < std::tie(other.objcMethod,other.index); } bool operator<=(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) <= std::tie(other.objcMethod,other.index); } bool operator>(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) > std::tie(other.objcMethod,other.index); } bool operator>=(const ObjcSelectorSlotEntity& other) const { return std::tie(objcMethod,index) >= std::tie(other.objcMethod,other.index); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(objcMethod, index)); } }; // struct ObjcSelectorSlotEntity } // namespace Cxx } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Code { namespace Cxx { struct Definition { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, Fact>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>> GLEAN_value; static Definition record_(const Fact& a) { return Definition{Alt<0, Fact>(a)}; } static Definition function_(const Fact& a) { return Definition{Alt<1, Fact>(a)}; } static Definition enum_(const Fact& a) { return Definition{Alt<2, Fact>(a)}; } static Definition objcMethod(const Fact& a) { return Definition{Alt<3, Fact>(a)}; } static Definition objcContainer(const Fact& a) { return Definition{Alt<4, Fact>(a)}; } static Definition variable(const Fact& a) { return Definition{Alt<5, Fact>(a)}; } static Definition namespace_(const Fact& a) { return Definition{Alt<6, Fact>(a)}; } bool operator==(const Definition& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Definition& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Definition& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Definition& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Definition& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Definition& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Definition } // namespace Cxx } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, facebook::glean::cpp::schema::Cxx1::Enumerator, Repr>; }; namespace schema { namespace Code { namespace Cxx { struct Entity { boost::variant, Alt<1, Definition>, Alt<2, Fact>, Alt<3, ObjcSelectorSlotEntity>> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Cxx1::Declaration& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Cxx1::Declaration>(a)}; } static Entity defn(const Definition& a) { return Entity{Alt<1, Definition>(a)}; } static Entity enumerator(const Fact& a) { return Entity{Alt<2, Fact>(a)}; } static Entity objcSelectorSlot(const ObjcSelectorSlotEntity& a) { return Entity{Alt<3, ObjcSelectorSlotEntity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Cxx } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxContainsChildEntity struct CxxContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxContainsParentEntity struct CxxDeclToDefXRefTargetLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclToDefXRefTargetLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclToDefXRefTargetLocation struct CxxDeclarationContainsChild : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationContainsChild"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationContainsChild struct CxxDeclarationContainsParent : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationContainsParent"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationContainsParent struct CxxDeclarationExtendsChild : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationExtendsChild"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationExtendsChild struct CxxDeclarationExtendsParent : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationExtendsParent"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationExtendsParent struct CxxDeclarationSource : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDeclarationSource"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDeclarationSource struct CxxDefToDeclFamilyXRefTargetLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefToDeclFamilyXRefTargetLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefToDeclFamilyXRefTargetLocation struct CxxEntityDocumentation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityDocumentation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityDocumentation struct CxxEntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityInfo"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityInfo struct CxxEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityKind"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityKind struct CxxEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityLocation struct CxxEntityMangledNameHash : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityMangledNameHash"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityMangledNameHash struct CxxEntitySource : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntitySource"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntitySource struct CxxEntityUSR : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityUSR"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityUSR struct CxxEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityUses"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityUses struct CxxExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxExtendsChildEntity struct CxxExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxExtendsParentEntity struct CxxFileEntitySpellingXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntitySpellingXRefLocations"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntitySpellingXRefLocations struct CxxFileEntityTraceDeclToDefXRefLocations : Predicate, Fact, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityTraceDeclToDefXRefLocations"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityTraceDeclToDefXRefLocations struct CxxFileEntityXMapFixedXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityXMapFixedXRefLocations"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityXMapFixedXRefLocations struct CxxFileEntityXMapVariableXRefDeclToDefs : Predicate, facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityXMapVariableXRefDeclToDefs"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityXMapVariableXRefDeclToDefs struct CxxFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityXRefLocations struct CxxFindDefinitionOfEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFindDefinitionOfEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFindDefinitionOfEntity struct CxxModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxModifiers"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxModifiers struct CxxNamespaceDeclarationContainsChild : Predicate, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxNamespaceDeclarationContainsChild"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxNamespaceDeclarationContainsChild struct CxxResolveDeclarationToEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxResolveDeclarationToEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxResolveDeclarationToEntity struct CxxResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxResolveLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxResolveLocation struct CxxResolveTraceLocation : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxResolveTraceLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxResolveTraceLocation struct CxxVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxVisibility"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxVisibility struct CxxXRefTargetLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxXRefTargetLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxXRefTargetLocation struct EntityToXRefTarget : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.EntityToXRefTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct EntityToXRefTarget struct SymbolToEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.SymbolToEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SymbolToEntity struct XRefTargetToEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.XRefTargetToEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct XRefTargetToEntity } // namespace Cxx } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Pp1::Define>; }; namespace schema { namespace Glean { namespace Test { struct Entity { boost::variant, Alt<1, Fact>> GLEAN_value; static Entity cxx(const facebook::glean::cpp::schema::Code::Cxx::Entity& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Code::Cxx::Entity>(a)}; } static Entity pp(const Fact& a) { return Entity{Alt<1, Fact>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Test } // namespace Glean namespace Search { namespace Code { struct CxxPreferDefinitions : Predicate> { static const char* GLEAN_name() { return "search.code.CxxPreferDefinitions"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxPreferDefinitions } // namespace Code namespace Kind { namespace Cxx { struct SearchObjcInterface : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchObjcInterface"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchObjcInterface } // namespace Cxx } // namespace Kind } // namespace Search namespace Symbolid { namespace Cxx { struct DefinitionOfDecl : Predicate> { static const char* GLEAN_name() { return "symbolid.cxx.DefinitionOfDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DefinitionOfDecl struct LookupNamespaceDefinition : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, Fact>>, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupNamespaceDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupNamespaceDefinition } // namespace Cxx } // namespace Symbolid namespace Codemarkup { namespace Cxx { struct CxxDefinitionContainsChild : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefinitionContainsChild"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefinitionContainsChild struct CxxDefinitionContainsParent : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefinitionContainsParent"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefinitionContainsParent struct CxxDefinitionExtendsChild : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefinitionExtendsChild"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefinitionExtendsChild struct CxxDefinitionExtendsParent : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefinitionExtendsParent"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefinitionExtendsParent struct CxxDefinitionModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefinitionModifiers"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefinitionModifiers struct CxxDefnVisibility : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxDefnVisibility"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxDefnVisibility struct CxxEntityDefinitionBase : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityDefinitionBase"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityDefinitionBase } // namespace Cxx } // namespace Codemarkup namespace Search { namespace Cxx { struct DeclIsDefn : Predicate> { static const char* GLEAN_name() { return "search.cxx.DeclIsDefn"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclIsDefn } // namespace Cxx } // namespace Search namespace Code { namespace Cxx { struct DeclToDef : Predicate> { static const char* GLEAN_name() { return "code.cxx.DeclToDef"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DeclToDef } // namespace Cxx } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Cxx { struct Annotations { boost::variant>>> GLEAN_value; static Annotations attributes(const std::vector>& a) { return Annotations{Alt<0, std::vector>>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Cxx } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxAnnotation : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxAnnotation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxAnnotation } // namespace Cxx } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { namespace Csharp { struct Entity { boost::variant> GLEAN_value; static Entity decl(const facebook::glean::cpp::schema::Csharp::Definition& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Csharp::Definition>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Csharp } // namespace Code namespace Codemarkup { namespace Csharp { struct CSharpEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.csharp.CSharpEntityKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct CSharpEntityKind struct CSharpEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.csharp.CSharpEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct CSharpEntityLocation struct CSharpEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.csharp.CSharpEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct CSharpEntityUses struct CSharpFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Csharp::Entity>> { static const char* GLEAN_name() { return "codemarkup.csharp.CSharpFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct CSharpFileEntityXRefLocations struct CSharpResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.csharp.CSharpResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct CSharpResolveLocation } // namespace Csharp } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Code { namespace Buck { struct Entity { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static Entity locator(const Fact& a) { return Entity{Alt<0, Fact>(a)}; } static Entity file(const Fact& a) { return Entity{Alt<1, Fact>(a)}; } static Entity definition(const Fact& a) { return Entity{Alt<2, Fact>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Buck } // namespace Code namespace Codemarkup { namespace Buck { struct BuckEntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.buck.BuckEntityKind"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct BuckEntityKind struct BuckEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.buck.BuckEntityLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct BuckEntityLocation struct BuckEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.buck.BuckEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct BuckEntityUses struct BuckFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Buck::Entity>> { static const char* GLEAN_name() { return "codemarkup.buck.BuckFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct BuckFileEntityXRefLocations struct BuckResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.buck.BuckResolveLocation"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct BuckResolveLocation } // namespace Buck } // namespace Codemarkup namespace Search { namespace Buck { struct SearchByFQN : Predicate>, Alt<1, std::string>>, std::string, std::string, facebook::glean::cpp::schema::Code::Buck::Entity>> { static const char* GLEAN_name() { return "search.buck.SearchByFQN"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByFQN struct SearchDefinition : Predicate, std::string, facebook::glean::cpp::schema::Code::Buck::Entity>> { static const char* GLEAN_name() { return "search.buck.SearchDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchDefinition struct SearchFile : Predicate, facebook::glean::cpp::schema::Code::Buck::Entity>> { static const char* GLEAN_name() { return "search.buck.SearchFile"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchFile } // namespace Buck } // namespace Search } // namespace schema template<> struct Repr_ { using Type = Sum, Repr>; }; namespace schema { namespace Code { struct SymbolId { boost::variant, Alt<1, facebook::glean::cpp::schema::Code::Cxx::SymbolId>> GLEAN_value; static SymbolId scip(const facebook::glean::cpp::schema::Code::Scip::SymbolId& a) { return SymbolId{Alt<0, facebook::glean::cpp::schema::Code::Scip::SymbolId>(a)}; } static SymbolId cxx(const facebook::glean::cpp::schema::Code::Cxx::SymbolId& a) { return SymbolId{Alt<1, facebook::glean::cpp::schema::Code::Cxx::SymbolId>(a)}; } bool operator==(const SymbolId& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const SymbolId& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const SymbolId& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const SymbolId& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const SymbolId& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const SymbolId& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct SymbolId } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Enum<23>; }; namespace schema { namespace Code { enum class Language { Cpp, PreProcessor, Java, Haskell, Python, Hack, JavaScript, Rust, Thrift, Buck, Erlang, FSharp, Go, Kotlin, OCaml, Scala, Swift, TypeScript, CSharp, GraphQL, Dataswarm, Yaml, Angle }; struct EntityLanguageSCIP : Predicate> { static const char* GLEAN_name() { return "code.EntityLanguageSCIP"; } static constexpr size_t GLEAN_version() { return 24; } }; // struct EntityLanguageSCIP struct EntityLanguageLSIF : Predicate> { static const char* GLEAN_name() { return "code.EntityLanguageLSIF"; } static constexpr size_t GLEAN_version() { return 24; } }; // struct EntityLanguageLSIF } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Code { struct Annotations { boost::variant, Alt<1, facebook::glean::cpp::schema::Code::Java::Annotations>, Alt<2, facebook::glean::cpp::schema::Code::Python::Annotations>, Alt<3, facebook::glean::cpp::schema::Code::Hack::Annotations>, Alt<4, facebook::glean::cpp::schema::Code::Fbthrift::Annotations>> GLEAN_value; static Annotations cxx(const facebook::glean::cpp::schema::Code::Cxx::Annotations& a) { return Annotations{Alt<0, facebook::glean::cpp::schema::Code::Cxx::Annotations>(a)}; } static Annotations java(const facebook::glean::cpp::schema::Code::Java::Annotations& a) { return Annotations{Alt<1, facebook::glean::cpp::schema::Code::Java::Annotations>(a)}; } static Annotations python(const facebook::glean::cpp::schema::Code::Python::Annotations& a) { return Annotations{Alt<2, facebook::glean::cpp::schema::Code::Python::Annotations>(a)}; } static Annotations hack(const facebook::glean::cpp::schema::Code::Hack::Annotations& a) { return Annotations{Alt<3, facebook::glean::cpp::schema::Code::Hack::Annotations>(a)}; } static Annotations fbthrift(const facebook::glean::cpp::schema::Code::Fbthrift::Annotations& a) { return Annotations{Alt<4, facebook::glean::cpp::schema::Code::Fbthrift::Annotations>(a)}; } bool operator==(const Annotations& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Annotations& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Annotations& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Annotations& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Annotations& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Annotations& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Annotations } // namespace Code namespace Cxx1 { struct FunctionName : Predicate>, Alt<1, Operator>, Alt<2, LiteralOperator>, Alt<3, std::tuple<>>, Alt<4, std::tuple<>>, Alt<5, Fact>>> { static const char* GLEAN_name() { return "cxx1.FunctionName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionName } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Cxx1 { struct RecordKind { boost::variant>, Alt<1, std::tuple<>>, Alt<2, std::tuple<>>> GLEAN_value; static RecordKind struct_() { return RecordKind{Alt<0, std::tuple<>>(std::make_tuple())}; } static RecordKind class_() { return RecordKind{Alt<1, std::tuple<>>(std::make_tuple())}; } static RecordKind union_() { return RecordKind{Alt<2, std::tuple<>>(std::make_tuple())}; } bool operator==(const RecordKind& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const RecordKind& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const RecordKind& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const RecordKind& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const RecordKind& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const RecordKind& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct RecordKind struct RecordDeclaration : Predicate, RecordKind, facebook::glean::cpp::schema::Src::Range>> { static const char* GLEAN_name() { return "cxx1.RecordDeclaration"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDeclaration } // namespace Cxx1 } // namespace schema template<> struct Repr_ { using Type = Sum>, facebook::glean::cpp::schema::Cxx1::FunctionQName>; }; namespace schema { namespace Cxx1 { struct Scope { boost::variant>, Alt<1, Fact>, Alt<2, std::tuple, Access>>, Alt<3, Fact>> GLEAN_value; static Scope global_() { return Scope{Alt<0, std::tuple<>>(std::make_tuple())}; } static Scope namespace_(const Fact& a) { return Scope{Alt<1, Fact>(a)}; } static Scope recordWithAccess(const Fact& record, const Access& access) { return Scope{Alt<2, std::tuple, Access>>(std::make_tuple(record, access))}; } static Scope local(const Fact& a) { return Scope{Alt<3, Fact>(a)}; } bool operator==(const Scope& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Scope& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Scope& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Scope& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Scope& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Scope& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Scope struct DeclarationScope : Predicate> { static const char* GLEAN_name() { return "cxx1.DeclarationScope"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct DeclarationScope struct EnumDeclarationByName : Predicate>> { static const char* GLEAN_name() { return "cxx1.EnumDeclarationByName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct EnumDeclarationByName struct FunctionDeclarationByNameScope : Predicate>> { static const char* GLEAN_name() { return "cxx1.FunctionDeclarationByNameScope"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionDeclarationByNameScope struct FunctionQName : Predicate, Scope>> { static const char* GLEAN_name() { return "cxx1.FunctionQName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct FunctionQName struct QName : Predicate, Scope>> { static const char* GLEAN_name() { return "cxx1.QName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct QName struct RecordDeclarationClass : Predicate>> { static const char* GLEAN_name() { return "cxx1.RecordDeclarationClass"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDeclarationClass struct RecordDeclarationStruct : Predicate>> { static const char* GLEAN_name() { return "cxx1.RecordDeclarationStruct"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDeclarationStruct struct RecordDeclarationUnion : Predicate>> { static const char* GLEAN_name() { return "cxx1.RecordDeclarationUnion"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct RecordDeclarationUnion struct TypeAliasDeclarationByName : Predicate>> { static const char* GLEAN_name() { return "cxx1.TypeAliasDeclarationByName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct TypeAliasDeclarationByName struct VariableDeclarationNonLocalByName : Predicate>> { static const char* GLEAN_name() { return "cxx1.VariableDeclarationNonLocalByName"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct VariableDeclarationNonLocalByName } // namespace Cxx1 namespace Search { namespace Cxx { struct QueryToScopeCase : Predicate, bool, facebook::glean::cpp::schema::Cxx1::Scope>> { static const char* GLEAN_name() { return "search.cxx.QueryToScopeCase"; } static constexpr size_t GLEAN_version() { return 5; } }; // struct QueryToScopeCase } // namespace Cxx namespace Kind { namespace Cxx { struct SearchClass : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchClass"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchClass struct SearchEnum : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchEnum"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchEnum struct SearchEnumerator : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchEnumerator"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchEnumerator struct SearchFunction : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchFunction"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchFunction struct SearchNamespace : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchNamespace"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchNamespace struct SearchStruct : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchStruct"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchStruct struct SearchTypeAlias : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchTypeAlias"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchTypeAlias struct SearchUnion : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchUnion"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchUnion struct SearchVariable : Predicate> { static const char* GLEAN_name() { return "search.kind.cxx.SearchVariable"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchVariable } // namespace Cxx } // namespace Kind } // namespace Search namespace Symbolid { namespace Cxx { struct LookupDeclaration : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Cxx1::Declaration>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupDeclaration struct LookupDefinition : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupDefinition struct LookupEnumerator : Predicate, Fact, facebook::glean::cpp::schema::Cxx1::Scope, Fact>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupEnumerator"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupEnumerator struct LookupFunctionDeclaration : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Cxx1::Declaration>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionDeclaration struct LookupFunctionDefinition : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionDefinition struct LookupFunctionSignatureDeclaration : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, Fact, facebook::glean::cpp::schema::Cxx1::Declaration>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionSignatureDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionSignatureDeclaration struct LookupFunctionSignatureDefinition : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, Fact, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionSignatureDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionSignatureDefinition struct LookupFunctionSignatureQualifierDeclaration : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, Fact, boost::variant>, Alt<1, facebook::glean::cpp::schema::Cxx1::MethodSignature>>, facebook::glean::cpp::schema::Cxx1::Declaration>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionSignatureQualifierDeclaration"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionSignatureQualifierDeclaration struct LookupFunctionSignatureQualifierDefinition : Predicate, facebook::glean::cpp::schema::Cxx1::Scope, Fact, boost::variant>, Alt<1, facebook::glean::cpp::schema::Cxx1::MethodSignature>>, facebook::glean::cpp::schema::Code::Cxx::Entity>> { static const char* GLEAN_name() { return "symbolid.cxx.LookupFunctionSignatureQualifierDefinition"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct LookupFunctionSignatureQualifierDefinition } // namespace Cxx } // namespace Symbolid } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Fbthrift::ServiceName, Repr>; }; namespace schema { namespace Fbthrift { struct ResultType { boost::variant>, Alt<1, std::tuple<>>, Alt<2, Fact>, Alt<3, ResultStream>, Alt<4, Fact>, Alt<5, ResultSink>> GLEAN_value; static ResultType oneway_() { return ResultType{Alt<0, std::tuple<>>(std::make_tuple())}; } static ResultType void_() { return ResultType{Alt<1, std::tuple<>>(std::make_tuple())}; } static ResultType result(const Fact& a) { return ResultType{Alt<2, Fact>(a)}; } static ResultType stream_(const ResultStream& a) { return ResultType{Alt<3, ResultStream>(a)}; } static ResultType service_(const Fact& a) { return ResultType{Alt<4, Fact>(a)}; } static ResultType sink_(const ResultSink& a) { return ResultType{Alt<5, ResultSink>(a)}; } bool operator==(const ResultType& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const ResultType& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const ResultType& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const ResultType& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const ResultType& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const ResultType& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct ResultType struct FunctionSpecification : Predicate, ResultType, std::vector, std::vector, std::vector>>> { static const char* GLEAN_name() { return "fbthrift.FunctionSpecification"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FunctionSpecification } // namespace Fbthrift } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Buck { struct XRefDestination { boost::variant>, Alt<1, Fact>, Alt<2, Fact>> GLEAN_value; static XRefDestination locator(const Fact& a) { return XRefDestination{Alt<0, Fact>(a)}; } static XRefDestination file(const Fact& a) { return XRefDestination{Alt<1, Fact>(a)}; } static XRefDestination definition(const Fact& a) { return XRefDestination{Alt<2, Fact>(a)}; } bool operator==(const XRefDestination& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const XRefDestination& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const XRefDestination& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const XRefDestination& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const XRefDestination& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const XRefDestination& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct XRefDestination } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Tuple, Array>>; }; namespace schema { namespace Buck { struct XRef { XRefDestination destination; std::vector ranges; bool operator==(const XRef& other) const { return std::tie(destination,ranges) == std::tie(other.destination,other.ranges); } bool operator!=(const XRef& other) const { return std::tie(destination,ranges) != std::tie(other.destination,other.ranges); } bool operator<(const XRef& other) const { return std::tie(destination,ranges) < std::tie(other.destination,other.ranges); } bool operator<=(const XRef& other) const { return std::tie(destination,ranges) <= std::tie(other.destination,other.ranges); } bool operator>(const XRef& other) const { return std::tie(destination,ranges) > std::tie(other.destination,other.ranges); } bool operator>=(const XRef& other) const { return std::tie(destination,ranges) >= std::tie(other.destination,other.ranges); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(destination, ranges)); } }; // struct XRef struct Type : Predicate { static const char* GLEAN_name() { return "buck.Type"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Type struct TranslationUnit : Predicate, Fact, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "buck.TranslationUnit"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TranslationUnit struct TargetUses : Predicate, Fact, std::vector>> { static const char* GLEAN_name() { return "buck.TargetUses"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetUses struct TargetSourcesBaseModule : Predicate, std::vector>, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "buck.TargetSourcesBaseModule"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetSourcesBaseModule struct TargetSources : Predicate, std::vector>, std::vector>, std::vector>>> { static const char* GLEAN_name() { return "buck.TargetSources"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetSources struct TargetOuts : Predicate, boost::variant>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "buck.TargetOuts"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetOuts struct TargetOut : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.TargetOut"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetOut struct TargetMode : Predicate, std::string>> { static const char* GLEAN_name() { return "buck.TargetMode"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetMode struct TargetLocation : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "buck.TargetLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetLocation struct TargetLinkWhole : Predicate> { static const char* GLEAN_name() { return "buck.TargetLinkWhole"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetLinkWhole struct TargetIndexerName : Predicate { static const char* GLEAN_name() { return "buck.TargetIndexerName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetIndexerName struct TargetIndexer : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.TargetIndexer"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetIndexer struct TargetHash : Predicate, std::string>> { static const char* GLEAN_name() { return "buck.TargetHash"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetHash struct TargetCallByCallExpr : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.TargetCallByCallExpr"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetCallByCallExpr struct TargetCall : Predicate, std::vector>, Fact, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "buck.TargetCall"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetCall struct TargetByType : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.TargetByType"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetByType struct TargetAttribute : Predicate, Fact, Fact>> { static const char* GLEAN_name() { return "buck.TargetAttribute"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetAttribute struct Target : Predicate, Fact, boost::variant>, Alt<1, Fact>>, Fact>> { static const char* GLEAN_name() { return "buck.Target"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Target struct SourceFileLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "buck.SourceFileLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SourceFileLocation struct SearchByLocalName : Predicate, XRefDestination>> { static const char* GLEAN_name() { return "buck.SearchByLocalName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct SearchByLocalName struct RuleKey : Predicate, std::string>> { static const char* GLEAN_name() { return "buck.RuleKey"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct RuleKey struct Platform : Predicate { static const char* GLEAN_name() { return "buck.Platform"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Platform struct Owner : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.Owner"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Owner struct OutsTarget : Predicate, Fact, boost::variant>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "buck.OutsTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct OutsTarget struct OutputLabel : Predicate { static const char* GLEAN_name() { return "buck.OutputLabel"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct OutputLabel struct OutTarget : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.OutTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct OutTarget struct LocatorWithLabel : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.LocatorWithLabel"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct LocatorWithLabel struct LocatorReverseDeps : Predicate, std::vector>>> { static const char* GLEAN_name() { return "buck.LocatorReverseDeps"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct LocatorReverseDeps struct LocatorReverseDep : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.LocatorReverseDep"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct LocatorReverseDep struct Locator : Predicate>, Alt<1, std::string>>, std::string, std::string>> { static const char* GLEAN_name() { return "buck.Locator"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Locator struct LocalNameLowerCase : Predicate>> { static const char* GLEAN_name() { return "buck.LocalNameLowerCase"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct LocalNameLowerCase struct LocalName : Predicate { static const char* GLEAN_name() { return "buck.LocalName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct LocalName struct Labels : Predicate>> { static const char* GLEAN_name() { return "buck.Labels"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Labels struct Label : Predicate { static const char* GLEAN_name() { return "buck.Label"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Label struct IndexerName : Predicate { static const char* GLEAN_name() { return "buck.IndexerName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct IndexerName struct FileXRefs : Predicate, std::vector>> { static const char* GLEAN_name() { return "buck.FileXRefs"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileXRefs struct FileToTarget : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.FileToTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileToTarget struct FileTarget : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.FileTarget"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileTarget struct FileResolved : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.FileResolved"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileResolved struct FileEntity : Predicate, XRefDestination>> { static const char* GLEAN_name() { return "buck.FileEntity"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileEntity struct FileDefinition : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.FileDefinition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FileDefinition struct File : Predicate>, Alt<1, Fact>, Alt<2, Fact>>> { static const char* GLEAN_name() { return "buck.File"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct File struct FailureSources : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.FailureSources"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct FailureSources } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Enum<6>; }; namespace schema { namespace Buck { enum class FailureReason { Skipped, Blocked, EmptyCdb, FailedCdb, QueryFailed, Unclassified }; struct IndexFailureX : Predicate>, Alt<1, Fact>>, Fact, FailureReason, std::string, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "buck.IndexFailureX"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct IndexFailureX struct DestinationUses : Predicate, std::vector>> { static const char* GLEAN_name() { return "buck.DestinationUses"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DestinationUses } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Buck { struct Dependency { Fact target; bool explicit_; bool exported; bool operator==(const Dependency& other) const { return std::tie(target,explicit_,exported) == std::tie(other.target,other.explicit_,other.exported); } bool operator!=(const Dependency& other) const { return std::tie(target,explicit_,exported) != std::tie(other.target,other.explicit_,other.exported); } bool operator<(const Dependency& other) const { return std::tie(target,explicit_,exported) < std::tie(other.target,other.explicit_,other.exported); } bool operator<=(const Dependency& other) const { return std::tie(target,explicit_,exported) <= std::tie(other.target,other.explicit_,other.exported); } bool operator>(const Dependency& other) const { return std::tie(target,explicit_,exported) > std::tie(other.target,other.explicit_,other.exported); } bool operator>=(const Dependency& other) const { return std::tie(target,explicit_,exported) >= std::tie(other.target,other.explicit_,other.exported); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, explicit_, exported)); } }; // struct Dependency struct TargetDependencies : Predicate, std::vector>> { static const char* GLEAN_name() { return "buck.TargetDependencies"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct TargetDependencies struct DefinitionLocation : Predicate, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "buck.DefinitionLocation"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct DefinitionLocation struct Definition : Predicate, std::string>> { static const char* GLEAN_name() { return "buck.Definition"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Definition struct Consumer : Predicate, Fact>> { static const char* GLEAN_name() { return "buck.Consumer"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct Consumer } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Sum; }; namespace schema { namespace Buck { struct CallName { boost::variant, Alt<1, Fact>> GLEAN_value; static CallName prim(const std::string& a) { return CallName{Alt<0, std::string>(a)}; } static CallName definition(const Fact& a) { return CallName{Alt<1, Fact>(a)}; } bool operator==(const CallName& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const CallName& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const CallName& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const CallName& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const CallName& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const CallName& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct CallName struct CallExpr : Predicate, Alt<1, std::tuple, std::string>>>> { static const char* GLEAN_name() { return "buck.CallExpr"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CallExpr struct CallArgument : Predicate>, Alt<1, std::string>>, Fact, Fact, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "buck.CallArgument"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CallArgument struct AttributeName : Predicate { static const char* GLEAN_name() { return "buck.AttributeName"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct AttributeName } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Buck { struct AttributeMapping { std::string key; Fact value; bool operator==(const AttributeMapping& other) const { return std::tie(key,value) == std::tie(other.key,other.value); } bool operator!=(const AttributeMapping& other) const { return std::tie(key,value) != std::tie(other.key,other.value); } bool operator<(const AttributeMapping& other) const { return std::tie(key,value) < std::tie(other.key,other.value); } bool operator<=(const AttributeMapping& other) const { return std::tie(key,value) <= std::tie(other.key,other.value); } bool operator>(const AttributeMapping& other) const { return std::tie(key,value) > std::tie(other.key,other.value); } bool operator>=(const AttributeMapping& other) const { return std::tie(key,value) >= std::tie(other.key,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(key, value)); } }; // struct AttributeMapping struct AttributeValue : Predicate, Alt<1, std::vector>>, Alt<2, std::vector>>> { static const char* GLEAN_name() { return "buck.AttributeValue"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct AttributeValue } // namespace Buck } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Buck { struct ArgumentMapping { std::string key; Fact value; bool operator==(const ArgumentMapping& other) const { return std::tie(key,value) == std::tie(other.key,other.value); } bool operator!=(const ArgumentMapping& other) const { return std::tie(key,value) != std::tie(other.key,other.value); } bool operator<(const ArgumentMapping& other) const { return std::tie(key,value) < std::tie(other.key,other.value); } bool operator<=(const ArgumentMapping& other) const { return std::tie(key,value) <= std::tie(other.key,other.value); } bool operator>(const ArgumentMapping& other) const { return std::tie(key,value) > std::tie(other.key,other.value); } bool operator>=(const ArgumentMapping& other) const { return std::tie(key,value) >= std::tie(other.key,other.value); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(key, value)); } }; // struct ArgumentMapping struct ArgumentValue : Predicate, Alt<1, std::vector>>, Alt<2, std::vector>>> { static const char* GLEAN_name() { return "buck.ArgumentValue"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct ArgumentValue } // namespace Buck namespace Anglelang { struct TypeDecl : Predicate, Fact>> { static const char* GLEAN_name() { return "anglelang.TypeDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TypeDecl struct Name : Predicate { static const char* GLEAN_name() { return "anglelang.Name"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Name using ImportStmt = Fact; } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Tuple; }; namespace schema { namespace Anglelang { struct Field { Fact name; Fact ty; bool operator==(const Field& other) const { return std::tie(name,ty) == std::tie(other.name,other.ty); } bool operator!=(const Field& other) const { return std::tie(name,ty) != std::tie(other.name,other.ty); } bool operator<(const Field& other) const { return std::tie(name,ty) < std::tie(other.name,other.ty); } bool operator<=(const Field& other) const { return std::tie(name,ty) <= std::tie(other.name,other.ty); } bool operator>(const Field& other) const { return std::tie(name,ty) > std::tie(other.name,other.ty); } bool operator>=(const Field& other) const { return std::tie(name,ty) >= std::tie(other.name,other.ty); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(name, ty)); } }; // struct Field struct Type : Predicate>, Alt<1, std::tuple<>>, Alt<2, std::tuple<>>, Alt<3, std::tuple<>>, Alt<4, Fact>, Alt<5, Fact>, Alt<6, Fact>, Alt<7, std::vector>, Alt<8, std::vector>, Alt<9, Fact>, Alt<10, Fact>, Alt<11, std::vector>>>> { static const char* GLEAN_name() { return "anglelang.Type"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct Type struct EvolveDecl : Predicate, Fact>> { static const char* GLEAN_name() { return "anglelang.EvolveDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EvolveDecl } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Enum<4>; }; namespace schema { namespace Anglelang { enum class DeriveInfo { NoDeriving, OnDemand, Stored, IfEmpty }; struct DerivingDecl : Predicate, DeriveInfo>> { static const char* GLEAN_name() { return "anglelang.DerivingDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DerivingDecl struct PredicateDecl : Predicate, Fact, Fact, DeriveInfo>> { static const char* GLEAN_name() { return "anglelang.PredicateDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct PredicateDecl } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Sum, facebook::glean::cpp::schema::Anglelang::EvolveDecl, facebook::glean::cpp::schema::Anglelang::DerivingDecl>; }; namespace schema { namespace Anglelang { struct Declaration { boost::variant>, Alt<1, Fact>, Alt<2, Fact>, Alt<3, ImportStmt>, Alt<4, Fact>, Alt<5, Fact>> GLEAN_value; static Declaration pred(const Fact& a) { return Declaration{Alt<0, Fact>(a)}; } static Declaration ty(const Fact& a) { return Declaration{Alt<1, Fact>(a)}; } static Declaration schema(const Fact& a) { return Declaration{Alt<2, Fact>(a)}; } static Declaration imp(const ImportStmt& a) { return Declaration{Alt<3, ImportStmt>(a)}; } static Declaration evolve(const Fact& a) { return Declaration{Alt<4, Fact>(a)}; } static Declaration derive_(const Fact& a) { return Declaration{Alt<5, Fact>(a)}; } bool operator==(const Declaration& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Declaration& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Declaration& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Declaration& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Declaration& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Declaration& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Declaration struct DeclarationLocation : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "anglelang.DeclarationLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationLocation struct DeclarationToName : Predicate> { static const char* GLEAN_name() { return "anglelang.DeclarationToName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct DeclarationToName struct SchemaDecl : Predicate, std::vector>> { static const char* GLEAN_name() { return "anglelang.SchemaDecl"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SchemaDecl } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Anglelang { struct XRefTarget { Declaration ref; bool operator==(const XRefTarget& other) const { return std::tie(ref) == std::tie(other.ref); } bool operator!=(const XRefTarget& other) const { return std::tie(ref) != std::tie(other.ref); } bool operator<(const XRefTarget& other) const { return std::tie(ref) < std::tie(other.ref); } bool operator<=(const XRefTarget& other) const { return std::tie(ref) <= std::tie(other.ref); } bool operator>(const XRefTarget& other) const { return std::tie(ref) > std::tie(other.ref); } bool operator>=(const XRefTarget& other) const { return std::tie(ref) >= std::tie(other.ref); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(ref)); } }; // struct XRefTarget struct TargetUses : Predicate, std::vector>> { static const char* GLEAN_name() { return "anglelang.TargetUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct TargetUses } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Tuple, Array>>; }; namespace schema { namespace Anglelang { struct XRef { XRefTarget target; std::vector span; bool operator==(const XRef& other) const { return std::tie(target,span) == std::tie(other.target,other.span); } bool operator!=(const XRef& other) const { return std::tie(target,span) != std::tie(other.target,other.span); } bool operator<(const XRef& other) const { return std::tie(target,span) < std::tie(other.target,other.span); } bool operator<=(const XRef& other) const { return std::tie(target,span) <= std::tie(other.target,other.span); } bool operator>(const XRef& other) const { return std::tie(target,span) > std::tie(other.target,other.span); } bool operator>=(const XRef& other) const { return std::tie(target,span) >= std::tie(other.target,other.span); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(target, span)); } }; // struct XRef struct FileXRefs : Predicate, std::vector>> { static const char* GLEAN_name() { return "anglelang.FileXRefs"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct FileXRefs } // namespace Anglelang } // namespace schema template<> struct Repr_ { using Type = Tuple>; }; namespace schema { namespace Code { namespace Anglelang { struct Entity { facebook::glean::cpp::schema::Anglelang::Declaration decl; bool operator==(const Entity& other) const { return std::tie(decl) == std::tie(other.decl); } bool operator!=(const Entity& other) const { return std::tie(decl) != std::tie(other.decl); } bool operator<(const Entity& other) const { return std::tie(decl) < std::tie(other.decl); } bool operator<=(const Entity& other) const { return std::tie(decl) <= std::tie(other.decl); } bool operator>(const Entity& other) const { return std::tie(decl) > std::tie(other.decl); } bool operator>=(const Entity& other) const { return std::tie(decl) >= std::tie(other.decl); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(decl)); } }; // struct Entity } // namespace Anglelang } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr, Repr>; }; namespace schema { namespace Code { struct Entity { boost::variant, Alt<1, facebook::glean::cpp::schema::Code::Pp::Entity>, Alt<2, facebook::glean::cpp::schema::Code::Java::Entity>, Alt<3, facebook::glean::cpp::schema::Code::Kotlin::Entity>, Alt<4, facebook::glean::cpp::schema::Code::Hs::Entity>, Alt<5, facebook::glean::cpp::schema::Code::Python::Entity>, Alt<6, facebook::glean::cpp::schema::Code::Hack::Entity>, Alt<7, facebook::glean::cpp::schema::Code::Flow::Entity>, Alt<8, facebook::glean::cpp::schema::Code::Fbthrift::Entity>, Alt<9, facebook::glean::cpp::schema::Code::Buck::Entity>, Alt<10, facebook::glean::cpp::schema::Code::Erlang::Entity>, Alt<11, facebook::glean::cpp::schema::Code::Lsif::Entity>, Alt<12, facebook::glean::cpp::schema::Code::Scip::Entity>, Alt<13, facebook::glean::cpp::schema::Code::Csharp::Entity>, Alt<14, facebook::glean::cpp::schema::Code::Graphql::Entity>, Alt<15, facebook::glean::cpp::schema::Code::Dataswarm::Entity>, Alt<16, facebook::glean::cpp::schema::Code::Anglelang::Entity>> GLEAN_value; static Entity cxx(const facebook::glean::cpp::schema::Code::Cxx::Entity& a) { return Entity{Alt<0, facebook::glean::cpp::schema::Code::Cxx::Entity>(a)}; } static Entity pp(const facebook::glean::cpp::schema::Code::Pp::Entity& a) { return Entity{Alt<1, facebook::glean::cpp::schema::Code::Pp::Entity>(a)}; } static Entity java(const facebook::glean::cpp::schema::Code::Java::Entity& a) { return Entity{Alt<2, facebook::glean::cpp::schema::Code::Java::Entity>(a)}; } static Entity kotlin(const facebook::glean::cpp::schema::Code::Kotlin::Entity& a) { return Entity{Alt<3, facebook::glean::cpp::schema::Code::Kotlin::Entity>(a)}; } static Entity hs(const facebook::glean::cpp::schema::Code::Hs::Entity& a) { return Entity{Alt<4, facebook::glean::cpp::schema::Code::Hs::Entity>(a)}; } static Entity python(const facebook::glean::cpp::schema::Code::Python::Entity& a) { return Entity{Alt<5, facebook::glean::cpp::schema::Code::Python::Entity>(a)}; } static Entity hack(const facebook::glean::cpp::schema::Code::Hack::Entity& a) { return Entity{Alt<6, facebook::glean::cpp::schema::Code::Hack::Entity>(a)}; } static Entity flow(const facebook::glean::cpp::schema::Code::Flow::Entity& a) { return Entity{Alt<7, facebook::glean::cpp::schema::Code::Flow::Entity>(a)}; } static Entity fbthrift(const facebook::glean::cpp::schema::Code::Fbthrift::Entity& a) { return Entity{Alt<8, facebook::glean::cpp::schema::Code::Fbthrift::Entity>(a)}; } static Entity buck(const facebook::glean::cpp::schema::Code::Buck::Entity& a) { return Entity{Alt<9, facebook::glean::cpp::schema::Code::Buck::Entity>(a)}; } static Entity erlang(const facebook::glean::cpp::schema::Code::Erlang::Entity& a) { return Entity{Alt<10, facebook::glean::cpp::schema::Code::Erlang::Entity>(a)}; } static Entity lsif(const facebook::glean::cpp::schema::Code::Lsif::Entity& a) { return Entity{Alt<11, facebook::glean::cpp::schema::Code::Lsif::Entity>(a)}; } static Entity scip(const facebook::glean::cpp::schema::Code::Scip::Entity& a) { return Entity{Alt<12, facebook::glean::cpp::schema::Code::Scip::Entity>(a)}; } static Entity csharp(const facebook::glean::cpp::schema::Code::Csharp::Entity& a) { return Entity{Alt<13, facebook::glean::cpp::schema::Code::Csharp::Entity>(a)}; } static Entity graphql(const facebook::glean::cpp::schema::Code::Graphql::Entity& a) { return Entity{Alt<14, facebook::glean::cpp::schema::Code::Graphql::Entity>(a)}; } static Entity dataswarm(const facebook::glean::cpp::schema::Code::Dataswarm::Entity& a) { return Entity{Alt<15, facebook::glean::cpp::schema::Code::Dataswarm::Entity>(a)}; } static Entity angle(const facebook::glean::cpp::schema::Code::Anglelang::Entity& a) { return Entity{Alt<16, facebook::glean::cpp::schema::Code::Anglelang::Entity>(a)}; } bool operator==(const Entity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Entity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Entity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Entity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Entity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Entity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Entity } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Sum>; }; namespace schema { namespace Code { struct Argument { boost::variant, Alt<1, Entity>> GLEAN_value; static Argument lit(const std::string& a) { return Argument{Alt<0, std::string>(a)}; } static Argument xref(const Entity& a) { return Argument{Alt<1, Entity>(a)}; } bool operator==(const Argument& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const Argument& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const Argument& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const Argument& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const Argument& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const Argument& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct Argument } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr, Maybe>>; }; namespace schema { namespace Code { struct CallArgument { boost::variant>, Alt<1, std::string>> label; facebook::glean::cpp::schema::Src::ByteSpan span; boost::variant>, Alt<1, Argument>> argument; bool operator==(const CallArgument& other) const { return std::tie(label,span,argument) == std::tie(other.label,other.span,other.argument); } bool operator!=(const CallArgument& other) const { return std::tie(label,span,argument) != std::tie(other.label,other.span,other.argument); } bool operator<(const CallArgument& other) const { return std::tie(label,span,argument) < std::tie(other.label,other.span,other.argument); } bool operator<=(const CallArgument& other) const { return std::tie(label,span,argument) <= std::tie(other.label,other.span,other.argument); } bool operator>(const CallArgument& other) const { return std::tie(label,span,argument) > std::tie(other.label,other.span,other.argument); } bool operator>=(const CallArgument& other) const { return std::tie(label,span,argument) >= std::tie(other.label,other.span,other.argument); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(label, span, argument)); } }; // struct CallArgument } // namespace Code namespace Codemarkup { namespace Hack { struct ConvertCallArguments : Predicate, std::vector>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertCallArguments"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertCallArguments struct ConvertMaybeCallArguments : Predicate>, Alt<1, facebook::glean::cpp::schema::Hack::CallArgument>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::CallArgument>>>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertMaybeCallArguments"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertMaybeCallArguments } // namespace Hack namespace Python { struct ConvertCallArguments : Predicate, std::vector>> { static const char* GLEAN_name() { return "codemarkup.python.ConvertCallArguments"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertCallArguments struct PythonFileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::vector>> { static const char* GLEAN_name() { return "codemarkup.python.PythonFileCall"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct PythonFileCall } // namespace Python namespace Hack { struct ConvertArgument : Predicate>, Alt<1, facebook::glean::cpp::schema::Hack::Argument>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Argument>>>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertArgument"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertArgument } // namespace Hack namespace Python { struct ConvertArgument : Predicate>, Alt<1, facebook::glean::cpp::schema::Python::Argument>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Argument>>>> { static const char* GLEAN_name() { return "codemarkup.python.ConvertArgument"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertArgument } // namespace Python } // namespace Codemarkup namespace Code { struct EntityLanguage : Predicate> { static const char* GLEAN_name() { return "code.EntityLanguage"; } static constexpr size_t GLEAN_version() { return 24; } }; // struct EntityLanguage } // namespace Code } // namespace schema template<> struct Repr_ { using Type = Tuple, facebook::glean::cpp::schema::Src::File, Maybe>, Maybe>>; }; namespace schema { namespace Code { struct IdlEntity { Language lang; Fact file; boost::variant>, Alt<1, Entity>> entity; boost::variant>, Alt<1, facebook::glean::cpp::schema::Src::Range>> range; bool operator==(const IdlEntity& other) const { return std::tie(lang,file,entity,range) == std::tie(other.lang,other.file,other.entity,other.range); } bool operator!=(const IdlEntity& other) const { return std::tie(lang,file,entity,range) != std::tie(other.lang,other.file,other.entity,other.range); } bool operator<(const IdlEntity& other) const { return std::tie(lang,file,entity,range) < std::tie(other.lang,other.file,other.entity,other.range); } bool operator<=(const IdlEntity& other) const { return std::tie(lang,file,entity,range) <= std::tie(other.lang,other.file,other.entity,other.range); } bool operator>(const IdlEntity& other) const { return std::tie(lang,file,entity,range) > std::tie(other.lang,other.file,other.entity,other.range); } bool operator>=(const IdlEntity& other) const { return std::tie(lang,file,entity,range) >= std::tie(other.lang,other.file,other.entity,other.range); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(lang, file, entity, range)); } }; // struct IdlEntity } // namespace Code namespace Codemarkup { namespace Cxx { struct CxxEntityIdl : Predicate> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxEntityIdl"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxEntityIdl } // namespace Cxx namespace Hack { struct HackEntityIdl : Predicate> { static const char* GLEAN_name() { return "codemarkup.hack.HackEntityIdl"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackEntityIdl } // namespace Hack namespace Yaml { struct YamlFileEntityXLangXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::IdlEntity>> { static const char* GLEAN_name() { return "codemarkup.yaml.YamlFileEntityXLangXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct YamlFileEntityXLangXRefLocations } // namespace Yaml } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Codemarkup { struct ChildEntity { facebook::glean::cpp::schema::Code::Entity child; facebook::glean::cpp::schema::Codemarkup::Types::Location location; bool operator==(const ChildEntity& other) const { return std::tie(child,location) == std::tie(other.child,other.location); } bool operator!=(const ChildEntity& other) const { return std::tie(child,location) != std::tie(other.child,other.location); } bool operator<(const ChildEntity& other) const { return std::tie(child,location) < std::tie(other.child,other.location); } bool operator<=(const ChildEntity& other) const { return std::tie(child,location) <= std::tie(other.child,other.location); } bool operator>(const ChildEntity& other) const { return std::tie(child,location) > std::tie(other.child,other.location); } bool operator>=(const ChildEntity& other) const { return std::tie(child,location) >= std::tie(other.child,other.location); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(child, location)); } }; // struct ChildEntity struct ContainsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.ContainsChildEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ContainsChildEntity struct ContainsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.ContainsParentEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ContainsParentEntity struct EntityComments : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, std::string>>>> { static const char* GLEAN_name() { return "codemarkup.EntityComments"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityComments struct EntityInfo : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityInfo"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityInfo struct EntityIsDefinition : Predicate { static const char* GLEAN_name() { return "codemarkup.EntityIsDefinition"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityIsDefinition struct EntityKind : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityKind"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityKind struct EntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityLocation"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityLocation struct EntityModifiers : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityModifiers"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityModifiers struct EntityModuleName : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityModuleName"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityModuleName struct EntityReferences : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan>> { static const char* GLEAN_name() { return "codemarkup.EntityReferences"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityReferences struct EntitySource : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntitySource"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntitySource struct EntityToAnnotations : Predicate> { static const char* GLEAN_name() { return "codemarkup.EntityToAnnotations"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityToAnnotations struct EntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.EntityUses"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityUses struct EntityVisibility : Predicate { static const char* GLEAN_name() { return "codemarkup.EntityVisibility"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct EntityVisibility struct ExtendsChildEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.ExtendsChildEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ExtendsChildEntity struct ExtendsParentEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.ExtendsParentEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ExtendsParentEntity struct ExtendsParentEntityConcise : Predicate> { static const char* GLEAN_name() { return "codemarkup.ExtendsParentEntityConcise"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ExtendsParentEntityConcise struct FileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::vector, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::CallArgument>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>>> { static const char* GLEAN_name() { return "codemarkup.FileCall"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileCall struct FileEntityDigest : Predicate, facebook::glean::cpp::schema::Code::Entity>, std::string> { static const char* GLEAN_name() { return "codemarkup.FileEntityDigest"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityDigest struct FileEntityInfos : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> { static const char* GLEAN_name() { return "codemarkup.FileEntityInfos"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityInfos struct FileEntityKinds : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> { static const char* GLEAN_name() { return "codemarkup.FileEntityKinds"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityKinds struct FileEntityLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "codemarkup.FileEntityLocations"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityLocations struct FileEntityXRefInfos : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> { static const char* GLEAN_name() { return "codemarkup.FileEntityXRefInfos"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityXRefInfos struct FileEntityXRefKinds : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> { static const char* GLEAN_name() { return "codemarkup.FileEntityXRefKinds"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityXRefKinds struct FileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "codemarkup.FileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityXRefLocations struct FileEntityXRefRangeSpans : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "codemarkup.FileEntityXRefRangeSpans"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileEntityXRefRangeSpans struct FindEntityDefinition : Predicate> { static const char* GLEAN_name() { return "codemarkup.FindEntityDefinition"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FindEntityDefinition struct GeneratedEntityToIdlEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.GeneratedEntityToIdlEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct GeneratedEntityToIdlEntity } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Sum, Repr>, Tuple, Repr>, Tuple, Repr>>; }; namespace schema { namespace Codemarkup { struct GenericEntity { boost::variant>, Alt<1, std::tuple>, Alt<2, std::tuple>> GLEAN_value; static GenericEntity plainEntity(const facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation& xref, const facebook::glean::cpp::schema::Code::Entity& entity) { return GenericEntity{Alt<0, std::tuple>(std::make_tuple(xref, entity))}; } static GenericEntity xlangEntity(const facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan& source, const facebook::glean::cpp::schema::Code::IdlEntity& entity) { return GenericEntity{Alt<1, std::tuple>(std::make_tuple(source, entity))}; } static GenericEntity xlangSymbol(const facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan& source, const facebook::glean::cpp::schema::Code::SymbolId& symbol) { return GenericEntity{Alt<2, std::tuple>(std::make_tuple(source, symbol))}; } bool operator==(const GenericEntity& other) const { return std::tie(GLEAN_value) == std::tie(other.GLEAN_value); } bool operator!=(const GenericEntity& other) const { return std::tie(GLEAN_value) != std::tie(other.GLEAN_value); } bool operator<(const GenericEntity& other) const { return std::tie(GLEAN_value) < std::tie(other.GLEAN_value); } bool operator<=(const GenericEntity& other) const { return std::tie(GLEAN_value) <= std::tie(other.GLEAN_value); } bool operator>(const GenericEntity& other) const { return std::tie(GLEAN_value) > std::tie(other.GLEAN_value); } bool operator>=(const GenericEntity& other) const { return std::tie(GLEAN_value) >= std::tie(other.GLEAN_value); } void outputRepr(Output> out) const { outputValue(out, GLEAN_value); } }; // struct GenericEntity struct FileXRefsGenericEntities : Predicate, GenericEntity>> { static const char* GLEAN_name() { return "codemarkup.FileXRefsGenericEntities"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct FileXRefsGenericEntities } // namespace Codemarkup } // namespace schema template<> struct Repr_ { using Type = Tuple, Repr>; }; namespace schema { namespace Codemarkup { struct ParentEntity { facebook::glean::cpp::schema::Code::Entity parent; facebook::glean::cpp::schema::Codemarkup::Types::Location location; bool operator==(const ParentEntity& other) const { return std::tie(parent,location) == std::tie(other.parent,other.location); } bool operator!=(const ParentEntity& other) const { return std::tie(parent,location) != std::tie(other.parent,other.location); } bool operator<(const ParentEntity& other) const { return std::tie(parent,location) < std::tie(other.parent,other.location); } bool operator<=(const ParentEntity& other) const { return std::tie(parent,location) <= std::tie(other.parent,other.location); } bool operator>(const ParentEntity& other) const { return std::tie(parent,location) > std::tie(other.parent,other.location); } bool operator>=(const ParentEntity& other) const { return std::tie(parent,location) >= std::tie(other.parent,other.location); } void outputRepr(Output> out) const { outputValue(out, std::make_tuple(parent, location)); } }; // struct ParentEntity struct SearchRelatedEntities : Predicate> { static const char* GLEAN_name() { return "codemarkup.SearchRelatedEntities"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct SearchRelatedEntities struct ReferencingEntity : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Codemarkup::Types::Location>> { static const char* GLEAN_name() { return "codemarkup.ReferencingEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ReferencingEntity struct ResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.ResolveLocation"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct ResolveLocation struct SearchInheritedEntities : Predicate> { static const char* GLEAN_name() { return "codemarkup.SearchInheritedEntities"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct SearchInheritedEntities struct SymbolToEntity : Predicate> { static const char* GLEAN_name() { return "codemarkup.SymbolToEntity"; } static constexpr size_t GLEAN_version() { return 30; } }; // struct SymbolToEntity namespace Cxx { struct CxxFileEntityIdl : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::IdlEntity>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxFileEntityIdl"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxFileEntityIdl struct CxxIdlEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.cxx.CxxIdlEntityUses"; } static constexpr size_t GLEAN_version() { return 4; } }; // struct CxxIdlEntityUses } // namespace Cxx namespace Hack { struct ConvertCallee : Predicate>, Alt<1, facebook::glean::cpp::schema::Hack::XRefTarget>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertCallee"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertCallee struct ConvertCalleeForFileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant>, Alt<1, facebook::glean::cpp::schema::Hack::XRefTarget>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertCalleeForFileCall"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertCalleeForFileCall struct ConvertStaticType : Predicate>, Alt<1, facebook::glean::cpp::schema::Hack::Declaration>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>>> { static const char* GLEAN_name() { return "codemarkup.hack.ConvertStaticType"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct ConvertStaticType struct HackFileCall : Predicate, facebook::glean::cpp::schema::Src::ByteSpan, std::vector, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::CallArgument>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>>> { static const char* GLEAN_name() { return "codemarkup.hack.HackFileCall"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackFileCall struct HackIdlEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.hack.HackIdlEntityUses"; } static constexpr size_t GLEAN_version() { return 2; } }; // struct HackIdlEntityUses } // namespace Hack namespace Search { struct EntityLocationAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>>> { static const char* GLEAN_name() { return "codemarkup.search.EntityLocationAndKind"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct EntityLocationAndKind struct SearchByName : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Language>> { static const char* GLEAN_name() { return "codemarkup.search.SearchByName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByName struct SearchByScope : Predicate, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Language>> { static const char* GLEAN_name() { return "codemarkup.search.SearchByScope"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByScope } // namespace Search } // namespace Codemarkup namespace Dyn { struct EntityUsage : Predicate>, Alt<1, Fact>>>> { static const char* GLEAN_name() { return "dyn.EntityUsage"; } static constexpr size_t GLEAN_version() { return 6; } }; // struct EntityUsage } // namespace Dyn namespace Search { namespace Code { struct AngleSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.AngleSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct AngleSearchByLowerCaseName struct AngleSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.AngleSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct AngleSearchByName struct BuckSearchByLocalNameFact : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.BuckSearchByLocalNameFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct BuckSearchByLocalNameFact struct BuckSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.BuckSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct BuckSearchByLowerCaseName struct BuckSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.BuckSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct BuckSearchByName struct CSharpSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.CSharpSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CSharpSearchByLowerCaseName struct CSharpSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.CSharpSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CSharpSearchByName struct CxxSearchByLowerCaseNameKindAndScopeFact : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.CxxSearchByLowerCaseNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxSearchByLowerCaseNameKindAndScopeFact struct CxxSearchByLowerCaseScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.CxxSearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxSearchByLowerCaseScopeAndKind struct CxxSearchByNameKindAndScopeFact : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.CxxSearchByNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxSearchByNameKindAndScopeFact struct CxxSearchByScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.CxxSearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct CxxSearchByScopeAndKind struct ErlangSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.ErlangSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct ErlangSearchByLowerCaseName struct ErlangSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.ErlangSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct ErlangSearchByName struct FbthriftSearchByNameFact : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.FbthriftSearchByNameFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FbthriftSearchByNameFact struct FlowSearchByLowerCaseNameKindAndScopeFact : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.FlowSearchByLowerCaseNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FlowSearchByLowerCaseNameKindAndScopeFact struct FlowSearchByLowerCaseScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.FlowSearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FlowSearchByLowerCaseScopeAndKind struct FlowSearchByNameKindAndScopeFact : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.FlowSearchByNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FlowSearchByNameKindAndScopeFact struct FlowSearchByScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.FlowSearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct FlowSearchByScopeAndKind struct GraphQLSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.GraphQLSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct GraphQLSearchByLowerCaseName struct GraphQLSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.GraphQLSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct GraphQLSearchByName struct HackSearchByLowerCaseNameAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByLowerCaseNameAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByLowerCaseNameAndKind struct HackSearchByLowerCaseScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByLowerCaseScopeAndKind struct HackSearchByNameAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByNameAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByNameAndKind struct HackSearchByNameKindWithNamespace : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByNameKindWithNamespace"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByNameKindWithNamespace struct HackSearchByNameKindWithQName : Predicate, boost::variant>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByNameKindWithQName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByNameKindWithQName struct HackSearchByScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByScopeAndKind struct HackSearchByScopeWithNameKinds : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.HackSearchByScopeWithNameKinds"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HackSearchByScopeWithNameKinds struct HsSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.HsSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HsSearchByLowerCaseName struct HsSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.HsSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct HsSearchByName struct JavaSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.JavaSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByLowerCaseName struct JavaSearchByLowerCaseScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.JavaSearchByLowerCaseScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByLowerCaseScope struct JavaSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.JavaSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByName struct JavaSearchByNameWithFact : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.JavaSearchByNameWithFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByNameWithFact struct JavaSearchByScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.JavaSearchByScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByScope struct JavaSearchByScopeWithName : Predicate, bool, std::vector, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.JavaSearchByScopeWithName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct JavaSearchByScopeWithName struct KotlinSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.KotlinSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByLowerCaseName struct KotlinSearchByLowerCaseScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.KotlinSearchByLowerCaseScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByLowerCaseScope struct KotlinSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.KotlinSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByName struct KotlinSearchByNameWithFact : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.KotlinSearchByNameWithFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByNameWithFact struct KotlinSearchByScope : Predicate, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.KotlinSearchByScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByScope struct KotlinSearchByScopeWithName : Predicate, bool, std::vector, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.KotlinSearchByScopeWithName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct KotlinSearchByScopeWithName struct LsifSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.LsifSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct LsifSearchByLowerCaseName struct LsifSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.LsifSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct LsifSearchByName struct PpSearchByLowerCaseNameKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PpSearchByLowerCaseNameKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PpSearchByLowerCaseNameKind struct PpSearchByNameKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PpSearchByNameKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PpSearchByNameKind struct PythonSearchByLowerCaseNameKindAndScopeFact : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PythonSearchByLowerCaseNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PythonSearchByLowerCaseNameKindAndScopeFact struct PythonSearchByLowerCaseScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PythonSearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PythonSearchByLowerCaseScopeAndKind struct PythonSearchByNameKindAndScopeFact : Predicate>, Alt<1, Fact>>, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PythonSearchByNameKindAndScopeFact"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PythonSearchByNameKindAndScopeFact struct PythonSearchByScopeAndKind : Predicate, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.PythonSearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct PythonSearchByScopeAndKind struct RustSearchByNameAndKind : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.RustSearchByNameAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct RustSearchByNameAndKind struct SearchByLowerCaseNameAndLanguage : Predicate> { static const char* GLEAN_name() { return "search.code.SearchByLowerCaseNameAndLanguage"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByLowerCaseNameAndLanguage struct SearchByLowerCaseNameKindAndLanguage : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByLowerCaseNameKindAndLanguage"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByLowerCaseNameKindAndLanguage struct SearchByLowerCaseScope : Predicate, facebook::glean::cpp::schema::Code::Language, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByLowerCaseScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByLowerCaseScope struct SearchByLowerCaseScopeAndKind : Predicate, facebook::glean::cpp::schema::Code::Language, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByLowerCaseScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByLowerCaseScopeAndKind struct SearchByNameAndLanguage : Predicate> { static const char* GLEAN_name() { return "search.code.SearchByNameAndLanguage"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByNameAndLanguage struct SearchByNameKindAndLanguage : Predicate>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByNameKindAndLanguage"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByNameKindAndLanguage struct SearchByScope : Predicate, facebook::glean::cpp::schema::Code::Language, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByScope"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByScope struct SearchByScopeAndKind : Predicate, facebook::glean::cpp::schema::Code::Language, boost::variant>, Alt<1, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>>, facebook::glean::cpp::schema::Code::Entity>> { static const char* GLEAN_name() { return "search.code.SearchByScopeAndKind"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct SearchByScopeAndKind struct ThriftSearchByLowerCaseName : Predicate> { static const char* GLEAN_name() { return "search.code.ThriftSearchByLowerCaseName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct ThriftSearchByLowerCaseName struct ThriftSearchByName : Predicate> { static const char* GLEAN_name() { return "search.code.ThriftSearchByName"; } static constexpr size_t GLEAN_version() { return 16; } }; // struct ThriftSearchByName } // namespace Code } // namespace Search namespace Codemarkup { namespace Anglelang { struct AngleEntityLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.anglelang.AngleEntityLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct AngleEntityLocation struct AngleEntityUses : Predicate, facebook::glean::cpp::schema::Src::ByteSpan>> { static const char* GLEAN_name() { return "codemarkup.anglelang.AngleEntityUses"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct AngleEntityUses struct AngleFileEntityXRefLocations : Predicate, facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Anglelang::Entity>> { static const char* GLEAN_name() { return "codemarkup.anglelang.AngleFileEntityXRefLocations"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct AngleFileEntityXRefLocations struct AngleResolveLocation : Predicate> { static const char* GLEAN_name() { return "codemarkup.anglelang.AngleResolveLocation"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct AngleResolveLocation } // namespace Anglelang } // namespace Codemarkup namespace Search { namespace Anglelang { struct SearchByName : Predicate, facebook::glean::cpp::schema::Code::Anglelang::Entity>> { static const char* GLEAN_name() { return "search.anglelang.SearchByName"; } static constexpr size_t GLEAN_version() { return 1; } }; // struct SearchByName } // namespace Anglelang } // namespace Search struct SCHEMA { template struct index; static constexpr size_t count = 1157; static constexpr char schemaId[] = "d90d0945fb0ce9e863db84e05c868ba3"; template struct predicate; }; template<> struct SCHEMA::index { static constexpr size_t value = 0; }; template<> struct SCHEMA::index { static constexpr size_t value = 1; }; template<> struct SCHEMA::index { static constexpr size_t value = 2; }; template<> struct SCHEMA::index { static constexpr size_t value = 3; }; template<> struct SCHEMA::index { static constexpr size_t value = 4; }; template<> struct SCHEMA::index { static constexpr size_t value = 5; }; template<> struct SCHEMA::index { static constexpr size_t value = 6; }; template<> struct SCHEMA::index { static constexpr size_t value = 7; }; template<> struct SCHEMA::index { static constexpr size_t value = 8; }; template<> struct SCHEMA::index { static constexpr size_t value = 9; }; template<> struct SCHEMA::index { static constexpr size_t value = 10; }; template<> struct SCHEMA::index { static constexpr size_t value = 11; }; template<> struct SCHEMA::index { static constexpr size_t value = 12; }; template<> struct SCHEMA::index { static constexpr size_t value = 13; }; template<> struct SCHEMA::index { static constexpr size_t value = 14; }; template<> struct SCHEMA::index { static constexpr size_t value = 15; }; template<> struct SCHEMA::index { static constexpr size_t value = 16; }; template<> struct SCHEMA::index { static constexpr size_t value = 17; }; template<> struct SCHEMA::index { static constexpr size_t value = 18; }; template<> struct SCHEMA::index { static constexpr size_t value = 19; }; template<> struct SCHEMA::index { static constexpr size_t value = 20; }; template<> struct SCHEMA::index { static constexpr size_t value = 21; }; template<> struct SCHEMA::index { static constexpr size_t value = 22; }; template<> struct SCHEMA::index { static constexpr size_t value = 23; }; template<> struct SCHEMA::index { static constexpr size_t value = 24; }; template<> struct SCHEMA::index { static constexpr size_t value = 25; }; template<> struct SCHEMA::index { static constexpr size_t value = 26; }; template<> struct SCHEMA::index { static constexpr size_t value = 27; }; template<> struct SCHEMA::index { static constexpr size_t value = 28; }; template<> struct SCHEMA::index { static constexpr size_t value = 29; }; template<> struct SCHEMA::index { static constexpr size_t value = 30; }; template<> struct SCHEMA::index { static constexpr size_t value = 31; }; template<> struct SCHEMA::index { static constexpr size_t value = 32; }; template<> struct SCHEMA::index { static constexpr size_t value = 33; }; template<> struct SCHEMA::index { static constexpr size_t value = 34; }; template<> struct SCHEMA::index { static constexpr size_t value = 35; }; template<> struct SCHEMA::index { static constexpr size_t value = 36; }; template<> struct SCHEMA::index { static constexpr size_t value = 37; }; template<> struct SCHEMA::index { static constexpr size_t value = 38; }; template<> struct SCHEMA::index { static constexpr size_t value = 39; }; template<> struct SCHEMA::index { static constexpr size_t value = 40; }; template<> struct SCHEMA::index { static constexpr size_t value = 41; }; template<> struct SCHEMA::index { static constexpr size_t value = 42; }; template<> struct SCHEMA::index { static constexpr size_t value = 43; }; template<> struct SCHEMA::index { static constexpr size_t value = 44; }; template<> struct SCHEMA::index { static constexpr size_t value = 45; }; template<> struct SCHEMA::index { static constexpr size_t value = 46; }; template<> struct SCHEMA::index { static constexpr size_t value = 47; }; template<> struct SCHEMA::index { static constexpr size_t value = 48; }; template<> struct SCHEMA::index { static constexpr size_t value = 49; }; template<> struct SCHEMA::index { static constexpr size_t value = 50; }; template<> struct SCHEMA::index { static constexpr size_t value = 51; }; template<> struct SCHEMA::index { static constexpr size_t value = 52; }; template<> struct SCHEMA::index { static constexpr size_t value = 53; }; template<> struct SCHEMA::index { static constexpr size_t value = 54; }; template<> struct SCHEMA::index { static constexpr size_t value = 55; }; template<> struct SCHEMA::index { static constexpr size_t value = 56; }; template<> struct SCHEMA::index { static constexpr size_t value = 57; }; template<> struct SCHEMA::index { static constexpr size_t value = 58; }; template<> struct SCHEMA::index { static constexpr size_t value = 59; }; template<> struct SCHEMA::index { static constexpr size_t value = 60; }; template<> struct SCHEMA::index { static constexpr size_t value = 61; }; template<> struct SCHEMA::index { static constexpr size_t value = 62; }; template<> struct SCHEMA::index { static constexpr size_t value = 63; }; template<> struct SCHEMA::index { static constexpr size_t value = 64; }; template<> struct SCHEMA::index { static constexpr size_t value = 65; }; template<> struct SCHEMA::index { static constexpr size_t value = 66; }; template<> struct SCHEMA::index { static constexpr size_t value = 67; }; template<> struct SCHEMA::index { static constexpr size_t value = 68; }; template<> struct SCHEMA::index { static constexpr size_t value = 69; }; template<> struct SCHEMA::index { static constexpr size_t value = 70; }; template<> struct SCHEMA::index { static constexpr size_t value = 71; }; template<> struct SCHEMA::index { static constexpr size_t value = 72; }; template<> struct SCHEMA::index { static constexpr size_t value = 73; }; template<> struct SCHEMA::index { static constexpr size_t value = 74; }; template<> struct SCHEMA::index { static constexpr size_t value = 75; }; template<> struct SCHEMA::index { static constexpr size_t value = 76; }; template<> struct SCHEMA::index { static constexpr size_t value = 77; }; template<> struct SCHEMA::index { static constexpr size_t value = 78; }; template<> struct SCHEMA::index { static constexpr size_t value = 79; }; template<> struct SCHEMA::index { static constexpr size_t value = 80; }; template<> struct SCHEMA::index { static constexpr size_t value = 81; }; template<> struct SCHEMA::index { static constexpr size_t value = 82; }; template<> struct SCHEMA::index { static constexpr size_t value = 83; }; template<> struct SCHEMA::index { static constexpr size_t value = 84; }; template<> struct SCHEMA::index { static constexpr size_t value = 85; }; template<> struct SCHEMA::index { static constexpr size_t value = 86; }; template<> struct SCHEMA::index { static constexpr size_t value = 87; }; template<> struct SCHEMA::index { static constexpr size_t value = 88; }; template<> struct SCHEMA::index { static constexpr size_t value = 89; }; template<> struct SCHEMA::index { static constexpr size_t value = 90; }; template<> struct SCHEMA::index { static constexpr size_t value = 91; }; template<> struct SCHEMA::index { static constexpr size_t value = 92; }; template<> struct SCHEMA::index { static constexpr size_t value = 93; }; template<> struct SCHEMA::index { static constexpr size_t value = 94; }; template<> struct SCHEMA::index { static constexpr size_t value = 95; }; template<> struct SCHEMA::index { static constexpr size_t value = 96; }; template<> struct SCHEMA::index { static constexpr size_t value = 97; }; template<> struct SCHEMA::index { static constexpr size_t value = 98; }; template<> struct SCHEMA::index { static constexpr size_t value = 99; }; template<> struct SCHEMA::index { static constexpr size_t value = 100; }; template<> struct SCHEMA::index { static constexpr size_t value = 101; }; template<> struct SCHEMA::index { static constexpr size_t value = 102; }; template<> struct SCHEMA::index { static constexpr size_t value = 103; }; template<> struct SCHEMA::index { static constexpr size_t value = 104; }; template<> struct SCHEMA::index { static constexpr size_t value = 105; }; template<> struct SCHEMA::index { static constexpr size_t value = 106; }; template<> struct SCHEMA::index { static constexpr size_t value = 107; }; template<> struct SCHEMA::index { static constexpr size_t value = 108; }; template<> struct SCHEMA::index { static constexpr size_t value = 109; }; template<> struct SCHEMA::index { static constexpr size_t value = 110; }; template<> struct SCHEMA::index { static constexpr size_t value = 111; }; template<> struct SCHEMA::index { static constexpr size_t value = 112; }; template<> struct SCHEMA::index { static constexpr size_t value = 113; }; template<> struct SCHEMA::index { static constexpr size_t value = 114; }; template<> struct SCHEMA::index { static constexpr size_t value = 115; }; template<> struct SCHEMA::index { static constexpr size_t value = 116; }; template<> struct SCHEMA::index { static constexpr size_t value = 117; }; template<> struct SCHEMA::index { static constexpr size_t value = 118; }; template<> struct SCHEMA::index { static constexpr size_t value = 119; }; template<> struct SCHEMA::index { static constexpr size_t value = 120; }; template<> struct SCHEMA::index { static constexpr size_t value = 121; }; template<> struct SCHEMA::index { static constexpr size_t value = 122; }; template<> struct SCHEMA::index { static constexpr size_t value = 123; }; template<> struct SCHEMA::index { static constexpr size_t value = 124; }; template<> struct SCHEMA::index { static constexpr size_t value = 125; }; template<> struct SCHEMA::index { static constexpr size_t value = 126; }; template<> struct SCHEMA::index { static constexpr size_t value = 127; }; template<> struct SCHEMA::index { static constexpr size_t value = 128; }; template<> struct SCHEMA::index { static constexpr size_t value = 129; }; template<> struct SCHEMA::index { static constexpr size_t value = 130; }; template<> struct SCHEMA::index { static constexpr size_t value = 131; }; template<> struct SCHEMA::index { static constexpr size_t value = 132; }; template<> struct SCHEMA::index { static constexpr size_t value = 133; }; template<> struct SCHEMA::index { static constexpr size_t value = 134; }; template<> struct SCHEMA::index { static constexpr size_t value = 135; }; template<> struct SCHEMA::index { static constexpr size_t value = 136; }; template<> struct SCHEMA::index { static constexpr size_t value = 137; }; template<> struct SCHEMA::index { static constexpr size_t value = 138; }; template<> struct SCHEMA::index { static constexpr size_t value = 139; }; template<> struct SCHEMA::index { static constexpr size_t value = 140; }; template<> struct SCHEMA::index { static constexpr size_t value = 141; }; template<> struct SCHEMA::index { static constexpr size_t value = 142; }; template<> struct SCHEMA::index { static constexpr size_t value = 143; }; template<> struct SCHEMA::index { static constexpr size_t value = 144; }; template<> struct SCHEMA::index { static constexpr size_t value = 145; }; template<> struct SCHEMA::index { static constexpr size_t value = 146; }; template<> struct SCHEMA::index { static constexpr size_t value = 147; }; template<> struct SCHEMA::index { static constexpr size_t value = 148; }; template<> struct SCHEMA::index { static constexpr size_t value = 149; }; template<> struct SCHEMA::index { static constexpr size_t value = 150; }; template<> struct SCHEMA::index { static constexpr size_t value = 151; }; template<> struct SCHEMA::index { static constexpr size_t value = 152; }; template<> struct SCHEMA::index { static constexpr size_t value = 153; }; template<> struct SCHEMA::index { static constexpr size_t value = 154; }; template<> struct SCHEMA::index { static constexpr size_t value = 155; }; template<> struct SCHEMA::index { static constexpr size_t value = 156; }; template<> struct SCHEMA::index { static constexpr size_t value = 157; }; template<> struct SCHEMA::index { static constexpr size_t value = 158; }; template<> struct SCHEMA::index { static constexpr size_t value = 159; }; template<> struct SCHEMA::index { static constexpr size_t value = 160; }; template<> struct SCHEMA::index { static constexpr size_t value = 161; }; template<> struct SCHEMA::index { static constexpr size_t value = 162; }; template<> struct SCHEMA::index { static constexpr size_t value = 163; }; template<> struct SCHEMA::index { static constexpr size_t value = 164; }; template<> struct SCHEMA::index { static constexpr size_t value = 165; }; template<> struct SCHEMA::index { static constexpr size_t value = 166; }; template<> struct SCHEMA::index { static constexpr size_t value = 167; }; template<> struct SCHEMA::index { static constexpr size_t value = 168; }; template<> struct SCHEMA::index { static constexpr size_t value = 169; }; template<> struct SCHEMA::index { static constexpr size_t value = 170; }; template<> struct SCHEMA::index { static constexpr size_t value = 171; }; template<> struct SCHEMA::index { static constexpr size_t value = 172; }; template<> struct SCHEMA::index { static constexpr size_t value = 173; }; template<> struct SCHEMA::index { static constexpr size_t value = 174; }; template<> struct SCHEMA::index { static constexpr size_t value = 175; }; template<> struct SCHEMA::index { static constexpr size_t value = 176; }; template<> struct SCHEMA::index { static constexpr size_t value = 177; }; template<> struct SCHEMA::index { static constexpr size_t value = 178; }; template<> struct SCHEMA::index { static constexpr size_t value = 179; }; template<> struct SCHEMA::index { static constexpr size_t value = 180; }; template<> struct SCHEMA::index { static constexpr size_t value = 181; }; template<> struct SCHEMA::index { static constexpr size_t value = 182; }; template<> struct SCHEMA::index { static constexpr size_t value = 183; }; template<> struct SCHEMA::index { static constexpr size_t value = 184; }; template<> struct SCHEMA::index { static constexpr size_t value = 185; }; template<> struct SCHEMA::index { static constexpr size_t value = 186; }; template<> struct SCHEMA::index { static constexpr size_t value = 187; }; template<> struct SCHEMA::index { static constexpr size_t value = 188; }; template<> struct SCHEMA::index { static constexpr size_t value = 189; }; template<> struct SCHEMA::index { static constexpr size_t value = 190; }; template<> struct SCHEMA::index { static constexpr size_t value = 191; }; template<> struct SCHEMA::index { static constexpr size_t value = 192; }; template<> struct SCHEMA::index { static constexpr size_t value = 193; }; template<> struct SCHEMA::index { static constexpr size_t value = 194; }; template<> struct SCHEMA::index { static constexpr size_t value = 195; }; template<> struct SCHEMA::index { static constexpr size_t value = 196; }; template<> struct SCHEMA::index { static constexpr size_t value = 197; }; template<> struct SCHEMA::index { static constexpr size_t value = 198; }; template<> struct SCHEMA::index { static constexpr size_t value = 199; }; template<> struct SCHEMA::index { static constexpr size_t value = 200; }; template<> struct SCHEMA::index { static constexpr size_t value = 201; }; template<> struct SCHEMA::index { static constexpr size_t value = 202; }; template<> struct SCHEMA::index { static constexpr size_t value = 203; }; template<> struct SCHEMA::index { static constexpr size_t value = 204; }; template<> struct SCHEMA::index { static constexpr size_t value = 205; }; template<> struct SCHEMA::index { static constexpr size_t value = 206; }; template<> struct SCHEMA::index { static constexpr size_t value = 207; }; template<> struct SCHEMA::index { static constexpr size_t value = 208; }; template<> struct SCHEMA::index { static constexpr size_t value = 209; }; template<> struct SCHEMA::index { static constexpr size_t value = 210; }; template<> struct SCHEMA::index { static constexpr size_t value = 211; }; template<> struct SCHEMA::index { static constexpr size_t value = 212; }; template<> struct SCHEMA::index { static constexpr size_t value = 213; }; template<> struct SCHEMA::index { static constexpr size_t value = 214; }; template<> struct SCHEMA::index { static constexpr size_t value = 215; }; template<> struct SCHEMA::index { static constexpr size_t value = 216; }; template<> struct SCHEMA::index { static constexpr size_t value = 217; }; template<> struct SCHEMA::index { static constexpr size_t value = 218; }; template<> struct SCHEMA::index { static constexpr size_t value = 219; }; template<> struct SCHEMA::index { static constexpr size_t value = 220; }; template<> struct SCHEMA::index { static constexpr size_t value = 221; }; template<> struct SCHEMA::index { static constexpr size_t value = 222; }; template<> struct SCHEMA::index { static constexpr size_t value = 223; }; template<> struct SCHEMA::index { static constexpr size_t value = 224; }; template<> struct SCHEMA::index { static constexpr size_t value = 225; }; template<> struct SCHEMA::index { static constexpr size_t value = 226; }; template<> struct SCHEMA::index { static constexpr size_t value = 227; }; template<> struct SCHEMA::index { static constexpr size_t value = 228; }; template<> struct SCHEMA::index { static constexpr size_t value = 229; }; template<> struct SCHEMA::index { static constexpr size_t value = 230; }; template<> struct SCHEMA::index { static constexpr size_t value = 231; }; template<> struct SCHEMA::index { static constexpr size_t value = 232; }; template<> struct SCHEMA::index { static constexpr size_t value = 233; }; template<> struct SCHEMA::index { static constexpr size_t value = 234; }; template<> struct SCHEMA::index { static constexpr size_t value = 235; }; template<> struct SCHEMA::index { static constexpr size_t value = 236; }; template<> struct SCHEMA::index { static constexpr size_t value = 237; }; template<> struct SCHEMA::index { static constexpr size_t value = 238; }; template<> struct SCHEMA::index { static constexpr size_t value = 239; }; template<> struct SCHEMA::index { static constexpr size_t value = 240; }; template<> struct SCHEMA::index { static constexpr size_t value = 241; }; template<> struct SCHEMA::index { static constexpr size_t value = 242; }; template<> struct SCHEMA::index { static constexpr size_t value = 243; }; template<> struct SCHEMA::index { static constexpr size_t value = 244; }; template<> struct SCHEMA::index { static constexpr size_t value = 245; }; template<> struct SCHEMA::index { static constexpr size_t value = 246; }; template<> struct SCHEMA::index { static constexpr size_t value = 247; }; template<> struct SCHEMA::index { static constexpr size_t value = 248; }; template<> struct SCHEMA::index { static constexpr size_t value = 249; }; template<> struct SCHEMA::index { static constexpr size_t value = 250; }; template<> struct SCHEMA::index { static constexpr size_t value = 251; }; template<> struct SCHEMA::index { static constexpr size_t value = 252; }; template<> struct SCHEMA::index { static constexpr size_t value = 253; }; template<> struct SCHEMA::index { static constexpr size_t value = 254; }; template<> struct SCHEMA::index { static constexpr size_t value = 255; }; template<> struct SCHEMA::index { static constexpr size_t value = 256; }; template<> struct SCHEMA::index { static constexpr size_t value = 257; }; template<> struct SCHEMA::index { static constexpr size_t value = 258; }; template<> struct SCHEMA::index { static constexpr size_t value = 259; }; template<> struct SCHEMA::index { static constexpr size_t value = 260; }; template<> struct SCHEMA::index { static constexpr size_t value = 261; }; template<> struct SCHEMA::index { static constexpr size_t value = 262; }; template<> struct SCHEMA::index { static constexpr size_t value = 263; }; template<> struct SCHEMA::index { static constexpr size_t value = 264; }; template<> struct SCHEMA::index { static constexpr size_t value = 265; }; template<> struct SCHEMA::index { static constexpr size_t value = 266; }; template<> struct SCHEMA::index { static constexpr size_t value = 267; }; template<> struct SCHEMA::index { static constexpr size_t value = 268; }; template<> struct SCHEMA::index { static constexpr size_t value = 269; }; template<> struct SCHEMA::index { static constexpr size_t value = 270; }; template<> struct SCHEMA::index { static constexpr size_t value = 271; }; template<> struct SCHEMA::index { static constexpr size_t value = 272; }; template<> struct SCHEMA::index { static constexpr size_t value = 273; }; template<> struct SCHEMA::index { static constexpr size_t value = 274; }; template<> struct SCHEMA::index { static constexpr size_t value = 275; }; template<> struct SCHEMA::index { static constexpr size_t value = 276; }; template<> struct SCHEMA::index { static constexpr size_t value = 277; }; template<> struct SCHEMA::index { static constexpr size_t value = 278; }; template<> struct SCHEMA::index { static constexpr size_t value = 279; }; template<> struct SCHEMA::index { static constexpr size_t value = 280; }; template<> struct SCHEMA::index { static constexpr size_t value = 281; }; template<> struct SCHEMA::index { static constexpr size_t value = 282; }; template<> struct SCHEMA::index { static constexpr size_t value = 283; }; template<> struct SCHEMA::index { static constexpr size_t value = 284; }; template<> struct SCHEMA::index { static constexpr size_t value = 285; }; template<> struct SCHEMA::index { static constexpr size_t value = 286; }; template<> struct SCHEMA::index { static constexpr size_t value = 287; }; template<> struct SCHEMA::index { static constexpr size_t value = 288; }; template<> struct SCHEMA::index { static constexpr size_t value = 289; }; template<> struct SCHEMA::index { static constexpr size_t value = 290; }; template<> struct SCHEMA::index { static constexpr size_t value = 291; }; template<> struct SCHEMA::index { static constexpr size_t value = 292; }; template<> struct SCHEMA::index { static constexpr size_t value = 293; }; template<> struct SCHEMA::index { static constexpr size_t value = 294; }; template<> struct SCHEMA::index { static constexpr size_t value = 295; }; template<> struct SCHEMA::index { static constexpr size_t value = 296; }; template<> struct SCHEMA::index { static constexpr size_t value = 297; }; template<> struct SCHEMA::index { static constexpr size_t value = 298; }; template<> struct SCHEMA::index { static constexpr size_t value = 299; }; template<> struct SCHEMA::index { static constexpr size_t value = 300; }; template<> struct SCHEMA::index { static constexpr size_t value = 301; }; template<> struct SCHEMA::index { static constexpr size_t value = 302; }; template<> struct SCHEMA::index { static constexpr size_t value = 303; }; template<> struct SCHEMA::index { static constexpr size_t value = 304; }; template<> struct SCHEMA::index { static constexpr size_t value = 305; }; template<> struct SCHEMA::index { static constexpr size_t value = 306; }; template<> struct SCHEMA::index { static constexpr size_t value = 307; }; template<> struct SCHEMA::index { static constexpr size_t value = 308; }; template<> struct SCHEMA::index { static constexpr size_t value = 309; }; template<> struct SCHEMA::index { static constexpr size_t value = 310; }; template<> struct SCHEMA::index { static constexpr size_t value = 311; }; template<> struct SCHEMA::index { static constexpr size_t value = 312; }; template<> struct SCHEMA::index { static constexpr size_t value = 313; }; template<> struct SCHEMA::index { static constexpr size_t value = 314; }; template<> struct SCHEMA::index { static constexpr size_t value = 315; }; template<> struct SCHEMA::index { static constexpr size_t value = 316; }; template<> struct SCHEMA::index { static constexpr size_t value = 317; }; template<> struct SCHEMA::index { static constexpr size_t value = 318; }; template<> struct SCHEMA::index { static constexpr size_t value = 319; }; template<> struct SCHEMA::index { static constexpr size_t value = 320; }; template<> struct SCHEMA::index { static constexpr size_t value = 321; }; template<> struct SCHEMA::index { static constexpr size_t value = 322; }; template<> struct SCHEMA::index { static constexpr size_t value = 323; }; template<> struct SCHEMA::index { static constexpr size_t value = 324; }; template<> struct SCHEMA::index { static constexpr size_t value = 325; }; template<> struct SCHEMA::index { static constexpr size_t value = 326; }; template<> struct SCHEMA::index { static constexpr size_t value = 327; }; template<> struct SCHEMA::index { static constexpr size_t value = 328; }; template<> struct SCHEMA::index { static constexpr size_t value = 329; }; template<> struct SCHEMA::index { static constexpr size_t value = 330; }; template<> struct SCHEMA::index { static constexpr size_t value = 331; }; template<> struct SCHEMA::index { static constexpr size_t value = 332; }; template<> struct SCHEMA::index { static constexpr size_t value = 333; }; template<> struct SCHEMA::index { static constexpr size_t value = 334; }; template<> struct SCHEMA::index { static constexpr size_t value = 335; }; template<> struct SCHEMA::index { static constexpr size_t value = 336; }; template<> struct SCHEMA::index { static constexpr size_t value = 337; }; template<> struct SCHEMA::index { static constexpr size_t value = 338; }; template<> struct SCHEMA::index { static constexpr size_t value = 339; }; template<> struct SCHEMA::index { static constexpr size_t value = 340; }; template<> struct SCHEMA::index { static constexpr size_t value = 341; }; template<> struct SCHEMA::index { static constexpr size_t value = 342; }; template<> struct SCHEMA::index { static constexpr size_t value = 343; }; template<> struct SCHEMA::index { static constexpr size_t value = 344; }; template<> struct SCHEMA::index { static constexpr size_t value = 345; }; template<> struct SCHEMA::index { static constexpr size_t value = 346; }; template<> struct SCHEMA::index { static constexpr size_t value = 347; }; template<> struct SCHEMA::index { static constexpr size_t value = 348; }; template<> struct SCHEMA::index { static constexpr size_t value = 349; }; template<> struct SCHEMA::index { static constexpr size_t value = 350; }; template<> struct SCHEMA::index { static constexpr size_t value = 351; }; template<> struct SCHEMA::index { static constexpr size_t value = 352; }; template<> struct SCHEMA::index { static constexpr size_t value = 353; }; template<> struct SCHEMA::index { static constexpr size_t value = 354; }; template<> struct SCHEMA::index { static constexpr size_t value = 355; }; template<> struct SCHEMA::index { static constexpr size_t value = 356; }; template<> struct SCHEMA::index { static constexpr size_t value = 357; }; template<> struct SCHEMA::index { static constexpr size_t value = 358; }; template<> struct SCHEMA::index { static constexpr size_t value = 359; }; template<> struct SCHEMA::index { static constexpr size_t value = 360; }; template<> struct SCHEMA::index { static constexpr size_t value = 361; }; template<> struct SCHEMA::index { static constexpr size_t value = 362; }; template<> struct SCHEMA::index { static constexpr size_t value = 363; }; template<> struct SCHEMA::index { static constexpr size_t value = 364; }; template<> struct SCHEMA::index { static constexpr size_t value = 365; }; template<> struct SCHEMA::index { static constexpr size_t value = 366; }; template<> struct SCHEMA::index { static constexpr size_t value = 367; }; template<> struct SCHEMA::index { static constexpr size_t value = 368; }; template<> struct SCHEMA::index { static constexpr size_t value = 369; }; template<> struct SCHEMA::index { static constexpr size_t value = 370; }; template<> struct SCHEMA::index { static constexpr size_t value = 371; }; template<> struct SCHEMA::index { static constexpr size_t value = 372; }; template<> struct SCHEMA::index { static constexpr size_t value = 373; }; template<> struct SCHEMA::index { static constexpr size_t value = 374; }; template<> struct SCHEMA::index { static constexpr size_t value = 375; }; template<> struct SCHEMA::index { static constexpr size_t value = 376; }; template<> struct SCHEMA::index { static constexpr size_t value = 377; }; template<> struct SCHEMA::index { static constexpr size_t value = 378; }; template<> struct SCHEMA::index { static constexpr size_t value = 379; }; template<> struct SCHEMA::index { static constexpr size_t value = 380; }; template<> struct SCHEMA::index { static constexpr size_t value = 381; }; template<> struct SCHEMA::index { static constexpr size_t value = 382; }; template<> struct SCHEMA::index { static constexpr size_t value = 383; }; template<> struct SCHEMA::index { static constexpr size_t value = 384; }; template<> struct SCHEMA::index { static constexpr size_t value = 385; }; template<> struct SCHEMA::index { static constexpr size_t value = 386; }; template<> struct SCHEMA::index { static constexpr size_t value = 387; }; template<> struct SCHEMA::index { static constexpr size_t value = 388; }; template<> struct SCHEMA::index { static constexpr size_t value = 389; }; template<> struct SCHEMA::index { static constexpr size_t value = 390; }; template<> struct SCHEMA::index { static constexpr size_t value = 391; }; template<> struct SCHEMA::index { static constexpr size_t value = 392; }; template<> struct SCHEMA::index { static constexpr size_t value = 393; }; template<> struct SCHEMA::index { static constexpr size_t value = 394; }; template<> struct SCHEMA::index { static constexpr size_t value = 395; }; template<> struct SCHEMA::index { static constexpr size_t value = 396; }; template<> struct SCHEMA::index { static constexpr size_t value = 397; }; template<> struct SCHEMA::index { static constexpr size_t value = 398; }; template<> struct SCHEMA::index { static constexpr size_t value = 399; }; template<> struct SCHEMA::index { static constexpr size_t value = 400; }; template<> struct SCHEMA::index { static constexpr size_t value = 401; }; template<> struct SCHEMA::index { static constexpr size_t value = 402; }; template<> struct SCHEMA::index { static constexpr size_t value = 403; }; template<> struct SCHEMA::index { static constexpr size_t value = 404; }; template<> struct SCHEMA::index { static constexpr size_t value = 405; }; template<> struct SCHEMA::index { static constexpr size_t value = 406; }; template<> struct SCHEMA::index { static constexpr size_t value = 407; }; template<> struct SCHEMA::index { static constexpr size_t value = 408; }; template<> struct SCHEMA::index { static constexpr size_t value = 409; }; template<> struct SCHEMA::index { static constexpr size_t value = 410; }; template<> struct SCHEMA::index { static constexpr size_t value = 411; }; template<> struct SCHEMA::index { static constexpr size_t value = 412; }; template<> struct SCHEMA::index { static constexpr size_t value = 413; }; template<> struct SCHEMA::index { static constexpr size_t value = 414; }; template<> struct SCHEMA::index { static constexpr size_t value = 415; }; template<> struct SCHEMA::index { static constexpr size_t value = 416; }; template<> struct SCHEMA::index { static constexpr size_t value = 417; }; template<> struct SCHEMA::index { static constexpr size_t value = 418; }; template<> struct SCHEMA::index { static constexpr size_t value = 419; }; template<> struct SCHEMA::index { static constexpr size_t value = 420; }; template<> struct SCHEMA::index { static constexpr size_t value = 421; }; template<> struct SCHEMA::index { static constexpr size_t value = 422; }; template<> struct SCHEMA::index { static constexpr size_t value = 423; }; template<> struct SCHEMA::index { static constexpr size_t value = 424; }; template<> struct SCHEMA::index { static constexpr size_t value = 425; }; template<> struct SCHEMA::index { static constexpr size_t value = 426; }; template<> struct SCHEMA::index { static constexpr size_t value = 427; }; template<> struct SCHEMA::index { static constexpr size_t value = 428; }; template<> struct SCHEMA::index { static constexpr size_t value = 429; }; template<> struct SCHEMA::index { static constexpr size_t value = 430; }; template<> struct SCHEMA::index { static constexpr size_t value = 431; }; template<> struct SCHEMA::index { static constexpr size_t value = 432; }; template<> struct SCHEMA::index { static constexpr size_t value = 433; }; template<> struct SCHEMA::index { static constexpr size_t value = 434; }; template<> struct SCHEMA::index { static constexpr size_t value = 435; }; template<> struct SCHEMA::index { static constexpr size_t value = 436; }; template<> struct SCHEMA::index { static constexpr size_t value = 437; }; template<> struct SCHEMA::index { static constexpr size_t value = 438; }; template<> struct SCHEMA::index { static constexpr size_t value = 439; }; template<> struct SCHEMA::index { static constexpr size_t value = 440; }; template<> struct SCHEMA::index { static constexpr size_t value = 441; }; template<> struct SCHEMA::index { static constexpr size_t value = 442; }; template<> struct SCHEMA::index { static constexpr size_t value = 443; }; template<> struct SCHEMA::index { static constexpr size_t value = 444; }; template<> struct SCHEMA::index { static constexpr size_t value = 445; }; template<> struct SCHEMA::index { static constexpr size_t value = 446; }; template<> struct SCHEMA::index { static constexpr size_t value = 447; }; template<> struct SCHEMA::index { static constexpr size_t value = 448; }; template<> struct SCHEMA::index { static constexpr size_t value = 449; }; template<> struct SCHEMA::index { static constexpr size_t value = 450; }; template<> struct SCHEMA::index { static constexpr size_t value = 451; }; template<> struct SCHEMA::index { static constexpr size_t value = 452; }; template<> struct SCHEMA::index { static constexpr size_t value = 453; }; template<> struct SCHEMA::index { static constexpr size_t value = 454; }; template<> struct SCHEMA::index { static constexpr size_t value = 455; }; template<> struct SCHEMA::index { static constexpr size_t value = 456; }; template<> struct SCHEMA::index { static constexpr size_t value = 457; }; template<> struct SCHEMA::index { static constexpr size_t value = 458; }; template<> struct SCHEMA::index { static constexpr size_t value = 459; }; template<> struct SCHEMA::index { static constexpr size_t value = 460; }; template<> struct SCHEMA::index { static constexpr size_t value = 461; }; template<> struct SCHEMA::index { static constexpr size_t value = 462; }; template<> struct SCHEMA::index { static constexpr size_t value = 463; }; template<> struct SCHEMA::index { static constexpr size_t value = 464; }; template<> struct SCHEMA::index { static constexpr size_t value = 465; }; template<> struct SCHEMA::index { static constexpr size_t value = 466; }; template<> struct SCHEMA::index { static constexpr size_t value = 467; }; template<> struct SCHEMA::index { static constexpr size_t value = 468; }; template<> struct SCHEMA::index { static constexpr size_t value = 469; }; template<> struct SCHEMA::index { static constexpr size_t value = 470; }; template<> struct SCHEMA::index { static constexpr size_t value = 471; }; template<> struct SCHEMA::index { static constexpr size_t value = 472; }; template<> struct SCHEMA::index { static constexpr size_t value = 473; }; template<> struct SCHEMA::index { static constexpr size_t value = 474; }; template<> struct SCHEMA::index { static constexpr size_t value = 475; }; template<> struct SCHEMA::index { static constexpr size_t value = 476; }; template<> struct SCHEMA::index { static constexpr size_t value = 477; }; template<> struct SCHEMA::index { static constexpr size_t value = 478; }; template<> struct SCHEMA::index { static constexpr size_t value = 479; }; template<> struct SCHEMA::index { static constexpr size_t value = 480; }; template<> struct SCHEMA::index { static constexpr size_t value = 481; }; template<> struct SCHEMA::index { static constexpr size_t value = 482; }; template<> struct SCHEMA::index { static constexpr size_t value = 483; }; template<> struct SCHEMA::index { static constexpr size_t value = 484; }; template<> struct SCHEMA::index { static constexpr size_t value = 485; }; template<> struct SCHEMA::index { static constexpr size_t value = 486; }; template<> struct SCHEMA::index { static constexpr size_t value = 487; }; template<> struct SCHEMA::index { static constexpr size_t value = 488; }; template<> struct SCHEMA::index { static constexpr size_t value = 489; }; template<> struct SCHEMA::index { static constexpr size_t value = 490; }; template<> struct SCHEMA::index { static constexpr size_t value = 491; }; template<> struct SCHEMA::index { static constexpr size_t value = 492; }; template<> struct SCHEMA::index { static constexpr size_t value = 493; }; template<> struct SCHEMA::index { static constexpr size_t value = 494; }; template<> struct SCHEMA::index { static constexpr size_t value = 495; }; template<> struct SCHEMA::index { static constexpr size_t value = 496; }; template<> struct SCHEMA::index { static constexpr size_t value = 497; }; template<> struct SCHEMA::index { static constexpr size_t value = 498; }; template<> struct SCHEMA::index { static constexpr size_t value = 499; }; template<> struct SCHEMA::index { static constexpr size_t value = 500; }; template<> struct SCHEMA::index { static constexpr size_t value = 501; }; template<> struct SCHEMA::index { static constexpr size_t value = 502; }; template<> struct SCHEMA::index { static constexpr size_t value = 503; }; template<> struct SCHEMA::index { static constexpr size_t value = 504; }; template<> struct SCHEMA::index { static constexpr size_t value = 505; }; template<> struct SCHEMA::index { static constexpr size_t value = 506; }; template<> struct SCHEMA::index { static constexpr size_t value = 507; }; template<> struct SCHEMA::index { static constexpr size_t value = 508; }; template<> struct SCHEMA::index { static constexpr size_t value = 509; }; template<> struct SCHEMA::index { static constexpr size_t value = 510; }; template<> struct SCHEMA::index { static constexpr size_t value = 511; }; template<> struct SCHEMA::index { static constexpr size_t value = 512; }; template<> struct SCHEMA::index { static constexpr size_t value = 513; }; template<> struct SCHEMA::index { static constexpr size_t value = 514; }; template<> struct SCHEMA::index { static constexpr size_t value = 515; }; template<> struct SCHEMA::index { static constexpr size_t value = 516; }; template<> struct SCHEMA::index { static constexpr size_t value = 517; }; template<> struct SCHEMA::index { static constexpr size_t value = 518; }; template<> struct SCHEMA::index { static constexpr size_t value = 519; }; template<> struct SCHEMA::index { static constexpr size_t value = 520; }; template<> struct SCHEMA::index { static constexpr size_t value = 521; }; template<> struct SCHEMA::index { static constexpr size_t value = 522; }; template<> struct SCHEMA::index { static constexpr size_t value = 523; }; template<> struct SCHEMA::index { static constexpr size_t value = 524; }; template<> struct SCHEMA::index { static constexpr size_t value = 525; }; template<> struct SCHEMA::index { static constexpr size_t value = 526; }; template<> struct SCHEMA::index { static constexpr size_t value = 527; }; template<> struct SCHEMA::index { static constexpr size_t value = 528; }; template<> struct SCHEMA::index { static constexpr size_t value = 529; }; template<> struct SCHEMA::index { static constexpr size_t value = 530; }; template<> struct SCHEMA::index { static constexpr size_t value = 531; }; template<> struct SCHEMA::index { static constexpr size_t value = 532; }; template<> struct SCHEMA::index { static constexpr size_t value = 533; }; template<> struct SCHEMA::index { static constexpr size_t value = 534; }; template<> struct SCHEMA::index { static constexpr size_t value = 535; }; template<> struct SCHEMA::index { static constexpr size_t value = 536; }; template<> struct SCHEMA::index { static constexpr size_t value = 537; }; template<> struct SCHEMA::index { static constexpr size_t value = 538; }; template<> struct SCHEMA::index { static constexpr size_t value = 539; }; template<> struct SCHEMA::index { static constexpr size_t value = 540; }; template<> struct SCHEMA::index { static constexpr size_t value = 541; }; template<> struct SCHEMA::index { static constexpr size_t value = 542; }; template<> struct SCHEMA::index { static constexpr size_t value = 543; }; template<> struct SCHEMA::index { static constexpr size_t value = 544; }; template<> struct SCHEMA::index { static constexpr size_t value = 545; }; template<> struct SCHEMA::index { static constexpr size_t value = 546; }; template<> struct SCHEMA::index { static constexpr size_t value = 547; }; template<> struct SCHEMA::index { static constexpr size_t value = 548; }; template<> struct SCHEMA::index { static constexpr size_t value = 549; }; template<> struct SCHEMA::index { static constexpr size_t value = 550; }; template<> struct SCHEMA::index { static constexpr size_t value = 551; }; template<> struct SCHEMA::index { static constexpr size_t value = 552; }; template<> struct SCHEMA::index { static constexpr size_t value = 553; }; template<> struct SCHEMA::index { static constexpr size_t value = 554; }; template<> struct SCHEMA::index { static constexpr size_t value = 555; }; template<> struct SCHEMA::index { static constexpr size_t value = 556; }; template<> struct SCHEMA::index { static constexpr size_t value = 557; }; template<> struct SCHEMA::index { static constexpr size_t value = 558; }; template<> struct SCHEMA::index { static constexpr size_t value = 559; }; template<> struct SCHEMA::index { static constexpr size_t value = 560; }; template<> struct SCHEMA::index { static constexpr size_t value = 561; }; template<> struct SCHEMA::index { static constexpr size_t value = 562; }; template<> struct SCHEMA::index { static constexpr size_t value = 563; }; template<> struct SCHEMA::index { static constexpr size_t value = 564; }; template<> struct SCHEMA::index { static constexpr size_t value = 565; }; template<> struct SCHEMA::index { static constexpr size_t value = 566; }; template<> struct SCHEMA::index { static constexpr size_t value = 567; }; template<> struct SCHEMA::index { static constexpr size_t value = 568; }; template<> struct SCHEMA::index { static constexpr size_t value = 569; }; template<> struct SCHEMA::index { static constexpr size_t value = 570; }; template<> struct SCHEMA::index { static constexpr size_t value = 571; }; template<> struct SCHEMA::index { static constexpr size_t value = 572; }; template<> struct SCHEMA::index { static constexpr size_t value = 573; }; template<> struct SCHEMA::index { static constexpr size_t value = 574; }; template<> struct SCHEMA::index { static constexpr size_t value = 575; }; template<> struct SCHEMA::index { static constexpr size_t value = 576; }; template<> struct SCHEMA::index { static constexpr size_t value = 577; }; template<> struct SCHEMA::index { static constexpr size_t value = 578; }; template<> struct SCHEMA::index { static constexpr size_t value = 579; }; template<> struct SCHEMA::index { static constexpr size_t value = 580; }; template<> struct SCHEMA::index { static constexpr size_t value = 581; }; template<> struct SCHEMA::index { static constexpr size_t value = 582; }; template<> struct SCHEMA::index { static constexpr size_t value = 583; }; template<> struct SCHEMA::index { static constexpr size_t value = 584; }; template<> struct SCHEMA::index { static constexpr size_t value = 585; }; template<> struct SCHEMA::index { static constexpr size_t value = 586; }; template<> struct SCHEMA::index { static constexpr size_t value = 587; }; template<> struct SCHEMA::index { static constexpr size_t value = 588; }; template<> struct SCHEMA::index { static constexpr size_t value = 589; }; template<> struct SCHEMA::index { static constexpr size_t value = 590; }; template<> struct SCHEMA::index { static constexpr size_t value = 591; }; template<> struct SCHEMA::index { static constexpr size_t value = 592; }; template<> struct SCHEMA::index { static constexpr size_t value = 593; }; template<> struct SCHEMA::index { static constexpr size_t value = 594; }; template<> struct SCHEMA::index { static constexpr size_t value = 595; }; template<> struct SCHEMA::index { static constexpr size_t value = 596; }; template<> struct SCHEMA::index { static constexpr size_t value = 597; }; template<> struct SCHEMA::index { static constexpr size_t value = 598; }; template<> struct SCHEMA::index { static constexpr size_t value = 599; }; template<> struct SCHEMA::index { static constexpr size_t value = 600; }; template<> struct SCHEMA::index { static constexpr size_t value = 601; }; template<> struct SCHEMA::index { static constexpr size_t value = 602; }; template<> struct SCHEMA::index { static constexpr size_t value = 603; }; template<> struct SCHEMA::index { static constexpr size_t value = 604; }; template<> struct SCHEMA::index { static constexpr size_t value = 605; }; template<> struct SCHEMA::index { static constexpr size_t value = 606; }; template<> struct SCHEMA::index { static constexpr size_t value = 607; }; template<> struct SCHEMA::index { static constexpr size_t value = 608; }; template<> struct SCHEMA::index { static constexpr size_t value = 609; }; template<> struct SCHEMA::index { static constexpr size_t value = 610; }; template<> struct SCHEMA::index { static constexpr size_t value = 611; }; template<> struct SCHEMA::index { static constexpr size_t value = 612; }; template<> struct SCHEMA::index { static constexpr size_t value = 613; }; template<> struct SCHEMA::index { static constexpr size_t value = 614; }; template<> struct SCHEMA::index { static constexpr size_t value = 615; }; template<> struct SCHEMA::index { static constexpr size_t value = 616; }; template<> struct SCHEMA::index { static constexpr size_t value = 617; }; template<> struct SCHEMA::index { static constexpr size_t value = 618; }; template<> struct SCHEMA::index { static constexpr size_t value = 619; }; template<> struct SCHEMA::index { static constexpr size_t value = 620; }; template<> struct SCHEMA::index { static constexpr size_t value = 621; }; template<> struct SCHEMA::index { static constexpr size_t value = 622; }; template<> struct SCHEMA::index { static constexpr size_t value = 623; }; template<> struct SCHEMA::index { static constexpr size_t value = 624; }; template<> struct SCHEMA::index { static constexpr size_t value = 625; }; template<> struct SCHEMA::index { static constexpr size_t value = 626; }; template<> struct SCHEMA::index { static constexpr size_t value = 627; }; template<> struct SCHEMA::index { static constexpr size_t value = 628; }; template<> struct SCHEMA::index { static constexpr size_t value = 629; }; template<> struct SCHEMA::index { static constexpr size_t value = 630; }; template<> struct SCHEMA::index { static constexpr size_t value = 631; }; template<> struct SCHEMA::index { static constexpr size_t value = 632; }; template<> struct SCHEMA::index { static constexpr size_t value = 633; }; template<> struct SCHEMA::index { static constexpr size_t value = 634; }; template<> struct SCHEMA::index { static constexpr size_t value = 635; }; template<> struct SCHEMA::index { static constexpr size_t value = 636; }; template<> struct SCHEMA::index { static constexpr size_t value = 637; }; template<> struct SCHEMA::index { static constexpr size_t value = 638; }; template<> struct SCHEMA::index { static constexpr size_t value = 639; }; template<> struct SCHEMA::index { static constexpr size_t value = 640; }; template<> struct SCHEMA::index { static constexpr size_t value = 641; }; template<> struct SCHEMA::index { static constexpr size_t value = 642; }; template<> struct SCHEMA::index { static constexpr size_t value = 643; }; template<> struct SCHEMA::index { static constexpr size_t value = 644; }; template<> struct SCHEMA::index { static constexpr size_t value = 645; }; template<> struct SCHEMA::index { static constexpr size_t value = 646; }; template<> struct SCHEMA::index { static constexpr size_t value = 647; }; template<> struct SCHEMA::index { static constexpr size_t value = 648; }; template<> struct SCHEMA::index { static constexpr size_t value = 649; }; template<> struct SCHEMA::index { static constexpr size_t value = 650; }; template<> struct SCHEMA::index { static constexpr size_t value = 651; }; template<> struct SCHEMA::index { static constexpr size_t value = 652; }; template<> struct SCHEMA::index { static constexpr size_t value = 653; }; template<> struct SCHEMA::index { static constexpr size_t value = 654; }; template<> struct SCHEMA::index { static constexpr size_t value = 655; }; template<> struct SCHEMA::index { static constexpr size_t value = 656; }; template<> struct SCHEMA::index { static constexpr size_t value = 657; }; template<> struct SCHEMA::index { static constexpr size_t value = 658; }; template<> struct SCHEMA::index { static constexpr size_t value = 659; }; template<> struct SCHEMA::index { static constexpr size_t value = 660; }; template<> struct SCHEMA::index { static constexpr size_t value = 661; }; template<> struct SCHEMA::index { static constexpr size_t value = 662; }; template<> struct SCHEMA::index { static constexpr size_t value = 663; }; template<> struct SCHEMA::index { static constexpr size_t value = 664; }; template<> struct SCHEMA::index { static constexpr size_t value = 665; }; template<> struct SCHEMA::index { static constexpr size_t value = 666; }; template<> struct SCHEMA::index { static constexpr size_t value = 667; }; template<> struct SCHEMA::index { static constexpr size_t value = 668; }; template<> struct SCHEMA::index { static constexpr size_t value = 669; }; template<> struct SCHEMA::index { static constexpr size_t value = 670; }; template<> struct SCHEMA::index { static constexpr size_t value = 671; }; template<> struct SCHEMA::index { static constexpr size_t value = 672; }; template<> struct SCHEMA::index { static constexpr size_t value = 673; }; template<> struct SCHEMA::index { static constexpr size_t value = 674; }; template<> struct SCHEMA::index { static constexpr size_t value = 675; }; template<> struct SCHEMA::index { static constexpr size_t value = 676; }; template<> struct SCHEMA::index { static constexpr size_t value = 677; }; template<> struct SCHEMA::index { static constexpr size_t value = 678; }; template<> struct SCHEMA::index { static constexpr size_t value = 679; }; template<> struct SCHEMA::index { static constexpr size_t value = 680; }; template<> struct SCHEMA::index { static constexpr size_t value = 681; }; template<> struct SCHEMA::index { static constexpr size_t value = 682; }; template<> struct SCHEMA::index { static constexpr size_t value = 683; }; template<> struct SCHEMA::index { static constexpr size_t value = 684; }; template<> struct SCHEMA::index { static constexpr size_t value = 685; }; template<> struct SCHEMA::index { static constexpr size_t value = 686; }; template<> struct SCHEMA::index { static constexpr size_t value = 687; }; template<> struct SCHEMA::index { static constexpr size_t value = 688; }; template<> struct SCHEMA::index { static constexpr size_t value = 689; }; template<> struct SCHEMA::index { static constexpr size_t value = 690; }; template<> struct SCHEMA::index { static constexpr size_t value = 691; }; template<> struct SCHEMA::index { static constexpr size_t value = 692; }; template<> struct SCHEMA::index { static constexpr size_t value = 693; }; template<> struct SCHEMA::index { static constexpr size_t value = 694; }; template<> struct SCHEMA::index { static constexpr size_t value = 695; }; template<> struct SCHEMA::index { static constexpr size_t value = 696; }; template<> struct SCHEMA::index { static constexpr size_t value = 697; }; template<> struct SCHEMA::index { static constexpr size_t value = 698; }; template<> struct SCHEMA::index { static constexpr size_t value = 699; }; template<> struct SCHEMA::index { static constexpr size_t value = 700; }; template<> struct SCHEMA::index { static constexpr size_t value = 701; }; template<> struct SCHEMA::index { static constexpr size_t value = 702; }; template<> struct SCHEMA::index { static constexpr size_t value = 703; }; template<> struct SCHEMA::index { static constexpr size_t value = 704; }; template<> struct SCHEMA::index { static constexpr size_t value = 705; }; template<> struct SCHEMA::index { static constexpr size_t value = 706; }; template<> struct SCHEMA::index { static constexpr size_t value = 707; }; template<> struct SCHEMA::index { static constexpr size_t value = 708; }; template<> struct SCHEMA::index { static constexpr size_t value = 709; }; template<> struct SCHEMA::index { static constexpr size_t value = 710; }; template<> struct SCHEMA::index { static constexpr size_t value = 711; }; template<> struct SCHEMA::index { static constexpr size_t value = 712; }; template<> struct SCHEMA::index { static constexpr size_t value = 713; }; template<> struct SCHEMA::index { static constexpr size_t value = 714; }; template<> struct SCHEMA::index { static constexpr size_t value = 715; }; template<> struct SCHEMA::index { static constexpr size_t value = 716; }; template<> struct SCHEMA::index { static constexpr size_t value = 717; }; template<> struct SCHEMA::index { static constexpr size_t value = 718; }; template<> struct SCHEMA::index { static constexpr size_t value = 719; }; template<> struct SCHEMA::index { static constexpr size_t value = 720; }; template<> struct SCHEMA::index { static constexpr size_t value = 721; }; template<> struct SCHEMA::index { static constexpr size_t value = 722; }; template<> struct SCHEMA::index { static constexpr size_t value = 723; }; template<> struct SCHEMA::index { static constexpr size_t value = 724; }; template<> struct SCHEMA::index { static constexpr size_t value = 725; }; template<> struct SCHEMA::index { static constexpr size_t value = 726; }; template<> struct SCHEMA::index { static constexpr size_t value = 727; }; template<> struct SCHEMA::index { static constexpr size_t value = 728; }; template<> struct SCHEMA::index { static constexpr size_t value = 729; }; template<> struct SCHEMA::index { static constexpr size_t value = 730; }; template<> struct SCHEMA::index { static constexpr size_t value = 731; }; template<> struct SCHEMA::index { static constexpr size_t value = 732; }; template<> struct SCHEMA::index { static constexpr size_t value = 733; }; template<> struct SCHEMA::index { static constexpr size_t value = 734; }; template<> struct SCHEMA::index { static constexpr size_t value = 735; }; template<> struct SCHEMA::index { static constexpr size_t value = 736; }; template<> struct SCHEMA::index { static constexpr size_t value = 737; }; template<> struct SCHEMA::index { static constexpr size_t value = 738; }; template<> struct SCHEMA::index { static constexpr size_t value = 739; }; template<> struct SCHEMA::index { static constexpr size_t value = 740; }; template<> struct SCHEMA::index { static constexpr size_t value = 741; }; template<> struct SCHEMA::index { static constexpr size_t value = 742; }; template<> struct SCHEMA::index { static constexpr size_t value = 743; }; template<> struct SCHEMA::index { static constexpr size_t value = 744; }; template<> struct SCHEMA::index { static constexpr size_t value = 745; }; template<> struct SCHEMA::index { static constexpr size_t value = 746; }; template<> struct SCHEMA::index { static constexpr size_t value = 747; }; template<> struct SCHEMA::index { static constexpr size_t value = 748; }; template<> struct SCHEMA::index { static constexpr size_t value = 749; }; template<> struct SCHEMA::index { static constexpr size_t value = 750; }; template<> struct SCHEMA::index { static constexpr size_t value = 751; }; template<> struct SCHEMA::index { static constexpr size_t value = 752; }; template<> struct SCHEMA::index { static constexpr size_t value = 753; }; template<> struct SCHEMA::index { static constexpr size_t value = 754; }; template<> struct SCHEMA::index { static constexpr size_t value = 755; }; template<> struct SCHEMA::index { static constexpr size_t value = 756; }; template<> struct SCHEMA::index { static constexpr size_t value = 757; }; template<> struct SCHEMA::index { static constexpr size_t value = 758; }; template<> struct SCHEMA::index { static constexpr size_t value = 759; }; template<> struct SCHEMA::index { static constexpr size_t value = 760; }; template<> struct SCHEMA::index { static constexpr size_t value = 761; }; template<> struct SCHEMA::index { static constexpr size_t value = 762; }; template<> struct SCHEMA::index { static constexpr size_t value = 763; }; template<> struct SCHEMA::index { static constexpr size_t value = 764; }; template<> struct SCHEMA::index { static constexpr size_t value = 765; }; template<> struct SCHEMA::index { static constexpr size_t value = 766; }; template<> struct SCHEMA::index { static constexpr size_t value = 767; }; template<> struct SCHEMA::index { static constexpr size_t value = 768; }; template<> struct SCHEMA::index { static constexpr size_t value = 769; }; template<> struct SCHEMA::index { static constexpr size_t value = 770; }; template<> struct SCHEMA::index { static constexpr size_t value = 771; }; template<> struct SCHEMA::index { static constexpr size_t value = 772; }; template<> struct SCHEMA::index { static constexpr size_t value = 773; }; template<> struct SCHEMA::index { static constexpr size_t value = 774; }; template<> struct SCHEMA::index { static constexpr size_t value = 775; }; template<> struct SCHEMA::index { static constexpr size_t value = 776; }; template<> struct SCHEMA::index { static constexpr size_t value = 777; }; template<> struct SCHEMA::index { static constexpr size_t value = 778; }; template<> struct SCHEMA::index { static constexpr size_t value = 779; }; template<> struct SCHEMA::index { static constexpr size_t value = 780; }; template<> struct SCHEMA::index { static constexpr size_t value = 781; }; template<> struct SCHEMA::index { static constexpr size_t value = 782; }; template<> struct SCHEMA::index { static constexpr size_t value = 783; }; template<> struct SCHEMA::index { static constexpr size_t value = 784; }; template<> struct SCHEMA::index { static constexpr size_t value = 785; }; template<> struct SCHEMA::index { static constexpr size_t value = 786; }; template<> struct SCHEMA::index { static constexpr size_t value = 787; }; template<> struct SCHEMA::index { static constexpr size_t value = 788; }; template<> struct SCHEMA::index { static constexpr size_t value = 789; }; template<> struct SCHEMA::index { static constexpr size_t value = 790; }; template<> struct SCHEMA::index { static constexpr size_t value = 791; }; template<> struct SCHEMA::index { static constexpr size_t value = 792; }; template<> struct SCHEMA::index { static constexpr size_t value = 793; }; template<> struct SCHEMA::index { static constexpr size_t value = 794; }; template<> struct SCHEMA::index { static constexpr size_t value = 795; }; template<> struct SCHEMA::index { static constexpr size_t value = 796; }; template<> struct SCHEMA::index { static constexpr size_t value = 797; }; template<> struct SCHEMA::index { static constexpr size_t value = 798; }; template<> struct SCHEMA::index { static constexpr size_t value = 799; }; template<> struct SCHEMA::index { static constexpr size_t value = 800; }; template<> struct SCHEMA::index { static constexpr size_t value = 801; }; template<> struct SCHEMA::index { static constexpr size_t value = 802; }; template<> struct SCHEMA::index { static constexpr size_t value = 803; }; template<> struct SCHEMA::index { static constexpr size_t value = 804; }; template<> struct SCHEMA::index { static constexpr size_t value = 805; }; template<> struct SCHEMA::index { static constexpr size_t value = 806; }; template<> struct SCHEMA::index { static constexpr size_t value = 807; }; template<> struct SCHEMA::index { static constexpr size_t value = 808; }; template<> struct SCHEMA::index { static constexpr size_t value = 809; }; template<> struct SCHEMA::index { static constexpr size_t value = 810; }; template<> struct SCHEMA::index { static constexpr size_t value = 811; }; template<> struct SCHEMA::index { static constexpr size_t value = 812; }; template<> struct SCHEMA::index { static constexpr size_t value = 813; }; template<> struct SCHEMA::index { static constexpr size_t value = 814; }; template<> struct SCHEMA::index { static constexpr size_t value = 815; }; template<> struct SCHEMA::index { static constexpr size_t value = 816; }; template<> struct SCHEMA::index { static constexpr size_t value = 817; }; template<> struct SCHEMA::index { static constexpr size_t value = 818; }; template<> struct SCHEMA::index { static constexpr size_t value = 819; }; template<> struct SCHEMA::index { static constexpr size_t value = 820; }; template<> struct SCHEMA::index { static constexpr size_t value = 821; }; template<> struct SCHEMA::index { static constexpr size_t value = 822; }; template<> struct SCHEMA::index { static constexpr size_t value = 823; }; template<> struct SCHEMA::index { static constexpr size_t value = 824; }; template<> struct SCHEMA::index { static constexpr size_t value = 825; }; template<> struct SCHEMA::index { static constexpr size_t value = 826; }; template<> struct SCHEMA::index { static constexpr size_t value = 827; }; template<> struct SCHEMA::index { static constexpr size_t value = 828; }; template<> struct SCHEMA::index { static constexpr size_t value = 829; }; template<> struct SCHEMA::index { static constexpr size_t value = 830; }; template<> struct SCHEMA::index { static constexpr size_t value = 831; }; template<> struct SCHEMA::index { static constexpr size_t value = 832; }; template<> struct SCHEMA::index { static constexpr size_t value = 833; }; template<> struct SCHEMA::index { static constexpr size_t value = 834; }; template<> struct SCHEMA::index { static constexpr size_t value = 835; }; template<> struct SCHEMA::index { static constexpr size_t value = 836; }; template<> struct SCHEMA::index { static constexpr size_t value = 837; }; template<> struct SCHEMA::index { static constexpr size_t value = 838; }; template<> struct SCHEMA::index { static constexpr size_t value = 839; }; template<> struct SCHEMA::index { static constexpr size_t value = 840; }; template<> struct SCHEMA::index { static constexpr size_t value = 841; }; template<> struct SCHEMA::index { static constexpr size_t value = 842; }; template<> struct SCHEMA::index { static constexpr size_t value = 843; }; template<> struct SCHEMA::index { static constexpr size_t value = 844; }; template<> struct SCHEMA::index { static constexpr size_t value = 845; }; template<> struct SCHEMA::index { static constexpr size_t value = 846; }; template<> struct SCHEMA::index { static constexpr size_t value = 847; }; template<> struct SCHEMA::index { static constexpr size_t value = 848; }; template<> struct SCHEMA::index { static constexpr size_t value = 849; }; template<> struct SCHEMA::index { static constexpr size_t value = 850; }; template<> struct SCHEMA::index { static constexpr size_t value = 851; }; template<> struct SCHEMA::index { static constexpr size_t value = 852; }; template<> struct SCHEMA::index { static constexpr size_t value = 853; }; template<> struct SCHEMA::index { static constexpr size_t value = 854; }; template<> struct SCHEMA::index { static constexpr size_t value = 855; }; template<> struct SCHEMA::index { static constexpr size_t value = 856; }; template<> struct SCHEMA::index { static constexpr size_t value = 857; }; template<> struct SCHEMA::index { static constexpr size_t value = 858; }; template<> struct SCHEMA::index { static constexpr size_t value = 859; }; template<> struct SCHEMA::index { static constexpr size_t value = 860; }; template<> struct SCHEMA::index { static constexpr size_t value = 861; }; template<> struct SCHEMA::index { static constexpr size_t value = 862; }; template<> struct SCHEMA::index { static constexpr size_t value = 863; }; template<> struct SCHEMA::index { static constexpr size_t value = 864; }; template<> struct SCHEMA::index { static constexpr size_t value = 865; }; template<> struct SCHEMA::index { static constexpr size_t value = 866; }; template<> struct SCHEMA::index { static constexpr size_t value = 867; }; template<> struct SCHEMA::index { static constexpr size_t value = 868; }; template<> struct SCHEMA::index { static constexpr size_t value = 869; }; template<> struct SCHEMA::index { static constexpr size_t value = 870; }; template<> struct SCHEMA::index { static constexpr size_t value = 871; }; template<> struct SCHEMA::index { static constexpr size_t value = 872; }; template<> struct SCHEMA::index { static constexpr size_t value = 873; }; template<> struct SCHEMA::index { static constexpr size_t value = 874; }; template<> struct SCHEMA::index { static constexpr size_t value = 875; }; template<> struct SCHEMA::index { static constexpr size_t value = 876; }; template<> struct SCHEMA::index { static constexpr size_t value = 877; }; template<> struct SCHEMA::index { static constexpr size_t value = 878; }; template<> struct SCHEMA::index { static constexpr size_t value = 879; }; template<> struct SCHEMA::index { static constexpr size_t value = 880; }; template<> struct SCHEMA::index { static constexpr size_t value = 881; }; template<> struct SCHEMA::index { static constexpr size_t value = 882; }; template<> struct SCHEMA::index { static constexpr size_t value = 883; }; template<> struct SCHEMA::index { static constexpr size_t value = 884; }; template<> struct SCHEMA::index { static constexpr size_t value = 885; }; template<> struct SCHEMA::index { static constexpr size_t value = 886; }; template<> struct SCHEMA::index { static constexpr size_t value = 887; }; template<> struct SCHEMA::index { static constexpr size_t value = 888; }; template<> struct SCHEMA::index { static constexpr size_t value = 889; }; template<> struct SCHEMA::index { static constexpr size_t value = 890; }; template<> struct SCHEMA::index { static constexpr size_t value = 891; }; template<> struct SCHEMA::index { static constexpr size_t value = 892; }; template<> struct SCHEMA::index { static constexpr size_t value = 893; }; template<> struct SCHEMA::index { static constexpr size_t value = 894; }; template<> struct SCHEMA::index { static constexpr size_t value = 895; }; template<> struct SCHEMA::index { static constexpr size_t value = 896; }; template<> struct SCHEMA::index { static constexpr size_t value = 897; }; template<> struct SCHEMA::index { static constexpr size_t value = 898; }; template<> struct SCHEMA::index { static constexpr size_t value = 899; }; template<> struct SCHEMA::index { static constexpr size_t value = 900; }; template<> struct SCHEMA::index { static constexpr size_t value = 901; }; template<> struct SCHEMA::index { static constexpr size_t value = 902; }; template<> struct SCHEMA::index { static constexpr size_t value = 903; }; template<> struct SCHEMA::index { static constexpr size_t value = 904; }; template<> struct SCHEMA::index { static constexpr size_t value = 905; }; template<> struct SCHEMA::index { static constexpr size_t value = 906; }; template<> struct SCHEMA::index { static constexpr size_t value = 907; }; template<> struct SCHEMA::index { static constexpr size_t value = 908; }; template<> struct SCHEMA::index { static constexpr size_t value = 909; }; template<> struct SCHEMA::index { static constexpr size_t value = 910; }; template<> struct SCHEMA::index { static constexpr size_t value = 911; }; template<> struct SCHEMA::index { static constexpr size_t value = 912; }; template<> struct SCHEMA::index { static constexpr size_t value = 913; }; template<> struct SCHEMA::index { static constexpr size_t value = 914; }; template<> struct SCHEMA::index { static constexpr size_t value = 915; }; template<> struct SCHEMA::index { static constexpr size_t value = 916; }; template<> struct SCHEMA::index { static constexpr size_t value = 917; }; template<> struct SCHEMA::index { static constexpr size_t value = 918; }; template<> struct SCHEMA::index { static constexpr size_t value = 919; }; template<> struct SCHEMA::index { static constexpr size_t value = 920; }; template<> struct SCHEMA::index { static constexpr size_t value = 921; }; template<> struct SCHEMA::index { static constexpr size_t value = 922; }; template<> struct SCHEMA::index { static constexpr size_t value = 923; }; template<> struct SCHEMA::index { static constexpr size_t value = 924; }; template<> struct SCHEMA::index { static constexpr size_t value = 925; }; template<> struct SCHEMA::index { static constexpr size_t value = 926; }; template<> struct SCHEMA::index { static constexpr size_t value = 927; }; template<> struct SCHEMA::index { static constexpr size_t value = 928; }; template<> struct SCHEMA::index { static constexpr size_t value = 929; }; template<> struct SCHEMA::index { static constexpr size_t value = 930; }; template<> struct SCHEMA::index { static constexpr size_t value = 931; }; template<> struct SCHEMA::index { static constexpr size_t value = 932; }; template<> struct SCHEMA::index { static constexpr size_t value = 933; }; template<> struct SCHEMA::index { static constexpr size_t value = 934; }; template<> struct SCHEMA::index { static constexpr size_t value = 935; }; template<> struct SCHEMA::index { static constexpr size_t value = 936; }; template<> struct SCHEMA::index { static constexpr size_t value = 937; }; template<> struct SCHEMA::index { static constexpr size_t value = 938; }; template<> struct SCHEMA::index { static constexpr size_t value = 939; }; template<> struct SCHEMA::index { static constexpr size_t value = 940; }; template<> struct SCHEMA::index { static constexpr size_t value = 941; }; template<> struct SCHEMA::index { static constexpr size_t value = 942; }; template<> struct SCHEMA::index { static constexpr size_t value = 943; }; template<> struct SCHEMA::index { static constexpr size_t value = 944; }; template<> struct SCHEMA::index { static constexpr size_t value = 945; }; template<> struct SCHEMA::index { static constexpr size_t value = 946; }; template<> struct SCHEMA::index { static constexpr size_t value = 947; }; template<> struct SCHEMA::index { static constexpr size_t value = 948; }; template<> struct SCHEMA::index { static constexpr size_t value = 949; }; template<> struct SCHEMA::index { static constexpr size_t value = 950; }; template<> struct SCHEMA::index { static constexpr size_t value = 951; }; template<> struct SCHEMA::index { static constexpr size_t value = 952; }; template<> struct SCHEMA::index { static constexpr size_t value = 953; }; template<> struct SCHEMA::index { static constexpr size_t value = 954; }; template<> struct SCHEMA::index { static constexpr size_t value = 955; }; template<> struct SCHEMA::index { static constexpr size_t value = 956; }; template<> struct SCHEMA::index { static constexpr size_t value = 957; }; template<> struct SCHEMA::index { static constexpr size_t value = 958; }; template<> struct SCHEMA::index { static constexpr size_t value = 959; }; template<> struct SCHEMA::index { static constexpr size_t value = 960; }; template<> struct SCHEMA::index { static constexpr size_t value = 961; }; template<> struct SCHEMA::index { static constexpr size_t value = 962; }; template<> struct SCHEMA::index { static constexpr size_t value = 963; }; template<> struct SCHEMA::index { static constexpr size_t value = 964; }; template<> struct SCHEMA::index { static constexpr size_t value = 965; }; template<> struct SCHEMA::index { static constexpr size_t value = 966; }; template<> struct SCHEMA::index { static constexpr size_t value = 967; }; template<> struct SCHEMA::index { static constexpr size_t value = 968; }; template<> struct SCHEMA::index { static constexpr size_t value = 969; }; template<> struct SCHEMA::index { static constexpr size_t value = 970; }; template<> struct SCHEMA::index { static constexpr size_t value = 971; }; template<> struct SCHEMA::index { static constexpr size_t value = 972; }; template<> struct SCHEMA::index { static constexpr size_t value = 973; }; template<> struct SCHEMA::index { static constexpr size_t value = 974; }; template<> struct SCHEMA::index { static constexpr size_t value = 975; }; template<> struct SCHEMA::index { static constexpr size_t value = 976; }; template<> struct SCHEMA::index { static constexpr size_t value = 977; }; template<> struct SCHEMA::index { static constexpr size_t value = 978; }; template<> struct SCHEMA::index { static constexpr size_t value = 979; }; template<> struct SCHEMA::index { static constexpr size_t value = 980; }; template<> struct SCHEMA::index { static constexpr size_t value = 981; }; template<> struct SCHEMA::index { static constexpr size_t value = 982; }; template<> struct SCHEMA::index { static constexpr size_t value = 983; }; template<> struct SCHEMA::index { static constexpr size_t value = 984; }; template<> struct SCHEMA::index { static constexpr size_t value = 985; }; template<> struct SCHEMA::index { static constexpr size_t value = 986; }; template<> struct SCHEMA::index { static constexpr size_t value = 987; }; template<> struct SCHEMA::index { static constexpr size_t value = 988; }; template<> struct SCHEMA::index { static constexpr size_t value = 989; }; template<> struct SCHEMA::index { static constexpr size_t value = 990; }; template<> struct SCHEMA::index { static constexpr size_t value = 991; }; template<> struct SCHEMA::index { static constexpr size_t value = 992; }; template<> struct SCHEMA::index { static constexpr size_t value = 993; }; template<> struct SCHEMA::index { static constexpr size_t value = 994; }; template<> struct SCHEMA::index { static constexpr size_t value = 995; }; template<> struct SCHEMA::index { static constexpr size_t value = 996; }; template<> struct SCHEMA::index { static constexpr size_t value = 997; }; template<> struct SCHEMA::index { static constexpr size_t value = 998; }; template<> struct SCHEMA::index { static constexpr size_t value = 999; }; template<> struct SCHEMA::index { static constexpr size_t value = 1000; }; template<> struct SCHEMA::index { static constexpr size_t value = 1001; }; template<> struct SCHEMA::index { static constexpr size_t value = 1002; }; template<> struct SCHEMA::index { static constexpr size_t value = 1003; }; template<> struct SCHEMA::index { static constexpr size_t value = 1004; }; template<> struct SCHEMA::index { static constexpr size_t value = 1005; }; template<> struct SCHEMA::index { static constexpr size_t value = 1006; }; template<> struct SCHEMA::index { static constexpr size_t value = 1007; }; template<> struct SCHEMA::index { static constexpr size_t value = 1008; }; template<> struct SCHEMA::index { static constexpr size_t value = 1009; }; template<> struct SCHEMA::index { static constexpr size_t value = 1010; }; template<> struct SCHEMA::index { static constexpr size_t value = 1011; }; template<> struct SCHEMA::index { static constexpr size_t value = 1012; }; template<> struct SCHEMA::index { static constexpr size_t value = 1013; }; template<> struct SCHEMA::index { static constexpr size_t value = 1014; }; template<> struct SCHEMA::index { static constexpr size_t value = 1015; }; template<> struct SCHEMA::index { static constexpr size_t value = 1016; }; template<> struct SCHEMA::index { static constexpr size_t value = 1017; }; template<> struct SCHEMA::index { static constexpr size_t value = 1018; }; template<> struct SCHEMA::index { static constexpr size_t value = 1019; }; template<> struct SCHEMA::index { static constexpr size_t value = 1020; }; template<> struct SCHEMA::index { static constexpr size_t value = 1021; }; template<> struct SCHEMA::index { static constexpr size_t value = 1022; }; template<> struct SCHEMA::index { static constexpr size_t value = 1023; }; template<> struct SCHEMA::index { static constexpr size_t value = 1024; }; template<> struct SCHEMA::index { static constexpr size_t value = 1025; }; template<> struct SCHEMA::index { static constexpr size_t value = 1026; }; template<> struct SCHEMA::index { static constexpr size_t value = 1027; }; template<> struct SCHEMA::index { static constexpr size_t value = 1028; }; template<> struct SCHEMA::index { static constexpr size_t value = 1029; }; template<> struct SCHEMA::index { static constexpr size_t value = 1030; }; template<> struct SCHEMA::index { static constexpr size_t value = 1031; }; template<> struct SCHEMA::index { static constexpr size_t value = 1032; }; template<> struct SCHEMA::index { static constexpr size_t value = 1033; }; template<> struct SCHEMA::index { static constexpr size_t value = 1034; }; template<> struct SCHEMA::index { static constexpr size_t value = 1035; }; template<> struct SCHEMA::index { static constexpr size_t value = 1036; }; template<> struct SCHEMA::index { static constexpr size_t value = 1037; }; template<> struct SCHEMA::index { static constexpr size_t value = 1038; }; template<> struct SCHEMA::index { static constexpr size_t value = 1039; }; template<> struct SCHEMA::index { static constexpr size_t value = 1040; }; template<> struct SCHEMA::index { static constexpr size_t value = 1041; }; template<> struct SCHEMA::index { static constexpr size_t value = 1042; }; template<> struct SCHEMA::index { static constexpr size_t value = 1043; }; template<> struct SCHEMA::index { static constexpr size_t value = 1044; }; template<> struct SCHEMA::index { static constexpr size_t value = 1045; }; template<> struct SCHEMA::index { static constexpr size_t value = 1046; }; template<> struct SCHEMA::index { static constexpr size_t value = 1047; }; template<> struct SCHEMA::index { static constexpr size_t value = 1048; }; template<> struct SCHEMA::index { static constexpr size_t value = 1049; }; template<> struct SCHEMA::index { static constexpr size_t value = 1050; }; template<> struct SCHEMA::index { static constexpr size_t value = 1051; }; template<> struct SCHEMA::index { static constexpr size_t value = 1052; }; template<> struct SCHEMA::index { static constexpr size_t value = 1053; }; template<> struct SCHEMA::index { static constexpr size_t value = 1054; }; template<> struct SCHEMA::index { static constexpr size_t value = 1055; }; template<> struct SCHEMA::index { static constexpr size_t value = 1056; }; template<> struct SCHEMA::index { static constexpr size_t value = 1057; }; template<> struct SCHEMA::index { static constexpr size_t value = 1058; }; template<> struct SCHEMA::index { static constexpr size_t value = 1059; }; template<> struct SCHEMA::index { static constexpr size_t value = 1060; }; template<> struct SCHEMA::index { static constexpr size_t value = 1061; }; template<> struct SCHEMA::index { static constexpr size_t value = 1062; }; template<> struct SCHEMA::index { static constexpr size_t value = 1063; }; template<> struct SCHEMA::index { static constexpr size_t value = 1064; }; template<> struct SCHEMA::index { static constexpr size_t value = 1065; }; template<> struct SCHEMA::index { static constexpr size_t value = 1066; }; template<> struct SCHEMA::index { static constexpr size_t value = 1067; }; template<> struct SCHEMA::index { static constexpr size_t value = 1068; }; template<> struct SCHEMA::index { static constexpr size_t value = 1069; }; template<> struct SCHEMA::index { static constexpr size_t value = 1070; }; template<> struct SCHEMA::index { static constexpr size_t value = 1071; }; template<> struct SCHEMA::index { static constexpr size_t value = 1072; }; template<> struct SCHEMA::index { static constexpr size_t value = 1073; }; template<> struct SCHEMA::index { static constexpr size_t value = 1074; }; template<> struct SCHEMA::index { static constexpr size_t value = 1075; }; template<> struct SCHEMA::index { static constexpr size_t value = 1076; }; template<> struct SCHEMA::index { static constexpr size_t value = 1077; }; template<> struct SCHEMA::index { static constexpr size_t value = 1078; }; template<> struct SCHEMA::index { static constexpr size_t value = 1079; }; template<> struct SCHEMA::index { static constexpr size_t value = 1080; }; template<> struct SCHEMA::index { static constexpr size_t value = 1081; }; template<> struct SCHEMA::index { static constexpr size_t value = 1082; }; template<> struct SCHEMA::index { static constexpr size_t value = 1083; }; template<> struct SCHEMA::index { static constexpr size_t value = 1084; }; template<> struct SCHEMA::index { static constexpr size_t value = 1085; }; template<> struct SCHEMA::index { static constexpr size_t value = 1086; }; template<> struct SCHEMA::index { static constexpr size_t value = 1087; }; template<> struct SCHEMA::index { static constexpr size_t value = 1088; }; template<> struct SCHEMA::index { static constexpr size_t value = 1089; }; template<> struct SCHEMA::index { static constexpr size_t value = 1090; }; template<> struct SCHEMA::index { static constexpr size_t value = 1091; }; template<> struct SCHEMA::index { static constexpr size_t value = 1092; }; template<> struct SCHEMA::index { static constexpr size_t value = 1093; }; template<> struct SCHEMA::index { static constexpr size_t value = 1094; }; template<> struct SCHEMA::index { static constexpr size_t value = 1095; }; template<> struct SCHEMA::index { static constexpr size_t value = 1096; }; template<> struct SCHEMA::index { static constexpr size_t value = 1097; }; template<> struct SCHEMA::index { static constexpr size_t value = 1098; }; template<> struct SCHEMA::index { static constexpr size_t value = 1099; }; template<> struct SCHEMA::index { static constexpr size_t value = 1100; }; template<> struct SCHEMA::index { static constexpr size_t value = 1101; }; template<> struct SCHEMA::index { static constexpr size_t value = 1102; }; template<> struct SCHEMA::index { static constexpr size_t value = 1103; }; template<> struct SCHEMA::index { static constexpr size_t value = 1104; }; template<> struct SCHEMA::index { static constexpr size_t value = 1105; }; template<> struct SCHEMA::index { static constexpr size_t value = 1106; }; template<> struct SCHEMA::index { static constexpr size_t value = 1107; }; template<> struct SCHEMA::index { static constexpr size_t value = 1108; }; template<> struct SCHEMA::index { static constexpr size_t value = 1109; }; template<> struct SCHEMA::index { static constexpr size_t value = 1110; }; template<> struct SCHEMA::index { static constexpr size_t value = 1111; }; template<> struct SCHEMA::index { static constexpr size_t value = 1112; }; template<> struct SCHEMA::index { static constexpr size_t value = 1113; }; template<> struct SCHEMA::index { static constexpr size_t value = 1114; }; template<> struct SCHEMA::index { static constexpr size_t value = 1115; }; template<> struct SCHEMA::index { static constexpr size_t value = 1116; }; template<> struct SCHEMA::index { static constexpr size_t value = 1117; }; template<> struct SCHEMA::index { static constexpr size_t value = 1118; }; template<> struct SCHEMA::index { static constexpr size_t value = 1119; }; template<> struct SCHEMA::index { static constexpr size_t value = 1120; }; template<> struct SCHEMA::index { static constexpr size_t value = 1121; }; template<> struct SCHEMA::index { static constexpr size_t value = 1122; }; template<> struct SCHEMA::index { static constexpr size_t value = 1123; }; template<> struct SCHEMA::index { static constexpr size_t value = 1124; }; template<> struct SCHEMA::index { static constexpr size_t value = 1125; }; template<> struct SCHEMA::index { static constexpr size_t value = 1126; }; template<> struct SCHEMA::index { static constexpr size_t value = 1127; }; template<> struct SCHEMA::index { static constexpr size_t value = 1128; }; template<> struct SCHEMA::index { static constexpr size_t value = 1129; }; template<> struct SCHEMA::index { static constexpr size_t value = 1130; }; template<> struct SCHEMA::index { static constexpr size_t value = 1131; }; template<> struct SCHEMA::index { static constexpr size_t value = 1132; }; template<> struct SCHEMA::index { static constexpr size_t value = 1133; }; template<> struct SCHEMA::index { static constexpr size_t value = 1134; }; template<> struct SCHEMA::index { static constexpr size_t value = 1135; }; template<> struct SCHEMA::index { static constexpr size_t value = 1136; }; template<> struct SCHEMA::index { static constexpr size_t value = 1137; }; template<> struct SCHEMA::index { static constexpr size_t value = 1138; }; template<> struct SCHEMA::index { static constexpr size_t value = 1139; }; template<> struct SCHEMA::index { static constexpr size_t value = 1140; }; template<> struct SCHEMA::index { static constexpr size_t value = 1141; }; template<> struct SCHEMA::index { static constexpr size_t value = 1142; }; template<> struct SCHEMA::index { static constexpr size_t value = 1143; }; template<> struct SCHEMA::index { static constexpr size_t value = 1144; }; template<> struct SCHEMA::index { static constexpr size_t value = 1145; }; template<> struct SCHEMA::index { static constexpr size_t value = 1146; }; template<> struct SCHEMA::index { static constexpr size_t value = 1147; }; template<> struct SCHEMA::index { static constexpr size_t value = 1148; }; template<> struct SCHEMA::index { static constexpr size_t value = 1149; }; template<> struct SCHEMA::index { static constexpr size_t value = 1150; }; template<> struct SCHEMA::index { static constexpr size_t value = 1151; }; template<> struct SCHEMA::index { static constexpr size_t value = 1152; }; template<> struct SCHEMA::index { static constexpr size_t value = 1153; }; template<> struct SCHEMA::index { static constexpr size_t value = 1154; }; template<> struct SCHEMA::index { static constexpr size_t value = 1155; }; template<> struct SCHEMA::index { static constexpr size_t value = 1156; }; template<> struct SCHEMA::predicate<0> { using type = facebook::glean::cpp::schema::Sys::Blob; }; template<> struct SCHEMA::predicate<1> { using type = facebook::glean::cpp::schema::Src::RangeContains; }; template<> struct SCHEMA::predicate<2> { using type = facebook::glean::cpp::schema::Src::IndexFailure; }; template<> struct SCHEMA::predicate<3> { using type = facebook::glean::cpp::schema::Src::FileLines; }; template<> struct SCHEMA::predicate<4> { using type = facebook::glean::cpp::schema::Src::FileLanguage; }; template<> struct SCHEMA::predicate<5> { using type = facebook::glean::cpp::schema::Src::FileDigest; }; template<> struct SCHEMA::predicate<6> { using type = facebook::glean::cpp::schema::Src::File; }; template<> struct SCHEMA::predicate<7> { using type = facebook::glean::cpp::schema::Src::ByteSpanContains; }; template<> struct SCHEMA::predicate<8> { using type = facebook::glean::cpp::schema::Search::Python::QueryToScopeCase; }; template<> struct SCHEMA::predicate<9> { using type = facebook::glean::cpp::schema::Search::Python::PythonNameCase; }; template<> struct SCHEMA::predicate<10> { using type = facebook::glean::cpp::schema::Search::Pp::SearchByName; }; template<> struct SCHEMA::predicate<11> { using type = facebook::glean::cpp::schema::Search::Java::QueryToScopeCase; }; template<> struct SCHEMA::predicate<12> { using type = facebook::glean::cpp::schema::Search::Java::NameCase; }; template<> struct SCHEMA::predicate<13> { using type = facebook::glean::cpp::schema::Search::Hack::QueryToScopeCase; }; template<> struct SCHEMA::predicate<14> { using type = facebook::glean::cpp::schema::Search::Hack::HackNameCase; }; template<> struct SCHEMA::predicate<15> { using type = facebook::glean::cpp::schema::Search::Hack::HackInAutoImportedNamespace; }; template<> struct SCHEMA::predicate<16> { using type = facebook::glean::cpp::schema::Search::Flow::TypeDeclarationAsDeclaration; }; template<> struct SCHEMA::predicate<17> { using type = facebook::glean::cpp::schema::Search::Flow::QueryToScopeCase; }; template<> struct SCHEMA::predicate<18> { using type = facebook::glean::cpp::schema::Search::Flow::FlowModuleNameCase; }; template<> struct SCHEMA::predicate<19> { using type = facebook::glean::cpp::schema::Search::Cxx::QueryToQNameCase; }; template<> struct SCHEMA::predicate<20> { using type = facebook::glean::cpp::schema::Search::Cxx::QueryToNSQNameCase; }; template<> struct SCHEMA::predicate<21> { using type = facebook::glean::cpp::schema::Search::Cxx::CxxRecordCase; }; template<> struct SCHEMA::predicate<22> { using type = facebook::glean::cpp::schema::Search::Cxx::CxxNamespaceCase; }; template<> struct SCHEMA::predicate<23> { using type = facebook::glean::cpp::schema::Search::Anglelang::NameLowerCase; }; template<> struct SCHEMA::predicate<24> { using type = facebook::glean::cpp::schema::Scip::SymbolName; }; template<> struct SCHEMA::predicate<25> { using type = facebook::glean::cpp::schema::Scip::SymbolDocumentation; }; template<> struct SCHEMA::predicate<26> { using type = facebook::glean::cpp::schema::Scip::SymbolDisplayName; }; template<> struct SCHEMA::predicate<27> { using type = facebook::glean::cpp::schema::Scip::Symbol; }; template<> struct SCHEMA::predicate<28> { using type = facebook::glean::cpp::schema::Scip::ReferenceTarget; }; template<> struct SCHEMA::predicate<29> { using type = facebook::glean::cpp::schema::Scip::Reference; }; template<> struct SCHEMA::predicate<30> { using type = facebook::glean::cpp::schema::Scip::LocalName; }; template<> struct SCHEMA::predicate<31> { using type = facebook::glean::cpp::schema::Scip::IsImplemented; }; template<> struct SCHEMA::predicate<32> { using type = facebook::glean::cpp::schema::Scip::IsImplementation; }; template<> struct SCHEMA::predicate<33> { using type = facebook::glean::cpp::schema::Scip::EntityDefinition; }; template<> struct SCHEMA::predicate<34> { using type = facebook::glean::cpp::schema::Scip::EntityLocation; }; template<> struct SCHEMA::predicate<35> { using type = facebook::glean::cpp::schema::Scip::EntityUses; }; template<> struct SCHEMA::predicate<36> { using type = facebook::glean::cpp::schema::Scip::FileEntityXRefLocation; }; template<> struct SCHEMA::predicate<37> { using type = facebook::glean::cpp::schema::Scip::ResolveLocation; }; template<> struct SCHEMA::predicate<38> { using type = facebook::glean::cpp::schema::Scip::SearchBySymbol; }; template<> struct SCHEMA::predicate<39> { using type = facebook::glean::cpp::schema::Scip::Documentation; }; template<> struct SCHEMA::predicate<40> { using type = facebook::glean::cpp::schema::Scip::DisplayNameSymbol; }; template<> struct SCHEMA::predicate<41> { using type = facebook::glean::cpp::schema::Scip::DisplayName; }; template<> struct SCHEMA::predicate<42> { using type = facebook::glean::cpp::schema::Scip::DefinitionUses; }; template<> struct SCHEMA::predicate<43> { using type = facebook::glean::cpp::schema::Scip::DefinitionName; }; template<> struct SCHEMA::predicate<44> { using type = facebook::glean::cpp::schema::Scip::DefinitionDocumentation; }; template<> struct SCHEMA::predicate<45> { using type = facebook::glean::cpp::schema::Scip::Definition; }; template<> struct SCHEMA::predicate<46> { using type = facebook::glean::cpp::schema::Python::Branches::Root; }; template<> struct SCHEMA::predicate<47> { using type = facebook::glean::cpp::schema::Python::Branches::FileToRoot; }; template<> struct SCHEMA::predicate<48> { using type = facebook::glean::cpp::schema::Python::Branches::DirectXRefByFile; }; template<> struct SCHEMA::predicate<49> { using type = facebook::glean::cpp::schema::Python::XRefsViaNameByTarget; }; template<> struct SCHEMA::predicate<50> { using type = facebook::glean::cpp::schema::Python::XRefsViaName; }; template<> struct SCHEMA::predicate<51> { using type = facebook::glean::cpp::schema::Python::XRefsViaNameByFile; }; template<> struct SCHEMA::predicate<52> { using type = facebook::glean::cpp::schema::Python::VariableDeclaration; }; template<> struct SCHEMA::predicate<53> { using type = facebook::glean::cpp::schema::Python::VariableBySName; }; template<> struct SCHEMA::predicate<54> { using type = facebook::glean::cpp::schema::Python::Type; }; template<> struct SCHEMA::predicate<55> { using type = facebook::glean::cpp::schema::Python::StringLiteral; }; template<> struct SCHEMA::predicate<56> { using type = facebook::glean::cpp::schema::Python::SearchVariableByName; }; template<> struct SCHEMA::predicate<57> { using type = facebook::glean::cpp::schema::Python::SearchVariableByLowerCaseName; }; template<> struct SCHEMA::predicate<58> { using type = facebook::glean::cpp::schema::Python::SearchModuleByName; }; template<> struct SCHEMA::predicate<59> { using type = facebook::glean::cpp::schema::Python::SearchModuleByLowerCaseName; }; template<> struct SCHEMA::predicate<60> { using type = facebook::glean::cpp::schema::Python::SearchMethodByName; }; template<> struct SCHEMA::predicate<61> { using type = facebook::glean::cpp::schema::Python::SearchMethodByLowerCaseName; }; template<> struct SCHEMA::predicate<62> { using type = facebook::glean::cpp::schema::Python::SearchFunctionByName; }; template<> struct SCHEMA::predicate<63> { using type = facebook::glean::cpp::schema::Python::SearchFunctionByLowerCaseName; }; template<> struct SCHEMA::predicate<64> { using type = facebook::glean::cpp::schema::Python::SearchFieldByName; }; template<> struct SCHEMA::predicate<65> { using type = facebook::glean::cpp::schema::Python::SearchFieldByLowerCaseName; }; template<> struct SCHEMA::predicate<66> { using type = facebook::glean::cpp::schema::Python::SearchClassByName; }; template<> struct SCHEMA::predicate<67> { using type = facebook::glean::cpp::schema::Python::SearchClassByLowerCaseName; }; template<> struct SCHEMA::predicate<68> { using type = facebook::glean::cpp::schema::Python::SNameToName; }; template<> struct SCHEMA::predicate<69> { using type = facebook::glean::cpp::schema::Python::SName; }; template<> struct SCHEMA::predicate<70> { using type = facebook::glean::cpp::schema::Python::ResolveOriginalName; }; template<> struct SCHEMA::predicate<71> { using type = facebook::glean::cpp::schema::Python::NameToSName; }; template<> struct SCHEMA::predicate<72> { using type = facebook::glean::cpp::schema::Python::Name; }; template<> struct SCHEMA::predicate<73> { using type = facebook::glean::cpp::schema::Python::ModuleDefinition; }; template<> struct SCHEMA::predicate<74> { using type = facebook::glean::cpp::schema::Python::ModuleBySName; }; template<> struct SCHEMA::predicate<75> { using type = facebook::glean::cpp::schema::Python::Module; }; template<> struct SCHEMA::predicate<76> { using type = facebook::glean::cpp::schema::Python::MethodOverrides; }; template<> struct SCHEMA::predicate<77> { using type = facebook::glean::cpp::schema::Python::MethodOverriden; }; template<> struct SCHEMA::predicate<78> { using type = facebook::glean::cpp::schema::Python::MethodByLocalNameStr; }; template<> struct SCHEMA::predicate<79> { using type = facebook::glean::cpp::schema::Python::ImportStatementByAsSName; }; template<> struct SCHEMA::predicate<80> { using type = facebook::glean::cpp::schema::Python::ImportStatementByAsName; }; template<> struct SCHEMA::predicate<81> { using type = facebook::glean::cpp::schema::Python::ImportStatement; }; template<> struct SCHEMA::predicate<82> { using type = facebook::glean::cpp::schema::Python::ImportStarsByFile; }; template<> struct SCHEMA::predicate<83> { using type = facebook::glean::cpp::schema::Python::ImportStarStatement; }; template<> struct SCHEMA::predicate<84> { using type = facebook::glean::cpp::schema::Python::ImportStarLocation; }; template<> struct SCHEMA::predicate<85> { using type = facebook::glean::cpp::schema::Python::FunctionDeclaration; }; template<> struct SCHEMA::predicate<86> { using type = facebook::glean::cpp::schema::Python::FunctionBySName; }; template<> struct SCHEMA::predicate<87> { using type = facebook::glean::cpp::schema::Python::DerivedClassToBase; }; template<> struct SCHEMA::predicate<88> { using type = facebook::glean::cpp::schema::Python::DefinitionLocation; }; template<> struct SCHEMA::predicate<89> { using type = facebook::glean::cpp::schema::Python::DefinitionsByFile; }; template<> struct SCHEMA::predicate<90> { using type = facebook::glean::cpp::schema::Python::IsTopLevelDefinition; }; template<> struct SCHEMA::predicate<91> { using type = facebook::glean::cpp::schema::Python::FunctionDefinition; }; template<> struct SCHEMA::predicate<92> { using type = facebook::glean::cpp::schema::Python::VariableDefinition; }; template<> struct SCHEMA::predicate<93> { using type = facebook::glean::cpp::schema::Python::DeclarationDefinition; }; template<> struct SCHEMA::predicate<94> { using type = facebook::glean::cpp::schema::Python::DeclarationDocstring; }; template<> struct SCHEMA::predicate<95> { using type = facebook::glean::cpp::schema::Python::DeclarationLocation; }; template<> struct SCHEMA::predicate<96> { using type = facebook::glean::cpp::schema::Python::DeclarationReference; }; template<> struct SCHEMA::predicate<97> { using type = facebook::glean::cpp::schema::Python::DeclarationToName; }; template<> struct SCHEMA::predicate<98> { using type = facebook::glean::cpp::schema::Python::DeclarationUses; }; template<> struct SCHEMA::predicate<99> { using type = facebook::glean::cpp::schema::Python::DeclarationWithLocalName; }; template<> struct SCHEMA::predicate<100> { using type = facebook::glean::cpp::schema::Python::DeclarationWithName; }; template<> struct SCHEMA::predicate<101> { using type = facebook::glean::cpp::schema::Python::DeclarationWithSName; }; template<> struct SCHEMA::predicate<102> { using type = facebook::glean::cpp::schema::Python::DeclarationsByFile; }; template<> struct SCHEMA::predicate<103> { using type = facebook::glean::cpp::schema::Python::DefinitionDeclaration; }; template<> struct SCHEMA::predicate<104> { using type = facebook::glean::cpp::schema::Python::DirectXRefsByFile; }; template<> struct SCHEMA::predicate<105> { using type = facebook::glean::cpp::schema::Python::IsAbstract; }; template<> struct SCHEMA::predicate<106> { using type = facebook::glean::cpp::schema::Python::IsTopLevelDeclaration; }; template<> struct SCHEMA::predicate<107> { using type = facebook::glean::cpp::schema::Python::NonImportDeclaration; }; template<> struct SCHEMA::predicate<108> { using type = facebook::glean::cpp::schema::Python::SNameWithDeclaration; }; template<> struct SCHEMA::predicate<109> { using type = facebook::glean::cpp::schema::Yaml::XRefsByFile; }; template<> struct SCHEMA::predicate<110> { using type = facebook::glean::cpp::schema::Python::Contains; }; template<> struct SCHEMA::predicate<111> { using type = facebook::glean::cpp::schema::Python::ContainingTopLevelDeclaration; }; template<> struct SCHEMA::predicate<112> { using type = facebook::glean::cpp::schema::Python::ContainedByTopLevelDeclaration; }; template<> struct SCHEMA::predicate<113> { using type = facebook::glean::cpp::schema::Python::ContainedBy; }; template<> struct SCHEMA::predicate<114> { using type = facebook::glean::cpp::schema::Python::ClassDefinition; }; template<> struct SCHEMA::predicate<115> { using type = facebook::glean::cpp::schema::Python::ClassDeclaration; }; template<> struct SCHEMA::predicate<116> { using type = facebook::glean::cpp::schema::Python::ClassBySName; }; template<> struct SCHEMA::predicate<117> { using type = facebook::glean::cpp::schema::Python::CalleeToCaller; }; template<> struct SCHEMA::predicate<118> { using type = facebook::glean::cpp::schema::Python::BaseClassToDerived; }; template<> struct SCHEMA::predicate<119> { using type = facebook::glean::cpp::schema::Python::FileCall; }; template<> struct SCHEMA::predicate<120> { using type = facebook::glean::cpp::schema::Pp1::Use; }; template<> struct SCHEMA::predicate<121> { using type = facebook::glean::cpp::schema::Pp1::Undef; }; template<> struct SCHEMA::predicate<122> { using type = facebook::glean::cpp::schema::Pp1::Macro; }; template<> struct SCHEMA::predicate<123> { using type = facebook::glean::cpp::schema::Pp1::Include; }; template<> struct SCHEMA::predicate<124> { using type = facebook::glean::cpp::schema::Pp1::DefineUse; }; template<> struct SCHEMA::predicate<125> { using type = facebook::glean::cpp::schema::Pp1::DefineLowerCase; }; template<> struct SCHEMA::predicate<126> { using type = facebook::glean::cpp::schema::Pp1::Define; }; template<> struct SCHEMA::predicate<127> { using type = facebook::glean::cpp::schema::Scip::Metadata; }; template<> struct SCHEMA::predicate<128> { using type = facebook::glean::cpp::schema::Scip::EntityKind; }; template<> struct SCHEMA::predicate<129> { using type = facebook::glean::cpp::schema::Scip::SearchByNameKind; }; template<> struct SCHEMA::predicate<130> { using type = facebook::glean::cpp::schema::Scip::SymbolKind; }; template<> struct SCHEMA::predicate<131> { using type = facebook::glean::cpp::schema::Lsif::Types::ToSrcRange; }; template<> struct SCHEMA::predicate<132> { using type = facebook::glean::cpp::schema::Scip::DefinitionLocation; }; template<> struct SCHEMA::predicate<133> { using type = facebook::glean::cpp::schema::Scip::FileRange; }; template<> struct SCHEMA::predicate<134> { using type = facebook::glean::cpp::schema::Scip::FileXLangSymbolRef; }; template<> struct SCHEMA::predicate<135> { using type = facebook::glean::cpp::schema::Scip::ReferenceLocation; }; template<> struct SCHEMA::predicate<136> { using type = facebook::glean::cpp::schema::Scip::FileLanguage; }; template<> struct SCHEMA::predicate<137> { using type = facebook::glean::cpp::schema::Scip::TagDefinition; }; template<> struct SCHEMA::predicate<138> { using type = facebook::glean::cpp::schema::Lsif::Types::FromSrcRange; }; template<> struct SCHEMA::predicate<139> { using type = facebook::glean::cpp::schema::Lsif::Reference; }; template<> struct SCHEMA::predicate<140> { using type = facebook::glean::cpp::schema::Lsif::Range; }; template<> struct SCHEMA::predicate<141> { using type = facebook::glean::cpp::schema::Lsif::ProjectDocument; }; template<> struct SCHEMA::predicate<142> { using type = facebook::glean::cpp::schema::Lsif::Project; }; template<> struct SCHEMA::predicate<143> { using type = facebook::glean::cpp::schema::Lsif::PackageInformation; }; template<> struct SCHEMA::predicate<144> { using type = facebook::glean::cpp::schema::Lsif::NameLowerCase; }; template<> struct SCHEMA::predicate<145> { using type = facebook::glean::cpp::schema::Lsif::NameDefinition; }; template<> struct SCHEMA::predicate<146> { using type = facebook::glean::cpp::schema::Lsif::Name; }; template<> struct SCHEMA::predicate<147> { using type = facebook::glean::cpp::schema::Lsif::MonikerSymbolKind; }; template<> struct SCHEMA::predicate<148> { using type = facebook::glean::cpp::schema::Lsif::MonikerScheme; }; template<> struct SCHEMA::predicate<149> { using type = facebook::glean::cpp::schema::Lsif::MonikerId; }; template<> struct SCHEMA::predicate<150> { using type = facebook::glean::cpp::schema::Lsif::MonikerDefinition; }; template<> struct SCHEMA::predicate<151> { using type = facebook::glean::cpp::schema::Lsif::Moniker; }; template<> struct SCHEMA::predicate<152> { using type = facebook::glean::cpp::schema::Lsif::Metadata; }; template<> struct SCHEMA::predicate<153> { using type = facebook::glean::cpp::schema::Lsif::HoverText; }; template<> struct SCHEMA::predicate<154> { using type = facebook::glean::cpp::schema::Lsif::HoverContent; }; template<> struct SCHEMA::predicate<155> { using type = facebook::glean::cpp::schema::Lsif::EntityDefinition; }; template<> struct SCHEMA::predicate<156> { using type = facebook::glean::cpp::schema::Lsif::EntityKind; }; template<> struct SCHEMA::predicate<157> { using type = facebook::glean::cpp::schema::Lsif::EntityLocation; }; template<> struct SCHEMA::predicate<158> { using type = facebook::glean::cpp::schema::Lsif::EntityUses; }; template<> struct SCHEMA::predicate<159> { using type = facebook::glean::cpp::schema::Lsif::FileEntityXRefLocation; }; template<> struct SCHEMA::predicate<160> { using type = facebook::glean::cpp::schema::Lsif::ResolveLocation; }; template<> struct SCHEMA::predicate<161> { using type = facebook::glean::cpp::schema::Lsif::SearchByExactLocation; }; template<> struct SCHEMA::predicate<162> { using type = facebook::glean::cpp::schema::Lsif::SearchByExactLocationAndName; }; template<> struct SCHEMA::predicate<163> { using type = facebook::glean::cpp::schema::Lsif::SearchByMoniker; }; template<> struct SCHEMA::predicate<164> { using type = facebook::glean::cpp::schema::Lsif::SearchByName; }; template<> struct SCHEMA::predicate<165> { using type = facebook::glean::cpp::schema::Lsif::SearchNonLocalByLocation; }; template<> struct SCHEMA::predicate<166> { using type = facebook::glean::cpp::schema::Lsif::TagDefinition; }; template<> struct SCHEMA::predicate<167> { using type = facebook::glean::cpp::schema::Lsif::Document; }; template<> struct SCHEMA::predicate<168> { using type = facebook::glean::cpp::schema::Lsif::DefinitionUse; }; template<> struct SCHEMA::predicate<169> { using type = facebook::glean::cpp::schema::Lsif::DefinitionMoniker; }; template<> struct SCHEMA::predicate<170> { using type = facebook::glean::cpp::schema::Lsif::DefinitionLocation; }; template<> struct SCHEMA::predicate<171> { using type = facebook::glean::cpp::schema::Lsif::DefinitionKind; }; template<> struct SCHEMA::predicate<172> { using type = facebook::glean::cpp::schema::Lsif::DefinitionHover; }; template<> struct SCHEMA::predicate<173> { using type = facebook::glean::cpp::schema::Lsif::Definition; }; template<> struct SCHEMA::predicate<174> { using type = facebook::glean::cpp::schema::Lsif::Declaration; }; template<> struct SCHEMA::predicate<175> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::VariableParent; }; template<> struct SCHEMA::predicate<176> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::VariableDeclaration; }; template<> struct SCHEMA::predicate<177> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::TypeArg; }; template<> struct SCHEMA::predicate<178> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::Type; }; template<> struct SCHEMA::predicate<179> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::DeclarationLocation; }; template<> struct SCHEMA::predicate<180> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::DeclarationFileLocation; }; template<> struct SCHEMA::predicate<181> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::ExtendsDeclaration; }; template<> struct SCHEMA::predicate<182> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::FileDeclarations; }; template<> struct SCHEMA::predicate<183> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::MethodDeclaration; }; template<> struct SCHEMA::predicate<184> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::ParentDeclaration; }; template<> struct SCHEMA::predicate<185> { using type = facebook::glean::cpp::schema::Search::Kotlin::SearchByQName; }; template<> struct SCHEMA::predicate<186> { using type = facebook::glean::cpp::schema::Symbolid::Kotlin::LookupDeclaration; }; template<> struct SCHEMA::predicate<187> { using type = facebook::glean::cpp::schema::Symbolid::Kotlin::LookupMethodDeclaration; }; template<> struct SCHEMA::predicate<188> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::ContainsDeclaration; }; template<> struct SCHEMA::predicate<189> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::ClassMember; }; template<> struct SCHEMA::predicate<190> { using type = facebook::glean::cpp::schema::Kotlin::Alpha::ClassDeclaration; }; template<> struct SCHEMA::predicate<191> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::Type; }; template<> struct SCHEMA::predicate<192> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::QName; }; template<> struct SCHEMA::predicate<193> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::Path; }; template<> struct SCHEMA::predicate<194> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::NameLowerCase; }; template<> struct SCHEMA::predicate<195> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::Name; }; template<> struct SCHEMA::predicate<196> { using type = facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName; }; template<> struct SCHEMA::predicate<197> { using type = facebook::glean::cpp::schema::Java::Alpha::XRefFile; }; template<> struct SCHEMA::predicate<198> { using type = facebook::glean::cpp::schema::Java::Alpha::XRef; }; template<> struct SCHEMA::predicate<199> { using type = facebook::glean::cpp::schema::Java::Alpha::TypeVar; }; template<> struct SCHEMA::predicate<200> { using type = facebook::glean::cpp::schema::Java::Alpha::TypeParam; }; template<> struct SCHEMA::predicate<201> { using type = facebook::glean::cpp::schema::Java::Alpha::TypeOfTypeArgs; }; template<> struct SCHEMA::predicate<202> { using type = facebook::glean::cpp::schema::Java::Alpha::TypeArg; }; template<> struct SCHEMA::predicate<203> { using type = facebook::glean::cpp::schema::Java::Alpha::PrimitiveType; }; template<> struct SCHEMA::predicate<204> { using type = facebook::glean::cpp::schema::Java::Alpha::PackageDeclaration; }; template<> struct SCHEMA::predicate<205> { using type = facebook::glean::cpp::schema::Java::Alpha::ObjectType; }; template<> struct SCHEMA::predicate<206> { using type = facebook::glean::cpp::schema::Java::Alpha::ParameterDeclaration; }; template<> struct SCHEMA::predicate<207> { using type = facebook::glean::cpp::schema::Java::Alpha::InterfaceInheritance; }; template<> struct SCHEMA::predicate<208> { using type = facebook::glean::cpp::schema::Java::Alpha::Inheritance; }; template<> struct SCHEMA::predicate<209> { using type = facebook::glean::cpp::schema::Java::Alpha::ImportDeclaration; }; template<> struct SCHEMA::predicate<210> { using type = facebook::glean::cpp::schema::Java::Alpha::FileXRefs; }; template<> struct SCHEMA::predicate<211> { using type = facebook::glean::cpp::schema::Java::Alpha::ExecutableDefnLocation; }; template<> struct SCHEMA::predicate<212> { using type = facebook::glean::cpp::schema::Java::Alpha::LocalDeclaration; }; template<> struct SCHEMA::predicate<213> { using type = facebook::glean::cpp::schema::Java::Alpha::DefinitionLocation; }; template<> struct SCHEMA::predicate<214> { using type = facebook::glean::cpp::schema::Java::Alpha::EnumDeclaration; }; template<> struct SCHEMA::predicate<215> { using type = facebook::glean::cpp::schema::Java::Alpha::FieldDeclaration; }; template<> struct SCHEMA::predicate<216> { using type = facebook::glean::cpp::schema::Java::Alpha::InterfaceDeclaration; }; template<> struct SCHEMA::predicate<217> { using type = facebook::glean::cpp::schema::Java::Alpha::MethodDeclaration; }; template<> struct SCHEMA::predicate<218> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationAnnotations; }; template<> struct SCHEMA::predicate<219> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationComment; }; template<> struct SCHEMA::predicate<220> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationLocation; }; template<> struct SCHEMA::predicate<221> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationType; }; template<> struct SCHEMA::predicate<222> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationUses; }; template<> struct SCHEMA::predicate<223> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclarationXRefTarget; }; template<> struct SCHEMA::predicate<224> { using type = facebook::glean::cpp::schema::Java::Alpha::ExtendedByDeclaration; }; template<> struct SCHEMA::predicate<225> { using type = facebook::glean::cpp::schema::Java::Alpha::ExtendsDeclaration; }; template<> struct SCHEMA::predicate<226> { using type = facebook::glean::cpp::schema::Java::Alpha::FileDeclarations; }; template<> struct SCHEMA::predicate<227> { using type = facebook::glean::cpp::schema::Java::Alpha::ParentDeclaration; }; template<> struct SCHEMA::predicate<228> { using type = facebook::glean::cpp::schema::Java::Alpha::QNameToDefinition; }; template<> struct SCHEMA::predicate<229> { using type = facebook::glean::cpp::schema::Java::Alpha::XRefOfType; }; template<> struct SCHEMA::predicate<230> { using type = facebook::glean::cpp::schema::Java::Alpha::XRefTargetDeclaration; }; template<> struct SCHEMA::predicate<231> { using type = facebook::glean::cpp::schema::Search::Java::SearchByQName; }; template<> struct SCHEMA::predicate<232> { using type = facebook::glean::cpp::schema::Symbolid::Java::LookupDeclaration; }; template<> struct SCHEMA::predicate<233> { using type = facebook::glean::cpp::schema::Symbolid::Java::LookupMethodDeclaration; }; template<> struct SCHEMA::predicate<234> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclOfExecutableDefn; }; template<> struct SCHEMA::predicate<235> { using type = facebook::glean::cpp::schema::Java::Alpha::DeclOfDefn; }; template<> struct SCHEMA::predicate<236> { using type = facebook::glean::cpp::schema::Java::Alpha::ContainsDeclaration; }; template<> struct SCHEMA::predicate<237> { using type = facebook::glean::cpp::schema::Java::Alpha::ConstructorDeclaration; }; template<> struct SCHEMA::predicate<238> { using type = facebook::glean::cpp::schema::Java::Alpha::ClassDeclaration; }; template<> struct SCHEMA::predicate<239> { using type = facebook::glean::cpp::schema::Java::Alpha::Type; }; template<> struct SCHEMA::predicate<240> { using type = facebook::glean::cpp::schema::Java::Alpha::ArrayType; }; template<> struct SCHEMA::predicate<241> { using type = facebook::glean::cpp::schema::Java::Alpha::Annotation; }; template<> struct SCHEMA::predicate<242> { using type = facebook::glean::cpp::schema::Java::Alpha::AnnotatedClass; }; template<> struct SCHEMA::predicate<243> { using type = facebook::glean::cpp::schema::Indexer::Config; }; template<> struct SCHEMA::predicate<244> { using type = facebook::glean::cpp::schema::Hs::ValBind; }; template<> struct SCHEMA::predicate<245> { using type = facebook::glean::cpp::schema::Hs::UnitName; }; template<> struct SCHEMA::predicate<246> { using type = facebook::glean::cpp::schema::Hs::TypeSynDecl; }; template<> struct SCHEMA::predicate<247> { using type = facebook::glean::cpp::schema::Hs::TypeFamilyDecl; }; template<> struct SCHEMA::predicate<248> { using type = facebook::glean::cpp::schema::Hs::TyVarBind; }; template<> struct SCHEMA::predicate<249> { using type = facebook::glean::cpp::schema::Hs::TyCon; }; template<> struct SCHEMA::predicate<250> { using type = facebook::glean::cpp::schema::Hs::SourceModule; }; template<> struct SCHEMA::predicate<251> { using type = facebook::glean::cpp::schema::Hs::SigDecl; }; template<> struct SCHEMA::predicate<252> { using type = facebook::glean::cpp::schema::Hs::XRef; }; template<> struct SCHEMA::predicate<253> { using type = facebook::glean::cpp::schema::Hs::RecordFieldDecl; }; template<> struct SCHEMA::predicate<254> { using type = facebook::glean::cpp::schema::Hs::PatSynDecl; }; template<> struct SCHEMA::predicate<255> { using type = facebook::glean::cpp::schema::Hs::PatBind; }; template<> struct SCHEMA::predicate<256> { using type = facebook::glean::cpp::schema::Hs::OccNameLowerCase; }; template<> struct SCHEMA::predicate<257> { using type = facebook::glean::cpp::schema::Hs::OccName; }; template<> struct SCHEMA::predicate<258> { using type = facebook::glean::cpp::schema::Hs::Name; }; template<> struct SCHEMA::predicate<259> { using type = facebook::glean::cpp::schema::Hs::ModuleSource; }; template<> struct SCHEMA::predicate<260> { using type = facebook::glean::cpp::schema::Hs::ModuleName; }; template<> struct SCHEMA::predicate<261> { using type = facebook::glean::cpp::schema::Hs::ModuleDeclarations; }; template<> struct SCHEMA::predicate<262> { using type = facebook::glean::cpp::schema::Hs::Module; }; template<> struct SCHEMA::predicate<263> { using type = facebook::glean::cpp::schema::Hs::MethDecl; }; template<> struct SCHEMA::predicate<264> { using type = facebook::glean::cpp::schema::Hs::LitType; }; template<> struct SCHEMA::predicate<265> { using type = facebook::glean::cpp::schema::Hs::InstanceDecl; }; template<> struct SCHEMA::predicate<266> { using type = facebook::glean::cpp::schema::Hs::InstanceBindToDecl; }; template<> struct SCHEMA::predicate<267> { using type = facebook::glean::cpp::schema::Hs::InstanceBind; }; template<> struct SCHEMA::predicate<268> { using type = facebook::glean::cpp::schema::Hs::FileXRefs; }; template<> struct SCHEMA::predicate<269> { using type = facebook::glean::cpp::schema::Hs::DeclarationLocation; }; template<> struct SCHEMA::predicate<270> { using type = facebook::glean::cpp::schema::Hs::DeclarationOfName; }; template<> struct SCHEMA::predicate<271> { using type = facebook::glean::cpp::schema::Hs::DeclarationSpan; }; template<> struct SCHEMA::predicate<272> { using type = facebook::glean::cpp::schema::Hs::DataDecl; }; template<> struct SCHEMA::predicate<273> { using type = facebook::glean::cpp::schema::Hs::ConstrDecl; }; template<> struct SCHEMA::predicate<274> { using type = facebook::glean::cpp::schema::Hs::ClassDecl; }; template<> struct SCHEMA::predicate<275> { using type = facebook::glean::cpp::schema::Hs::Type; }; template<> struct SCHEMA::predicate<276> { using type = facebook::glean::cpp::schema::Hack::UserAttribute; }; template<> struct SCHEMA::predicate<277> { using type = facebook::glean::cpp::schema::Hack::TypedefDeclaration; }; template<> struct SCHEMA::predicate<278> { using type = facebook::glean::cpp::schema::Hack::TypeConstDefinition; }; template<> struct SCHEMA::predicate<279> { using type = facebook::glean::cpp::schema::Hack::Type; }; template<> struct SCHEMA::predicate<280> { using type = facebook::glean::cpp::schema::Hack::TraitDeclaration; }; template<> struct SCHEMA::predicate<281> { using type = facebook::glean::cpp::schema::Hack::StringLiteral; }; template<> struct SCHEMA::predicate<282> { using type = facebook::glean::cpp::schema::Hack::SearchTypedefByLowerCaseName; }; template<> struct SCHEMA::predicate<283> { using type = facebook::glean::cpp::schema::Hack::SearchTypeConstByLowerCaseName; }; template<> struct SCHEMA::predicate<284> { using type = facebook::glean::cpp::schema::Hack::SearchTraitByLowerCaseName; }; template<> struct SCHEMA::predicate<285> { using type = facebook::glean::cpp::schema::Hack::SearchPropertyByLowerCaseName; }; template<> struct SCHEMA::predicate<286> { using type = facebook::glean::cpp::schema::Hack::SearchNamespaceByLowerCaseName; }; template<> struct SCHEMA::predicate<287> { using type = facebook::glean::cpp::schema::Hack::SearchModuleByLowerCaseName; }; template<> struct SCHEMA::predicate<288> { using type = facebook::glean::cpp::schema::Hack::SearchMethodByLowerCaseName; }; template<> struct SCHEMA::predicate<289> { using type = facebook::glean::cpp::schema::Hack::SearchInterfaceByLowerCaseName; }; template<> struct SCHEMA::predicate<290> { using type = facebook::glean::cpp::schema::Hack::SearchGlobalConstByLowerCaseName; }; template<> struct SCHEMA::predicate<291> { using type = facebook::glean::cpp::schema::Hack::SearchFunctionByLowerCaseName; }; template<> struct SCHEMA::predicate<292> { using type = facebook::glean::cpp::schema::Hack::SearchEnumeratorByLowerCaseName; }; template<> struct SCHEMA::predicate<293> { using type = facebook::glean::cpp::schema::Hack::SearchEnumByLowerCaseName; }; template<> struct SCHEMA::predicate<294> { using type = facebook::glean::cpp::schema::Hack::SearchClassConstByLowerCaseName; }; template<> struct SCHEMA::predicate<295> { using type = facebook::glean::cpp::schema::Hack::SearchClassByLowerCaseName; }; template<> struct SCHEMA::predicate<296> { using type = facebook::glean::cpp::schema::Hack::QName; }; template<> struct SCHEMA::predicate<297> { using type = facebook::glean::cpp::schema::Hack::PropertyDefinition; }; template<> struct SCHEMA::predicate<298> { using type = facebook::glean::cpp::schema::Hack::Signature; }; template<> struct SCHEMA::predicate<299> { using type = facebook::glean::cpp::schema::Hack::NamespaceQName; }; template<> struct SCHEMA::predicate<300> { using type = facebook::glean::cpp::schema::Hack::NamespaceDeclaration; }; template<> struct SCHEMA::predicate<301> { using type = facebook::glean::cpp::schema::Hack::NameLowerCase; }; template<> struct SCHEMA::predicate<302> { using type = facebook::glean::cpp::schema::Hack::Name; }; template<> struct SCHEMA::predicate<303> { using type = facebook::glean::cpp::schema::Hack::ModuleDefinition; }; template<> struct SCHEMA::predicate<304> { using type = facebook::glean::cpp::schema::Hack::ModuleDeclaration; }; template<> struct SCHEMA::predicate<305> { using type = facebook::glean::cpp::schema::Hack::MethodOverrides; }; template<> struct SCHEMA::predicate<306> { using type = facebook::glean::cpp::schema::Hack::MethodOverridden; }; template<> struct SCHEMA::predicate<307> { using type = facebook::glean::cpp::schema::Hack::MethodOccurrence; }; template<> struct SCHEMA::predicate<308> { using type = facebook::glean::cpp::schema::Hack::InterfaceDeclaration; }; template<> struct SCHEMA::predicate<309> { using type = facebook::glean::cpp::schema::Hack::IndexerInputsHash; }; template<> struct SCHEMA::predicate<310> { using type = facebook::glean::cpp::schema::Hack::GlobalNamespaceAlias; }; template<> struct SCHEMA::predicate<311> { using type = facebook::glean::cpp::schema::Hack::GlobalConstDefinition; }; template<> struct SCHEMA::predicate<312> { using type = facebook::glean::cpp::schema::Hack::GlobalConstDeclaration; }; template<> struct SCHEMA::predicate<313> { using type = facebook::glean::cpp::schema::Hack::FunctionDeclaration; }; template<> struct SCHEMA::predicate<314> { using type = facebook::glean::cpp::schema::Hack::Hint; }; template<> struct SCHEMA::predicate<315> { using type = facebook::glean::cpp::schema::Hack::Enumerator; }; template<> struct SCHEMA::predicate<316> { using type = facebook::glean::cpp::schema::Hack::EnumDefinition; }; template<> struct SCHEMA::predicate<317> { using type = facebook::glean::cpp::schema::Hack::EnumDeclaration; }; template<> struct SCHEMA::predicate<318> { using type = facebook::glean::cpp::schema::Hack::Context_; }; template<> struct SCHEMA::predicate<319> { using type = facebook::glean::cpp::schema::Hack::ContainerDeclarationQName; }; template<> struct SCHEMA::predicate<320> { using type = facebook::glean::cpp::schema::Hack::ContainerParent; }; template<> struct SCHEMA::predicate<321> { using type = facebook::glean::cpp::schema::Hack::DeclarationComment; }; template<> struct SCHEMA::predicate<322> { using type = facebook::glean::cpp::schema::Hack::DeclarationLocation; }; template<> struct SCHEMA::predicate<323> { using type = facebook::glean::cpp::schema::Hack::DeclarationName; }; template<> struct SCHEMA::predicate<324> { using type = facebook::glean::cpp::schema::Hack::DeclarationNamespace; }; template<> struct SCHEMA::predicate<325> { using type = facebook::glean::cpp::schema::Hack::DeclarationSource; }; template<> struct SCHEMA::predicate<326> { using type = facebook::glean::cpp::schema::Hack::DeclarationSpan; }; template<> struct SCHEMA::predicate<327> { using type = facebook::glean::cpp::schema::Hack::DeclarationTarget; }; template<> struct SCHEMA::predicate<328> { using type = facebook::glean::cpp::schema::Hack::FileDeclarations; }; template<> struct SCHEMA::predicate<329> { using type = facebook::glean::cpp::schema::Hack::MemberCluster; }; template<> struct SCHEMA::predicate<330> { using type = facebook::glean::cpp::schema::Hack::ModuleChild; }; template<> struct SCHEMA::predicate<331> { using type = facebook::glean::cpp::schema::Hack::ModuleParent; }; template<> struct SCHEMA::predicate<332> { using type = facebook::glean::cpp::schema::Hack::NamespaceMember; }; template<> struct SCHEMA::predicate<333> { using type = facebook::glean::cpp::schema::Hack::SearchClassByName; }; template<> struct SCHEMA::predicate<334> { using type = facebook::glean::cpp::schema::Hack::SearchClassConstByName; }; template<> struct SCHEMA::predicate<335> { using type = facebook::glean::cpp::schema::Hack::SearchEnumByName; }; template<> struct SCHEMA::predicate<336> { using type = facebook::glean::cpp::schema::Hack::SearchEnumeratorByName; }; template<> struct SCHEMA::predicate<337> { using type = facebook::glean::cpp::schema::Hack::SearchFunctionByName; }; template<> struct SCHEMA::predicate<338> { using type = facebook::glean::cpp::schema::Hack::SearchGlobalConstByName; }; template<> struct SCHEMA::predicate<339> { using type = facebook::glean::cpp::schema::Hack::SearchInterfaceByName; }; template<> struct SCHEMA::predicate<340> { using type = facebook::glean::cpp::schema::Hack::SearchMethodByName; }; template<> struct SCHEMA::predicate<341> { using type = facebook::glean::cpp::schema::Hack::SearchModuleByName; }; template<> struct SCHEMA::predicate<342> { using type = facebook::glean::cpp::schema::Hack::SearchNamespaceByName; }; template<> struct SCHEMA::predicate<343> { using type = facebook::glean::cpp::schema::Hack::SearchPropertyByName; }; template<> struct SCHEMA::predicate<344> { using type = facebook::glean::cpp::schema::Hack::SearchTraitByName; }; template<> struct SCHEMA::predicate<345> { using type = facebook::glean::cpp::schema::Hack::SearchTypeConstByName; }; template<> struct SCHEMA::predicate<346> { using type = facebook::glean::cpp::schema::Hack::SearchTypedefByName; }; template<> struct SCHEMA::predicate<347> { using type = facebook::glean::cpp::schema::Hack::TargetUses; }; template<> struct SCHEMA::predicate<348> { using type = facebook::glean::cpp::schema::Hack::TargetUsesAbs; }; template<> struct SCHEMA::predicate<349> { using type = facebook::glean::cpp::schema::Hack::FileXRefs; }; template<> struct SCHEMA::predicate<350> { using type = facebook::glean::cpp::schema::Hack::TypeInfo; }; template<> struct SCHEMA::predicate<351> { using type = facebook::glean::cpp::schema::Search::Hack::SearchByName; }; template<> struct SCHEMA::predicate<352> { using type = facebook::glean::cpp::schema::Search::Hack::SearchFunctionInNamespace; }; template<> struct SCHEMA::predicate<353> { using type = facebook::glean::cpp::schema::Search::Hack::SearchGlobalConstInNamespace; }; template<> struct SCHEMA::predicate<354> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainer; }; template<> struct SCHEMA::predicate<355> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerNoProperty; }; template<> struct SCHEMA::predicate<356> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnum; }; template<> struct SCHEMA::predicate<357> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnumNoProperty; }; template<> struct SCHEMA::predicate<358> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInEnum; }; template<> struct SCHEMA::predicate<359> { using type = facebook::glean::cpp::schema::Search::Hack::SearchInNamespace; }; template<> struct SCHEMA::predicate<360> { using type = facebook::glean::cpp::schema::Search::Hack::SearchModule; }; template<> struct SCHEMA::predicate<361> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespace; }; template<> struct SCHEMA::predicate<362> { using type = facebook::glean::cpp::schema::Search::Hack::SearchNamespacedDecl; }; template<> struct SCHEMA::predicate<363> { using type = facebook::glean::cpp::schema::Search::Hack::SearchPropertyInContainer; }; template<> struct SCHEMA::predicate<364> { using type = facebook::glean::cpp::schema::Search::Hack::SearchTypeInNamespace; }; template<> struct SCHEMA::predicate<365> { using type = facebook::glean::cpp::schema::Hack::InheritedMembers; }; template<> struct SCHEMA::predicate<366> { using type = facebook::glean::cpp::schema::Hack::MethodDeclaration; }; template<> struct SCHEMA::predicate<367> { using type = facebook::glean::cpp::schema::Hack::PropertyDeclaration; }; template<> struct SCHEMA::predicate<368> { using type = facebook::glean::cpp::schema::Hack::TypeConstDeclaration; }; template<> struct SCHEMA::predicate<369> { using type = facebook::glean::cpp::schema::Hack::ContainerChild; }; template<> struct SCHEMA::predicate<370> { using type = facebook::glean::cpp::schema::Hack::FunctionDefinition; }; template<> struct SCHEMA::predicate<371> { using type = facebook::glean::cpp::schema::Hack::InterfaceDefinition; }; template<> struct SCHEMA::predicate<372> { using type = facebook::glean::cpp::schema::Hack::MethodDefinition; }; template<> struct SCHEMA::predicate<373> { using type = facebook::glean::cpp::schema::Hack::TraitDefinition; }; template<> struct SCHEMA::predicate<374> { using type = facebook::glean::cpp::schema::Hack::TypedefDefinition; }; template<> struct SCHEMA::predicate<375> { using type = facebook::glean::cpp::schema::Hack::ClassDefinition; }; template<> struct SCHEMA::predicate<376> { using type = facebook::glean::cpp::schema::Hack::ClassDeclaration; }; template<> struct SCHEMA::predicate<377> { using type = facebook::glean::cpp::schema::Hack::ClassConstDefinition; }; template<> struct SCHEMA::predicate<378> { using type = facebook::glean::cpp::schema::Hack::ClassConstDeclaration; }; template<> struct SCHEMA::predicate<379> { using type = facebook::glean::cpp::schema::Hack::AttributeToDefinition; }; template<> struct SCHEMA::predicate<380> { using type = facebook::glean::cpp::schema::Hack::AttributeToDeclaration; }; template<> struct SCHEMA::predicate<381> { using type = facebook::glean::cpp::schema::Hack::AttributeHasParameter; }; template<> struct SCHEMA::predicate<382> { using type = facebook::glean::cpp::schema::Hack::FileCall; }; template<> struct SCHEMA::predicate<383> { using type = facebook::glean::cpp::schema::Graphql::VariableDef; }; template<> struct SCHEMA::predicate<384> { using type = facebook::glean::cpp::schema::Graphql::Value; }; template<> struct SCHEMA::predicate<385> { using type = facebook::glean::cpp::schema::Graphql::UnionTypeDef; }; template<> struct SCHEMA::predicate<386> { using type = facebook::glean::cpp::schema::Graphql::ScalarTypeDef; }; template<> struct SCHEMA::predicate<387> { using type = facebook::glean::cpp::schema::Graphql::Operation; }; template<> struct SCHEMA::predicate<388> { using type = facebook::glean::cpp::schema::Graphql::ObjectTypeDef; }; template<> struct SCHEMA::predicate<389> { using type = facebook::glean::cpp::schema::Graphql::NameLowerCase; }; template<> struct SCHEMA::predicate<390> { using type = facebook::glean::cpp::schema::Graphql::InterfaceTypeDef; }; template<> struct SCHEMA::predicate<391> { using type = facebook::glean::cpp::schema::Graphql::InputValueDef; }; template<> struct SCHEMA::predicate<392> { using type = facebook::glean::cpp::schema::Graphql::InputObjectTypeDef; }; template<> struct SCHEMA::predicate<393> { using type = facebook::glean::cpp::schema::Graphql::InlineFragment; }; template<> struct SCHEMA::predicate<394> { using type = facebook::glean::cpp::schema::Graphql::FragmentSpread; }; template<> struct SCHEMA::predicate<395> { using type = facebook::glean::cpp::schema::Graphql::Fragment; }; template<> struct SCHEMA::predicate<396> { using type = facebook::glean::cpp::schema::Graphql::FieldDef; }; template<> struct SCHEMA::predicate<397> { using type = facebook::glean::cpp::schema::Graphql::Field; }; template<> struct SCHEMA::predicate<398> { using type = facebook::glean::cpp::schema::Graphql::EnumTypeDef; }; template<> struct SCHEMA::predicate<399> { using type = facebook::glean::cpp::schema::Graphql::DirectiveDef; }; template<> struct SCHEMA::predicate<400> { using type = facebook::glean::cpp::schema::Graphql::Directive; }; template<> struct SCHEMA::predicate<401> { using type = facebook::glean::cpp::schema::Graphql::DeclarationLocation; }; template<> struct SCHEMA::predicate<402> { using type = facebook::glean::cpp::schema::Graphql::DeclarationName; }; template<> struct SCHEMA::predicate<403> { using type = facebook::glean::cpp::schema::Graphql::DeclarationUses; }; template<> struct SCHEMA::predicate<404> { using type = facebook::glean::cpp::schema::Graphql::FileDeclarations; }; template<> struct SCHEMA::predicate<405> { using type = facebook::glean::cpp::schema::Graphql::SearchByName; }; template<> struct SCHEMA::predicate<406> { using type = facebook::glean::cpp::schema::Graphql::FileXRefs; }; template<> struct SCHEMA::predicate<407> { using type = facebook::glean::cpp::schema::Graphql::DeclHasName; }; template<> struct SCHEMA::predicate<408> { using type = facebook::glean::cpp::schema::Graphql::BelongToConfig; }; template<> struct SCHEMA::predicate<409> { using type = facebook::glean::cpp::schema::Graphql::Argument; }; template<> struct SCHEMA::predicate<410> { using type = facebook::glean::cpp::schema::Glean::Test::nothingTest; }; template<> struct SCHEMA::predicate<411> { using type = facebook::glean::cpp::schema::Glean::Test::ViaStringPair; }; template<> struct SCHEMA::predicate<412> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound2; }; template<> struct SCHEMA::predicate<413> { using type = facebook::glean::cpp::schema::Glean::Test::Unbound; }; template<> struct SCHEMA::predicate<414> { using type = facebook::glean::cpp::schema::Glean::Test::TreeToTree; }; template<> struct SCHEMA::predicate<415> { using type = facebook::glean::cpp::schema::Glean::Test::Tree; }; template<> struct SCHEMA::predicate<416> { using type = facebook::glean::cpp::schema::Glean::Test::StringPairBox; }; template<> struct SCHEMA::predicate<417> { using type = facebook::glean::cpp::schema::Glean::Test::StringPair; }; template<> struct SCHEMA::predicate<418> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithRev; }; template<> struct SCHEMA::predicate<419> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithA; }; template<> struct SCHEMA::predicate<420> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairSum; }; template<> struct SCHEMA::predicate<421> { using type = facebook::glean::cpp::schema::Glean::Test::StoredRevStringPair; }; template<> struct SCHEMA::predicate<422> { using type = facebook::glean::cpp::schema::Glean::Test::StoredDualStringPair; }; template<> struct SCHEMA::predicate<423> { using type = facebook::glean::cpp::schema::Glean::Test::SkipRevEdge; }; template<> struct SCHEMA::predicate<424> { using type = facebook::glean::cpp::schema::Glean::Test::SameString; }; template<> struct SCHEMA::predicate<425> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairs; }; template<> struct SCHEMA::predicate<426> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPairRec; }; template<> struct SCHEMA::predicate<427> { using type = facebook::glean::cpp::schema::Glean::Test::RevStringPair; }; template<> struct SCHEMA::predicate<428> { using type = facebook::glean::cpp::schema::Glean::Test::RevRevStringPair; }; template<> struct SCHEMA::predicate<429> { using type = facebook::glean::cpp::schema::Glean::Test::RevEdge; }; template<> struct SCHEMA::predicate<430> { using type = facebook::glean::cpp::schema::Glean::Test::ReflStringPair; }; template<> struct SCHEMA::predicate<431> { using type = facebook::glean::cpp::schema::Glean::Test::RefRef; }; template<> struct SCHEMA::predicate<432> { using type = facebook::glean::cpp::schema::Glean::Test::Ref; }; template<> struct SCHEMA::predicate<433> { using type = facebook::glean::cpp::schema::Glean::Test::Qux; }; template<> struct SCHEMA::predicate<434> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_0; }; template<> struct SCHEMA::predicate<435> { using type = facebook::glean::cpp::schema::Glean::Test::NodePair; }; template<> struct SCHEMA::predicate<436> { using type = facebook::glean::cpp::schema::Glean::Test::Node; }; template<> struct SCHEMA::predicate<437> { using type = facebook::glean::cpp::schema::Glean::Test::Name; }; template<> struct SCHEMA::predicate<438> { using type = facebook::glean::cpp::schema::Glean::Test::MatchOneAlt; }; template<> struct SCHEMA::predicate<439> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr2; }; template<> struct SCHEMA::predicate<440> { using type = facebook::glean::cpp::schema::Glean::Test::LeftOr; }; template<> struct SCHEMA::predicate<441> { using type = facebook::glean::cpp::schema::Glean::Test::KeyValue; }; template<> struct SCHEMA::predicate<442> { using type = facebook::glean::cpp::schema::Glean::Test::IsThree; }; template<> struct SCHEMA::predicate<443> { using type = facebook::glean::cpp::schema::Glean::Test::IsParent; }; template<> struct SCHEMA::predicate<444> { using type = facebook::glean::cpp::schema::Glean::Test::IsGlean; }; template<> struct SCHEMA::predicate<445> { using type = facebook::glean::cpp::schema::Glean::Test::FooToFoo; }; template<> struct SCHEMA::predicate<446> { using type = facebook::glean::cpp::schema::Glean::Test::Foo; }; template<> struct SCHEMA::predicate<447> { using type = facebook::glean::cpp::schema::Glean::Test::Expr; }; template<> struct SCHEMA::predicate<448> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyStoredStringPair; }; template<> struct SCHEMA::predicate<449> { using type = facebook::glean::cpp::schema::Glean::Test::EmptyPred; }; template<> struct SCHEMA::predicate<450> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeWrapper; }; template<> struct SCHEMA::predicate<451> { using type = facebook::glean::cpp::schema::Glean::Test::EdgeFromNotA; }; template<> struct SCHEMA::predicate<452> { using type = facebook::glean::cpp::schema::Glean::Test::Edge; }; template<> struct SCHEMA::predicate<453> { using type = facebook::glean::cpp::schema::Glean::Test::DualStringPair; }; template<> struct SCHEMA::predicate<454> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue2; }; template<> struct SCHEMA::predicate<455> { using type = facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue; }; template<> struct SCHEMA::predicate<456> { using type = facebook::glean::cpp::schema::Glean::Test::Bar; }; template<> struct SCHEMA::predicate<457> { using type = facebook::glean::cpp::schema::Glean::Test::Predicate_; }; template<> struct SCHEMA::predicate<458> { using type = facebook::glean::cpp::schema::Gencode::GenCodeSignature; }; template<> struct SCHEMA::predicate<459> { using type = facebook::glean::cpp::schema::Gencode::GenCodeCommand; }; template<> struct SCHEMA::predicate<460> { using type = facebook::glean::cpp::schema::Gencode::GenCodeClass; }; template<> struct SCHEMA::predicate<461> { using type = facebook::glean::cpp::schema::Gencode::GenCodeBySource; }; template<> struct SCHEMA::predicate<462> { using type = facebook::glean::cpp::schema::Gencode::GenCode; }; template<> struct SCHEMA::predicate<463> { using type = facebook::glean::cpp::schema::Flow::TypeImportDeclaration; }; template<> struct SCHEMA::predicate<464> { using type = facebook::glean::cpp::schema::Flow::TypeExport; }; template<> struct SCHEMA::predicate<465> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationReference; }; template<> struct SCHEMA::predicate<466> { using type = facebook::glean::cpp::schema::Flow::TypeDeclarationInfo; }; template<> struct SCHEMA::predicate<467> { using type = facebook::glean::cpp::schema::Flow::TypeDeclaration; }; template<> struct SCHEMA::predicate<468> { using type = facebook::glean::cpp::schema::Flow::Type; }; template<> struct SCHEMA::predicate<469> { using type = facebook::glean::cpp::schema::Flow::StringToFileModule; }; template<> struct SCHEMA::predicate<470> { using type = facebook::glean::cpp::schema::Flow::SourceOfTypeExport; }; template<> struct SCHEMA::predicate<471> { using type = facebook::glean::cpp::schema::Flow::SourceOfExport; }; template<> struct SCHEMA::predicate<472> { using type = facebook::glean::cpp::schema::Search::Flow::FlowSearchByNameNonImport; }; template<> struct SCHEMA::predicate<473> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByName; }; template<> struct SCHEMA::predicate<474> { using type = facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByLowerCaseName; }; template<> struct SCHEMA::predicate<475> { using type = facebook::glean::cpp::schema::Flow::SearchTypeByModuleExport; }; template<> struct SCHEMA::predicate<476> { using type = facebook::glean::cpp::schema::Flow::SearchModuleByLowerCaseName; }; template<> struct SCHEMA::predicate<477> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByName; }; template<> struct SCHEMA::predicate<478> { using type = facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByLowerCaseName; }; template<> struct SCHEMA::predicate<479> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByName; }; template<> struct SCHEMA::predicate<480> { using type = facebook::glean::cpp::schema::Flow::SearchDeclarationByLowerCaseName; }; template<> struct SCHEMA::predicate<481> { using type = facebook::glean::cpp::schema::Flow::SearchByNameModule; }; template<> struct SCHEMA::predicate<482> { using type = facebook::glean::cpp::schema::Flow::SearchByName; }; template<> struct SCHEMA::predicate<483> { using type = facebook::glean::cpp::schema::Flow::SearchByModuleName; }; template<> struct SCHEMA::predicate<484> { using type = facebook::glean::cpp::schema::Flow::SearchByModule; }; template<> struct SCHEMA::predicate<485> { using type = facebook::glean::cpp::schema::Flow::SearchByFileModule; }; template<> struct SCHEMA::predicate<486> { using type = facebook::glean::cpp::schema::Flow::Range; }; template<> struct SCHEMA::predicate<487> { using type = facebook::glean::cpp::schema::Flow::Name; }; template<> struct SCHEMA::predicate<488> { using type = facebook::glean::cpp::schema::Flow::ModuleTypeExport; }; template<> struct SCHEMA::predicate<489> { using type = facebook::glean::cpp::schema::Flow::ModuleNameLowerCase; }; template<> struct SCHEMA::predicate<490> { using type = facebook::glean::cpp::schema::Flow::ModuleLocationByFile; }; template<> struct SCHEMA::predicate<491> { using type = facebook::glean::cpp::schema::Flow::ModuleLocation; }; template<> struct SCHEMA::predicate<492> { using type = facebook::glean::cpp::schema::Flow::ModuleExport; }; template<> struct SCHEMA::predicate<493> { using type = facebook::glean::cpp::schema::Flow::ModuleDoc; }; template<> struct SCHEMA::predicate<494> { using type = facebook::glean::cpp::schema::Flow::ModuleContains; }; template<> struct SCHEMA::predicate<495> { using type = facebook::glean::cpp::schema::Flow::ModuleComments; }; template<> struct SCHEMA::predicate<496> { using type = facebook::glean::cpp::schema::Flow::Module; }; template<> struct SCHEMA::predicate<497> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationReference; }; template<> struct SCHEMA::predicate<498> { using type = facebook::glean::cpp::schema::Flow::MemberDeclarationInfo; }; template<> struct SCHEMA::predicate<499> { using type = facebook::glean::cpp::schema::Flow::MemberDeclaration; }; template<> struct SCHEMA::predicate<500> { using type = facebook::glean::cpp::schema::Flow::LocalDeclarationReference; }; template<> struct SCHEMA::predicate<501> { using type = facebook::glean::cpp::schema::Flow::ImportDeclaration; }; template<> struct SCHEMA::predicate<502> { using type = facebook::glean::cpp::schema::Flow::FlowXRefDeclInfo; }; template<> struct SCHEMA::predicate<503> { using type = facebook::glean::cpp::schema::Flow::FlowTypeImportXRef; }; template<> struct SCHEMA::predicate<504> { using type = facebook::glean::cpp::schema::Flow::FlowTypeExportLocation; }; template<> struct SCHEMA::predicate<505> { using type = facebook::glean::cpp::schema::Flow::FlowTypeEntityImportUses; }; template<> struct SCHEMA::predicate<506> { using type = facebook::glean::cpp::schema::Flow::FlowSameModule; }; template<> struct SCHEMA::predicate<507> { using type = facebook::glean::cpp::schema::Flow::FlowModuleNamespaceXRef; }; template<> struct SCHEMA::predicate<508> { using type = facebook::glean::cpp::schema::Flow::FlowImportXRef; }; template<> struct SCHEMA::predicate<509> { using type = facebook::glean::cpp::schema::Flow::FlowExportLocation; }; template<> struct SCHEMA::predicate<510> { using type = facebook::glean::cpp::schema::Flow::FlowEntityUsesAll; }; template<> struct SCHEMA::predicate<511> { using type = facebook::glean::cpp::schema::Flow::FlowEntityImportUses; }; template<> struct SCHEMA::predicate<512> { using type = facebook::glean::cpp::schema::Flow::FlowCompatibleExport; }; template<> struct SCHEMA::predicate<513> { using type = facebook::glean::cpp::schema::Flow::FileXRef; }; template<> struct SCHEMA::predicate<514> { using type = facebook::glean::cpp::schema::Flow::FileOfStringModule; }; template<> struct SCHEMA::predicate<515> { using type = facebook::glean::cpp::schema::Flow::FileDeclaration; }; template<> struct SCHEMA::predicate<516> { using type = facebook::glean::cpp::schema::Flow::Export; }; template<> struct SCHEMA::predicate<517> { using type = facebook::glean::cpp::schema::Flow::Documentation; }; template<> struct SCHEMA::predicate<518> { using type = facebook::glean::cpp::schema::Flow::DeclarationUses; }; template<> struct SCHEMA::predicate<519> { using type = facebook::glean::cpp::schema::Flow::DeclarationSignature; }; template<> struct SCHEMA::predicate<520> { using type = facebook::glean::cpp::schema::Flow::DeclarationNameSpan; }; template<> struct SCHEMA::predicate<521> { using type = facebook::glean::cpp::schema::Flow::DeclarationLocation; }; template<> struct SCHEMA::predicate<522> { using type = facebook::glean::cpp::schema::Flow::DeclarationInfo; }; template<> struct SCHEMA::predicate<523> { using type = facebook::glean::cpp::schema::Flow::Declaration; }; template<> struct SCHEMA::predicate<524> { using type = facebook::glean::cpp::schema::Fbthrift::UnionVal; }; template<> struct SCHEMA::predicate<525> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefType; }; template<> struct SCHEMA::predicate<526> { using type = facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation; }; template<> struct SCHEMA::predicate<527> { using type = facebook::glean::cpp::schema::Fbthrift::StructVal; }; template<> struct SCHEMA::predicate<528> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceParent; }; template<> struct SCHEMA::predicate<529> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceName; }; template<> struct SCHEMA::predicate<530> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceInteractionFunctions; }; template<> struct SCHEMA::predicate<531> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceDefinition; }; template<> struct SCHEMA::predicate<532> { using type = facebook::glean::cpp::schema::Fbthrift::ServiceChild; }; template<> struct SCHEMA::predicate<533> { using type = facebook::glean::cpp::schema::Fbthrift::SearchByName; }; template<> struct SCHEMA::predicate<534> { using type = facebook::glean::cpp::schema::Fbthrift::QualName; }; template<> struct SCHEMA::predicate<535> { using type = facebook::glean::cpp::schema::Fbthrift::PackageName; }; template<> struct SCHEMA::predicate<536> { using type = facebook::glean::cpp::schema::Fbthrift::Package; }; template<> struct SCHEMA::predicate<537> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceValue; }; template<> struct SCHEMA::predicate<538> { using type = facebook::glean::cpp::schema::Fbthrift::NamespaceName; }; template<> struct SCHEMA::predicate<539> { using type = facebook::glean::cpp::schema::Fbthrift::Namespace; }; template<> struct SCHEMA::predicate<540> { using type = facebook::glean::cpp::schema::Fbthrift::NamedDecl; }; template<> struct SCHEMA::predicate<541> { using type = facebook::glean::cpp::schema::Fbthrift::NameLowerCase; }; template<> struct SCHEMA::predicate<542> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionName; }; template<> struct SCHEMA::predicate<543> { using type = facebook::glean::cpp::schema::Fbthrift::InteractionDefinition; }; template<> struct SCHEMA::predicate<544> { using type = facebook::glean::cpp::schema::Fbthrift::Identifier; }; template<> struct SCHEMA::predicate<545> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionName; }; template<> struct SCHEMA::predicate<546> { using type = facebook::glean::cpp::schema::Fbthrift::Literal; }; template<> struct SCHEMA::predicate<547> { using type = facebook::glean::cpp::schema::Fbthrift::FileXRefs; }; template<> struct SCHEMA::predicate<548> { using type = facebook::glean::cpp::schema::Fbthrift::File; }; template<> struct SCHEMA::predicate<549> { using type = facebook::glean::cpp::schema::Fbthrift::StructType; }; template<> struct SCHEMA::predicate<550> { using type = facebook::glean::cpp::schema::Fbthrift::UnionType; }; template<> struct SCHEMA::predicate<551> { using type = facebook::glean::cpp::schema::Fbthrift::FieldDecl; }; template<> struct SCHEMA::predicate<552> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionVal; }; template<> struct SCHEMA::predicate<553> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionType; }; template<> struct SCHEMA::predicate<554> { using type = facebook::glean::cpp::schema::Fbthrift::TypeDefException; }; template<> struct SCHEMA::predicate<555> { using type = facebook::glean::cpp::schema::Fbthrift::ExceptionName; }; template<> struct SCHEMA::predicate<556> { using type = facebook::glean::cpp::schema::Fbthrift::EnumerationType; }; template<> struct SCHEMA::predicate<557> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValueDef; }; template<> struct SCHEMA::predicate<558> { using type = facebook::glean::cpp::schema::Fbthrift::EnumValue; }; template<> struct SCHEMA::predicate<559> { using type = facebook::glean::cpp::schema::Fbthrift::EnumVal; }; template<> struct SCHEMA::predicate<560> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationComment; }; template<> struct SCHEMA::predicate<561> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationFile; }; template<> struct SCHEMA::predicate<562> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationMember; }; template<> struct SCHEMA::predicate<563> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationName; }; template<> struct SCHEMA::predicate<564> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationNameSpan; }; template<> struct SCHEMA::predicate<565> { using type = facebook::glean::cpp::schema::Fbthrift::DeclarationUses; }; template<> struct SCHEMA::predicate<566> { using type = facebook::glean::cpp::schema::Fbthrift::FileDeclaration; }; template<> struct SCHEMA::predicate<567> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionDeclarationName; }; template<> struct SCHEMA::predicate<568> { using type = facebook::glean::cpp::schema::Hack::HackToThrift; }; template<> struct SCHEMA::predicate<569> { using type = facebook::glean::cpp::schema::Hack::ThriftToHack; }; template<> struct SCHEMA::predicate<570> { using type = facebook::glean::cpp::schema::Fbthrift::TypeSpecification; }; template<> struct SCHEMA::predicate<571> { using type = facebook::glean::cpp::schema::Fbthrift::ConstantDefinition; }; template<> struct SCHEMA::predicate<572> { using type = facebook::glean::cpp::schema::Fbthrift::Constant; }; template<> struct SCHEMA::predicate<573> { using type = facebook::glean::cpp::schema::Erlang::NameLowerCase; }; template<> struct SCHEMA::predicate<574> { using type = facebook::glean::cpp::schema::Erlang::FunctionDeclaration; }; template<> struct SCHEMA::predicate<575> { using type = facebook::glean::cpp::schema::Erlang::XRefsViaFqnByFile; }; template<> struct SCHEMA::predicate<576> { using type = facebook::glean::cpp::schema::Erlang::DeclarationComment; }; template<> struct SCHEMA::predicate<577> { using type = facebook::glean::cpp::schema::Erlang::DeclarationLocation; }; template<> struct SCHEMA::predicate<578> { using type = facebook::glean::cpp::schema::Erlang::DeclarationReference; }; template<> struct SCHEMA::predicate<579> { using type = facebook::glean::cpp::schema::Erlang::DeclarationToFqn; }; template<> struct SCHEMA::predicate<580> { using type = facebook::glean::cpp::schema::Erlang::DeclarationUses; }; template<> struct SCHEMA::predicate<581> { using type = facebook::glean::cpp::schema::Erlang::DeclarationWithFqn; }; template<> struct SCHEMA::predicate<582> { using type = facebook::glean::cpp::schema::Erlang::DeclarationsByFile; }; template<> struct SCHEMA::predicate<583> { using type = facebook::glean::cpp::schema::Erlang::SearchByName; }; template<> struct SCHEMA::predicate<584> { using type = facebook::glean::cpp::schema::Dyn::ObserverIdentifier; }; template<> struct SCHEMA::predicate<585> { using type = facebook::glean::cpp::schema::Dyn::Environment; }; template<> struct SCHEMA::predicate<586> { using type = facebook::glean::cpp::schema::Dyn::EntityDynamicReference; }; template<> struct SCHEMA::predicate<587> { using type = facebook::glean::cpp::schema::Digest::FileDigest; }; template<> struct SCHEMA::predicate<588> { using type = facebook::glean::cpp::schema::Glass::FileInfo; }; template<> struct SCHEMA::predicate<589> { using type = facebook::glean::cpp::schema::Dataswarm::TableDeclaration; }; template<> struct SCHEMA::predicate<590> { using type = facebook::glean::cpp::schema::Dataswarm::TableColumnDeclaration; }; template<> struct SCHEMA::predicate<591> { using type = facebook::glean::cpp::schema::Dataswarm::SubqueryDeclaration; }; template<> struct SCHEMA::predicate<592> { using type = facebook::glean::cpp::schema::Dataswarm::SubqueryColumnDeclaration; }; template<> struct SCHEMA::predicate<593> { using type = facebook::glean::cpp::schema::Dataswarm::MacroDeclaration; }; template<> struct SCHEMA::predicate<594> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationLocation; }; template<> struct SCHEMA::predicate<595> { using type = facebook::glean::cpp::schema::Dataswarm::DeclarationName; }; template<> struct SCHEMA::predicate<596> { using type = facebook::glean::cpp::schema::Dataswarm::XRefsByFile; }; template<> struct SCHEMA::predicate<597> { using type = facebook::glean::cpp::schema::Cxx1::VariableLowerCase; }; template<> struct SCHEMA::predicate<598> { using type = facebook::glean::cpp::schema::Cxx1::UsingDirective; }; template<> struct SCHEMA::predicate<599> { using type = facebook::glean::cpp::schema::Cxx1::UsingDeclaration; }; template<> struct SCHEMA::predicate<600> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasLowerCase; }; template<> struct SCHEMA::predicate<601> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclaration; }; template<> struct SCHEMA::predicate<602> { using type = facebook::glean::cpp::schema::Cxx1::Type; }; template<> struct SCHEMA::predicate<603> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitXRefs; }; template<> struct SCHEMA::predicate<604> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitTrace; }; template<> struct SCHEMA::predicate<605> { using type = facebook::glean::cpp::schema::Cxx1::TranslationUnitIncludeTree; }; template<> struct SCHEMA::predicate<606> { using type = facebook::glean::cpp::schema::Cxx1::Trace; }; template<> struct SCHEMA::predicate<607> { using type = facebook::glean::cpp::schema::Cxx1::RecordUnionLowerCase; }; template<> struct SCHEMA::predicate<608> { using type = facebook::glean::cpp::schema::Cxx1::RecordStructLowerCase; }; template<> struct SCHEMA::predicate<609> { using type = facebook::glean::cpp::schema::Cxx1::RecordDerived; }; template<> struct SCHEMA::predicate<610> { using type = facebook::glean::cpp::schema::Cxx1::RecordClassLowerCase; }; template<> struct SCHEMA::predicate<611> { using type = facebook::glean::cpp::schema::Cxx1::Signature; }; template<> struct SCHEMA::predicate<612> { using type = facebook::glean::cpp::schema::Cxx1::PPDefineLocation; }; template<> struct SCHEMA::predicate<613> { using type = facebook::glean::cpp::schema::Cxx1::ObjcSelector; }; template<> struct SCHEMA::predicate<614> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyImplementation; }; template<> struct SCHEMA::predicate<615> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyIVar; }; template<> struct SCHEMA::predicate<616> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition; }; template<> struct SCHEMA::predicate<617> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclarationName; }; template<> struct SCHEMA::predicate<618> { using type = facebook::glean::cpp::schema::Cxx1::ObjcInterfaceToImplementation; }; template<> struct SCHEMA::predicate<619> { using type = facebook::glean::cpp::schema::Cxx1::ObjcImplements; }; template<> struct SCHEMA::predicate<620> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInterfaceLowerCase; }; template<> struct SCHEMA::predicate<621> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerInheritance; }; template<> struct SCHEMA::predicate<622> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition; }; template<> struct SCHEMA::predicate<623> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclarationInterface; }; template<> struct SCHEMA::predicate<624> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerBase; }; template<> struct SCHEMA::predicate<625> { using type = facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclaration; }; template<> struct SCHEMA::predicate<626> { using type = facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration; }; template<> struct SCHEMA::predicate<627> { using type = facebook::glean::cpp::schema::Cxx1::ObjcPropertyDeclaration; }; template<> struct SCHEMA::predicate<628> { using type = facebook::glean::cpp::schema::Cxx1::ObjContainerIdName; }; template<> struct SCHEMA::predicate<629> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceQName; }; template<> struct SCHEMA::predicate<630> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceLowerCase; }; template<> struct SCHEMA::predicate<631> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDefinition; }; template<> struct SCHEMA::predicate<632> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationName; }; template<> struct SCHEMA::predicate<633> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationByName; }; template<> struct SCHEMA::predicate<634> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration; }; template<> struct SCHEMA::predicate<635> { using type = facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration; }; template<> struct SCHEMA::predicate<636> { using type = facebook::glean::cpp::schema::Cxx1::Name; }; template<> struct SCHEMA::predicate<637> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverrides; }; template<> struct SCHEMA::predicate<638> { using type = facebook::glean::cpp::schema::Cxx1::MethodOverridden; }; template<> struct SCHEMA::predicate<639> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeTranslationUnit; }; template<> struct SCHEMA::predicate<640> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTreeParent; }; template<> struct SCHEMA::predicate<641> { using type = facebook::glean::cpp::schema::Cxx1::IncludeTree; }; template<> struct SCHEMA::predicate<642> { using type = facebook::glean::cpp::schema::Cxx1::PPTrace; }; template<> struct SCHEMA::predicate<643> { using type = facebook::glean::cpp::schema::Cxx1::FunctionLowerCase; }; template<> struct SCHEMA::predicate<644> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDefinition; }; template<> struct SCHEMA::predicate<645> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationNameString; }; template<> struct SCHEMA::predicate<646> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationName; }; template<> struct SCHEMA::predicate<647> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclaration; }; template<> struct SCHEMA::predicate<648> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclAttribute; }; template<> struct SCHEMA::predicate<649> { using type = facebook::glean::cpp::schema::Cxx1::FunctionAttribute; }; template<> struct SCHEMA::predicate<650> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefs; }; template<> struct SCHEMA::predicate<651> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseXRefs; }; template<> struct SCHEMA::predicate<652> { using type = facebook::glean::cpp::schema::Cxx1::FilePPUseTraceXRefs; }; template<> struct SCHEMA::predicate<653> { using type = facebook::glean::cpp::schema::Cxx1::FilePPTraceXRefs; }; template<> struct SCHEMA::predicate<654> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclaration; }; template<> struct SCHEMA::predicate<655> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorLowerCase; }; template<> struct SCHEMA::predicate<656> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorInEnum; }; template<> struct SCHEMA::predicate<657> { using type = facebook::glean::cpp::schema::Cxx1::EnumeratorByName; }; template<> struct SCHEMA::predicate<658> { using type = facebook::glean::cpp::schema::Cxx1::Enumerator; }; template<> struct SCHEMA::predicate<659> { using type = facebook::glean::cpp::schema::Cxx1::EnumLowerCase; }; template<> struct SCHEMA::predicate<660> { using type = facebook::glean::cpp::schema::Cxx1::EnumDefinition; }; template<> struct SCHEMA::predicate<661> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclaration; }; template<> struct SCHEMA::predicate<662> { using type = facebook::glean::cpp::schema::Cxx1::DefnInRecord; }; template<> struct SCHEMA::predicate<663> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationComment; }; template<> struct SCHEMA::predicate<664> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationInTrace; }; template<> struct SCHEMA::predicate<665> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationName; }; template<> struct SCHEMA::predicate<666> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationLocationNameSpan; }; template<> struct SCHEMA::predicate<667> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationNameSpan; }; template<> struct SCHEMA::predicate<668> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSources; }; template<> struct SCHEMA::predicate<669> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationSrcRange; }; template<> struct SCHEMA::predicate<670> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationTargets; }; template<> struct SCHEMA::predicate<671> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationToUSR; }; template<> struct SCHEMA::predicate<672> { using type = facebook::glean::cpp::schema::Cxx1::Declarations; }; template<> struct SCHEMA::predicate<673> { using type = facebook::glean::cpp::schema::Cxx1::DefToBaseDecl; }; template<> struct SCHEMA::predicate<674> { using type = facebook::glean::cpp::schema::Cxx1::MangledNameHashToDeclaration; }; template<> struct SCHEMA::predicate<675> { using type = facebook::glean::cpp::schema::Cxx1::Same; }; template<> struct SCHEMA::predicate<676> { using type = facebook::glean::cpp::schema::Cxx1::USRToDeclaration; }; template<> struct SCHEMA::predicate<677> { using type = facebook::glean::cpp::schema::Cxx1::FileXRefMap; }; template<> struct SCHEMA::predicate<678> { using type = facebook::glean::cpp::schema::Cxx1::SpellingXRef; }; template<> struct SCHEMA::predicate<679> { using type = facebook::glean::cpp::schema::Cxx1::TargetUses; }; template<> struct SCHEMA::predicate<680> { using type = facebook::glean::cpp::schema::Cxx1::ThriftToCxx; }; template<> struct SCHEMA::predicate<681> { using type = facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget; }; template<> struct SCHEMA::predicate<682> { using type = facebook::glean::cpp::schema::Cxx1::XRefTargets; }; template<> struct SCHEMA::predicate<683> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDeclaration; }; template<> struct SCHEMA::predicate<684> { using type = facebook::glean::cpp::schema::Cxx1::DeclToFamily; }; template<> struct SCHEMA::predicate<685> { using type = facebook::glean::cpp::schema::Cxx1::DeclInRecord; }; template<> struct SCHEMA::predicate<686> { using type = facebook::glean::cpp::schema::Cxx1::DeclInObjcContainer; }; template<> struct SCHEMA::predicate<687> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamilyOf; }; template<> struct SCHEMA::predicate<688> { using type = facebook::glean::cpp::schema::Cxx1::DeclFamily; }; template<> struct SCHEMA::predicate<689> { using type = facebook::glean::cpp::schema::Cxx1::CxxToThrift; }; template<> struct SCHEMA::predicate<690> { using type = facebook::glean::cpp::schema::Cxx1::Attribute; }; template<> struct SCHEMA::predicate<691> { using type = facebook::glean::cpp::schema::Cxx1::RecordDefinition; }; template<> struct SCHEMA::predicate<692> { using type = facebook::glean::cpp::schema::Csharp::UnityPackageToProject; }; template<> struct SCHEMA::predicate<693> { using type = facebook::glean::cpp::schema::Csharp::UnityPackage; }; template<> struct SCHEMA::predicate<694> { using type = facebook::glean::cpp::schema::Csharp::UnityProjectSource; }; template<> struct SCHEMA::predicate<695> { using type = facebook::glean::cpp::schema::Csharp::TypeParameter; }; template<> struct SCHEMA::predicate<696> { using type = facebook::glean::cpp::schema::Csharp::SourceFileToProject; }; template<> struct SCHEMA::predicate<697> { using type = facebook::glean::cpp::schema::Csharp::SolutionToProject; }; template<> struct SCHEMA::predicate<698> { using type = facebook::glean::cpp::schema::Csharp::Solution; }; template<> struct SCHEMA::predicate<699> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSourceFile; }; template<> struct SCHEMA::predicate<700> { using type = facebook::glean::cpp::schema::Csharp::ProjectToSolution; }; template<> struct SCHEMA::predicate<701> { using type = facebook::glean::cpp::schema::Csharp::Project; }; template<> struct SCHEMA::predicate<702> { using type = facebook::glean::cpp::schema::Csharp::Namespace; }; template<> struct SCHEMA::predicate<703> { using type = facebook::glean::cpp::schema::Csharp::NameLowerCase; }; template<> struct SCHEMA::predicate<704> { using type = facebook::glean::cpp::schema::Csharp::Name; }; template<> struct SCHEMA::predicate<705> { using type = facebook::glean::cpp::schema::Csharp::MSBuildProjectSource; }; template<> struct SCHEMA::predicate<706> { using type = facebook::glean::cpp::schema::Csharp::MemberAccessLocation; }; template<> struct SCHEMA::predicate<707> { using type = facebook::glean::cpp::schema::Csharp::MethodInvocationLocation; }; template<> struct SCHEMA::predicate<708> { using type = facebook::glean::cpp::schema::Csharp::Implements; }; template<> struct SCHEMA::predicate<709> { using type = facebook::glean::cpp::schema::Csharp::FunctionPointerType; }; template<> struct SCHEMA::predicate<710> { using type = facebook::glean::cpp::schema::Csharp::FullName; }; template<> struct SCHEMA::predicate<711> { using type = facebook::glean::cpp::schema::Csharp::Class; }; template<> struct SCHEMA::predicate<712> { using type = facebook::glean::cpp::schema::Csharp::Interface; }; template<> struct SCHEMA::predicate<713> { using type = facebook::glean::cpp::schema::Csharp::Record; }; template<> struct SCHEMA::predicate<714> { using type = facebook::glean::cpp::schema::Csharp::Struct; }; template<> struct SCHEMA::predicate<715> { using type = facebook::glean::cpp::schema::Csharp::ArrayType; }; template<> struct SCHEMA::predicate<716> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocation; }; template<> struct SCHEMA::predicate<717> { using type = facebook::glean::cpp::schema::Csharp::DefinitionLocationName; }; template<> struct SCHEMA::predicate<718> { using type = facebook::glean::cpp::schema::Csharp::FileDefinitions; }; template<> struct SCHEMA::predicate<719> { using type = facebook::glean::cpp::schema::Csharp::FileEntityXRefs; }; template<> struct SCHEMA::predicate<720> { using type = facebook::glean::cpp::schema::Csharp::SearchByName; }; template<> struct SCHEMA::predicate<721> { using type = facebook::glean::cpp::schema::Csharp::Field; }; template<> struct SCHEMA::predicate<722> { using type = facebook::glean::cpp::schema::Csharp::Local; }; template<> struct SCHEMA::predicate<723> { using type = facebook::glean::cpp::schema::Csharp::Method; }; template<> struct SCHEMA::predicate<724> { using type = facebook::glean::cpp::schema::Csharp::ObjectCreationLocation; }; template<> struct SCHEMA::predicate<725> { using type = facebook::glean::cpp::schema::Csharp::Parameter; }; template<> struct SCHEMA::predicate<726> { using type = facebook::glean::cpp::schema::Csharp::PointerType; }; template<> struct SCHEMA::predicate<727> { using type = facebook::glean::cpp::schema::Csharp::Property; }; template<> struct SCHEMA::predicate<728> { using type = facebook::glean::cpp::schema::Csharp::TypeLocation; }; template<> struct SCHEMA::predicate<729> { using type = facebook::glean::cpp::schema::Codemarkup::Yaml::YamlDataAvailable; }; template<> struct SCHEMA::predicate<730> { using type = facebook::glean::cpp::schema::Search::Code::CxxNameLowerCase; }; template<> struct SCHEMA::predicate<731> { using type = facebook::glean::cpp::schema::Search::Code::FlowNameLowerCase; }; template<> struct SCHEMA::predicate<732> { using type = facebook::glean::cpp::schema::Search::Code::HackNameLowerCase; }; template<> struct SCHEMA::predicate<733> { using type = facebook::glean::cpp::schema::Search::Code::PythonNameLowerCase; }; template<> struct SCHEMA::predicate<734> { using type = facebook::glean::cpp::schema::Codemarkup::Types::RangeSpanContains; }; template<> struct SCHEMA::predicate<735> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::LsifKindToKind; }; template<> struct SCHEMA::predicate<736> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::FileXLangSymbolRefs; }; template<> struct SCHEMA::predicate<737> { using type = facebook::glean::cpp::schema::Codemarkup::Python::NonImportPythonDeclarationKind; }; template<> struct SCHEMA::predicate<738> { using type = facebook::glean::cpp::schema::Codemarkup::Python::NonImportPythonDeclarationInfo; }; template<> struct SCHEMA::predicate<739> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertLabel; }; template<> struct SCHEMA::predicate<740> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpIncludeXRefLocations; }; template<> struct SCHEMA::predicate<741> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifKindToKind; }; template<> struct SCHEMA::predicate<742> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackInheritedEntities; }; template<> struct SCHEMA::predicate<743> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEnumInheritedMembers; }; template<> struct SCHEMA::predicate<744> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::FromHackVisibility; }; template<> struct SCHEMA::predicate<745> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowDocumentationSpan; }; template<> struct SCHEMA::predicate<746> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowDeclarationDocumentation; }; template<> struct SCHEMA::predicate<747> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::FromCxxVisibility; }; template<> struct SCHEMA::predicate<748> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapVariableXRefDeclLocations; }; template<> struct SCHEMA::predicate<749> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationModifiers; }; template<> struct SCHEMA::predicate<750> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclVisibility; }; template<> struct SCHEMA::predicate<751> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclKind; }; template<> struct SCHEMA::predicate<752> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclInfo; }; template<> struct SCHEMA::predicate<753> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDataAvailable; }; template<> struct SCHEMA::predicate<754> { using type = facebook::glean::cpp::schema::Codemarkup::IndexedFile; }; template<> struct SCHEMA::predicate<755> { using type = facebook::glean::cpp::schema::Codemarkup::EntityDataAvailable; }; template<> struct SCHEMA::predicate<756> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::EntityInfo; }; template<> struct SCHEMA::predicate<757> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityDocumentation; }; template<> struct SCHEMA::predicate<758> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityLocation; }; template<> struct SCHEMA::predicate<759> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityUses; }; template<> struct SCHEMA::predicate<760> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::ScipFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<761> { using type = facebook::glean::cpp::schema::Codemarkup::Scip::ScipResolveLocation; }; template<> struct SCHEMA::predicate<762> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonContainsChildEntity; }; template<> struct SCHEMA::predicate<763> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonContainsParentEntity; }; template<> struct SCHEMA::predicate<764> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityComments; }; template<> struct SCHEMA::predicate<765> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityInfo; }; template<> struct SCHEMA::predicate<766> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityKind; }; template<> struct SCHEMA::predicate<767> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityLocation; }; template<> struct SCHEMA::predicate<768> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityModuleName; }; template<> struct SCHEMA::predicate<769> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityUses; }; template<> struct SCHEMA::predicate<770> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonExtendsChildEntity; }; template<> struct SCHEMA::predicate<771> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonExtendsParentEntity; }; template<> struct SCHEMA::predicate<772> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<773> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonModifiers; }; template<> struct SCHEMA::predicate<774> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonResolveLocation; }; template<> struct SCHEMA::predicate<775> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonVisibility; }; template<> struct SCHEMA::predicate<776> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonAnnotation; }; template<> struct SCHEMA::predicate<777> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PPEntityLocation; }; template<> struct SCHEMA::predicate<778> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityInfo; }; template<> struct SCHEMA::predicate<779> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityKind; }; template<> struct SCHEMA::predicate<780> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityTraceXRefLocations; }; template<> struct SCHEMA::predicate<781> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityUses; }; template<> struct SCHEMA::predicate<782> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<783> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpResolveLocation; }; template<> struct SCHEMA::predicate<784> { using type = facebook::glean::cpp::schema::Codemarkup::Pp::PpResolveTraceLocation; }; template<> struct SCHEMA::predicate<785> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::EntityInfo; }; template<> struct SCHEMA::predicate<786> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityLocation; }; template<> struct SCHEMA::predicate<787> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityModuleName; }; template<> struct SCHEMA::predicate<788> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityUses; }; template<> struct SCHEMA::predicate<789> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<790> { using type = facebook::glean::cpp::schema::Codemarkup::Lsif::LsifResolveLocation; }; template<> struct SCHEMA::predicate<791> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinContainsChildEntity; }; template<> struct SCHEMA::predicate<792> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinContainsParentEntity; }; template<> struct SCHEMA::predicate<793> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityKind; }; template<> struct SCHEMA::predicate<794> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityLocation; }; template<> struct SCHEMA::predicate<795> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityUses; }; template<> struct SCHEMA::predicate<796> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinExtendsParentEntity; }; template<> struct SCHEMA::predicate<797> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<798> { using type = facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinResolveLocation; }; template<> struct SCHEMA::predicate<799> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaContainsChildEntity; }; template<> struct SCHEMA::predicate<800> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaContainsParentEntity; }; template<> struct SCHEMA::predicate<801> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityDocumentation; }; template<> struct SCHEMA::predicate<802> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityKind; }; template<> struct SCHEMA::predicate<803> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityLocation; }; template<> struct SCHEMA::predicate<804> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityUses; }; template<> struct SCHEMA::predicate<805> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaExtendsChildEntity; }; template<> struct SCHEMA::predicate<806> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaExtendsParentEntity; }; template<> struct SCHEMA::predicate<807> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaModifiers; }; template<> struct SCHEMA::predicate<808> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaResolveLocation; }; template<> struct SCHEMA::predicate<809> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaVisibility; }; template<> struct SCHEMA::predicate<810> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavalFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<811> { using type = facebook::glean::cpp::schema::Codemarkup::Java::JavaAnnotation; }; template<> struct SCHEMA::predicate<812> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellContainsChildEntity; }; template<> struct SCHEMA::predicate<813> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellContainsParentEntity; }; template<> struct SCHEMA::predicate<814> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellEntityLocation; }; template<> struct SCHEMA::predicate<815> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellEntityUses; }; template<> struct SCHEMA::predicate<816> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<817> { using type = facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellResolveLocation; }; template<> struct SCHEMA::predicate<818> { using type = facebook::glean::cpp::schema::Search::Hs::SearchByLowerCaseName; }; template<> struct SCHEMA::predicate<819> { using type = facebook::glean::cpp::schema::Search::Hs::SearchByName; }; template<> struct SCHEMA::predicate<820> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::EntityHasHideFromDocsAttr; }; template<> struct SCHEMA::predicate<821> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackContainsChildEntity; }; template<> struct SCHEMA::predicate<822> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackContainsParentEntity; }; template<> struct SCHEMA::predicate<823> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityDocumentation; }; template<> struct SCHEMA::predicate<824> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityInfo; }; template<> struct SCHEMA::predicate<825> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityKind; }; template<> struct SCHEMA::predicate<826> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityLocation; }; template<> struct SCHEMA::predicate<827> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityModuleName; }; template<> struct SCHEMA::predicate<828> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntitySource; }; template<> struct SCHEMA::predicate<829> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityUses; }; template<> struct SCHEMA::predicate<830> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsChildEntity; }; template<> struct SCHEMA::predicate<831> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsParentEntity; }; template<> struct SCHEMA::predicate<832> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsParentEntityConcise; }; template<> struct SCHEMA::predicate<833> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<834> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackFileEntityXRefSpans; }; template<> struct SCHEMA::predicate<835> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackModifiers; }; template<> struct SCHEMA::predicate<836> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackRequiredConstraint; }; template<> struct SCHEMA::predicate<837> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackResolveLocation; }; template<> struct SCHEMA::predicate<838> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackVisibility; }; template<> struct SCHEMA::predicate<839> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackAnnotation; }; template<> struct SCHEMA::predicate<840> { using type = facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityKind; }; template<> struct SCHEMA::predicate<841> { using type = facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityLocation; }; template<> struct SCHEMA::predicate<842> { using type = facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityUses; }; template<> struct SCHEMA::predicate<843> { using type = facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<844> { using type = facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLResolveLocation; }; template<> struct SCHEMA::predicate<845> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowContainsChildEntity; }; template<> struct SCHEMA::predicate<846> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowContainsParentEntity; }; template<> struct SCHEMA::predicate<847> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityDocumentation; }; template<> struct SCHEMA::predicate<848> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityKind; }; template<> struct SCHEMA::predicate<849> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityLocation; }; template<> struct SCHEMA::predicate<850> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityModuleName; }; template<> struct SCHEMA::predicate<851> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityUses; }; template<> struct SCHEMA::predicate<852> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<853> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileImportDeclEntityXRefLocations; }; template<> struct SCHEMA::predicate<854> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileReferenceEntityXRefLocations; }; template<> struct SCHEMA::predicate<855> { using type = facebook::glean::cpp::schema::Codemarkup::Flow::FlowResolveLocation; }; template<> struct SCHEMA::predicate<856> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::FbthriftEntityDocumentation; }; template<> struct SCHEMA::predicate<857> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::FbthriftEntityUses; }; template<> struct SCHEMA::predicate<858> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftContainsChildEntity; }; template<> struct SCHEMA::predicate<859> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftContainsParentEntity; }; template<> struct SCHEMA::predicate<860> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftEntityKind; }; template<> struct SCHEMA::predicate<861> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftEntityLocation; }; template<> struct SCHEMA::predicate<862> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftExtendsChildEntity; }; template<> struct SCHEMA::predicate<863> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftExtendsParentEntity; }; template<> struct SCHEMA::predicate<864> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<865> { using type = facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftResolveLocation; }; template<> struct SCHEMA::predicate<866> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityDocumentation; }; template<> struct SCHEMA::predicate<867> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityInfo; }; template<> struct SCHEMA::predicate<868> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityKind; }; template<> struct SCHEMA::predicate<869> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityLocation; }; template<> struct SCHEMA::predicate<870> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityUses; }; template<> struct SCHEMA::predicate<871> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<872> { using type = facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangResolveLocation; }; template<> struct SCHEMA::predicate<873> { using type = facebook::glean::cpp::schema::Search::Erlang::SearchByFQN; }; template<> struct SCHEMA::predicate<874> { using type = facebook::glean::cpp::schema::Search::Erlang::SearchByName; }; template<> struct SCHEMA::predicate<875> { using type = facebook::glean::cpp::schema::Codemarkup::Dataswarm::DataswarmFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<876> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxContainsChildEntity; }; template<> struct SCHEMA::predicate<877> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxContainsParentEntity; }; template<> struct SCHEMA::predicate<878> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclToDefXRefTargetLocation; }; template<> struct SCHEMA::predicate<879> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationContainsChild; }; template<> struct SCHEMA::predicate<880> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationContainsParent; }; template<> struct SCHEMA::predicate<881> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationExtendsChild; }; template<> struct SCHEMA::predicate<882> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationExtendsParent; }; template<> struct SCHEMA::predicate<883> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationSource; }; template<> struct SCHEMA::predicate<884> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefToDeclFamilyXRefTargetLocation; }; template<> struct SCHEMA::predicate<885> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityDocumentation; }; template<> struct SCHEMA::predicate<886> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityInfo; }; template<> struct SCHEMA::predicate<887> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityKind; }; template<> struct SCHEMA::predicate<888> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityLocation; }; template<> struct SCHEMA::predicate<889> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityMangledNameHash; }; template<> struct SCHEMA::predicate<890> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntitySource; }; template<> struct SCHEMA::predicate<891> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityUSR; }; template<> struct SCHEMA::predicate<892> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityUses; }; template<> struct SCHEMA::predicate<893> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxExtendsChildEntity; }; template<> struct SCHEMA::predicate<894> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxExtendsParentEntity; }; template<> struct SCHEMA::predicate<895> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntitySpellingXRefLocations; }; template<> struct SCHEMA::predicate<896> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityTraceDeclToDefXRefLocations; }; template<> struct SCHEMA::predicate<897> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapFixedXRefLocations; }; template<> struct SCHEMA::predicate<898> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapVariableXRefDeclToDefs; }; template<> struct SCHEMA::predicate<899> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<900> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFindDefinitionOfEntity; }; template<> struct SCHEMA::predicate<901> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxModifiers; }; template<> struct SCHEMA::predicate<902> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxNamespaceDeclarationContainsChild; }; template<> struct SCHEMA::predicate<903> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveDeclarationToEntity; }; template<> struct SCHEMA::predicate<904> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveLocation; }; template<> struct SCHEMA::predicate<905> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveTraceLocation; }; template<> struct SCHEMA::predicate<906> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxVisibility; }; template<> struct SCHEMA::predicate<907> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxXRefTargetLocation; }; template<> struct SCHEMA::predicate<908> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::EntityToXRefTarget; }; template<> struct SCHEMA::predicate<909> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::SymbolToEntity; }; template<> struct SCHEMA::predicate<910> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::XRefTargetToEntity; }; template<> struct SCHEMA::predicate<911> { using type = facebook::glean::cpp::schema::Search::Code::CxxPreferDefinitions; }; template<> struct SCHEMA::predicate<912> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchObjcInterface; }; template<> struct SCHEMA::predicate<913> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::DefinitionOfDecl; }; template<> struct SCHEMA::predicate<914> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDefinition; }; template<> struct SCHEMA::predicate<915> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionContainsChild; }; template<> struct SCHEMA::predicate<916> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionContainsParent; }; template<> struct SCHEMA::predicate<917> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionExtendsChild; }; template<> struct SCHEMA::predicate<918> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionExtendsParent; }; template<> struct SCHEMA::predicate<919> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionModifiers; }; template<> struct SCHEMA::predicate<920> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefnVisibility; }; template<> struct SCHEMA::predicate<921> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityDefinitionBase; }; template<> struct SCHEMA::predicate<922> { using type = facebook::glean::cpp::schema::Search::Cxx::DeclIsDefn; }; template<> struct SCHEMA::predicate<923> { using type = facebook::glean::cpp::schema::Code::Cxx::DeclToDef; }; template<> struct SCHEMA::predicate<924> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxAnnotation; }; template<> struct SCHEMA::predicate<925> { using type = facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityKind; }; template<> struct SCHEMA::predicate<926> { using type = facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityLocation; }; template<> struct SCHEMA::predicate<927> { using type = facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityUses; }; template<> struct SCHEMA::predicate<928> { using type = facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<929> { using type = facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpResolveLocation; }; template<> struct SCHEMA::predicate<930> { using type = facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityKind; }; template<> struct SCHEMA::predicate<931> { using type = facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityLocation; }; template<> struct SCHEMA::predicate<932> { using type = facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityUses; }; template<> struct SCHEMA::predicate<933> { using type = facebook::glean::cpp::schema::Codemarkup::Buck::BuckFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<934> { using type = facebook::glean::cpp::schema::Codemarkup::Buck::BuckResolveLocation; }; template<> struct SCHEMA::predicate<935> { using type = facebook::glean::cpp::schema::Search::Buck::SearchByFQN; }; template<> struct SCHEMA::predicate<936> { using type = facebook::glean::cpp::schema::Search::Buck::SearchDefinition; }; template<> struct SCHEMA::predicate<937> { using type = facebook::glean::cpp::schema::Search::Buck::SearchFile; }; template<> struct SCHEMA::predicate<938> { using type = facebook::glean::cpp::schema::Code::EntityLanguageSCIP; }; template<> struct SCHEMA::predicate<939> { using type = facebook::glean::cpp::schema::Code::EntityLanguageLSIF; }; template<> struct SCHEMA::predicate<940> { using type = facebook::glean::cpp::schema::Cxx1::FunctionName; }; template<> struct SCHEMA::predicate<941> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclaration; }; template<> struct SCHEMA::predicate<942> { using type = facebook::glean::cpp::schema::Cxx1::DeclarationScope; }; template<> struct SCHEMA::predicate<943> { using type = facebook::glean::cpp::schema::Cxx1::EnumDeclarationByName; }; template<> struct SCHEMA::predicate<944> { using type = facebook::glean::cpp::schema::Cxx1::FunctionDeclarationByNameScope; }; template<> struct SCHEMA::predicate<945> { using type = facebook::glean::cpp::schema::Cxx1::FunctionQName; }; template<> struct SCHEMA::predicate<946> { using type = facebook::glean::cpp::schema::Cxx1::QName; }; template<> struct SCHEMA::predicate<947> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationClass; }; template<> struct SCHEMA::predicate<948> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationStruct; }; template<> struct SCHEMA::predicate<949> { using type = facebook::glean::cpp::schema::Cxx1::RecordDeclarationUnion; }; template<> struct SCHEMA::predicate<950> { using type = facebook::glean::cpp::schema::Cxx1::TypeAliasDeclarationByName; }; template<> struct SCHEMA::predicate<951> { using type = facebook::glean::cpp::schema::Cxx1::VariableDeclarationNonLocalByName; }; template<> struct SCHEMA::predicate<952> { using type = facebook::glean::cpp::schema::Search::Cxx::QueryToScopeCase; }; template<> struct SCHEMA::predicate<953> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchClass; }; template<> struct SCHEMA::predicate<954> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnum; }; template<> struct SCHEMA::predicate<955> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnumerator; }; template<> struct SCHEMA::predicate<956> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchFunction; }; template<> struct SCHEMA::predicate<957> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchNamespace; }; template<> struct SCHEMA::predicate<958> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchStruct; }; template<> struct SCHEMA::predicate<959> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchTypeAlias; }; template<> struct SCHEMA::predicate<960> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchUnion; }; template<> struct SCHEMA::predicate<961> { using type = facebook::glean::cpp::schema::Search::Kind::Cxx::SearchVariable; }; template<> struct SCHEMA::predicate<962> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDeclaration; }; template<> struct SCHEMA::predicate<963> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupDefinition; }; template<> struct SCHEMA::predicate<964> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupEnumerator; }; template<> struct SCHEMA::predicate<965> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDeclaration; }; template<> struct SCHEMA::predicate<966> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDefinition; }; template<> struct SCHEMA::predicate<967> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDeclaration; }; template<> struct SCHEMA::predicate<968> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDefinition; }; template<> struct SCHEMA::predicate<969> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDeclaration; }; template<> struct SCHEMA::predicate<970> { using type = facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDefinition; }; template<> struct SCHEMA::predicate<971> { using type = facebook::glean::cpp::schema::Fbthrift::FunctionSpecification; }; template<> struct SCHEMA::predicate<972> { using type = facebook::glean::cpp::schema::Buck::Type; }; template<> struct SCHEMA::predicate<973> { using type = facebook::glean::cpp::schema::Buck::TranslationUnit; }; template<> struct SCHEMA::predicate<974> { using type = facebook::glean::cpp::schema::Buck::TargetUses; }; template<> struct SCHEMA::predicate<975> { using type = facebook::glean::cpp::schema::Buck::TargetSourcesBaseModule; }; template<> struct SCHEMA::predicate<976> { using type = facebook::glean::cpp::schema::Buck::TargetSources; }; template<> struct SCHEMA::predicate<977> { using type = facebook::glean::cpp::schema::Buck::TargetOuts; }; template<> struct SCHEMA::predicate<978> { using type = facebook::glean::cpp::schema::Buck::TargetOut; }; template<> struct SCHEMA::predicate<979> { using type = facebook::glean::cpp::schema::Buck::TargetMode; }; template<> struct SCHEMA::predicate<980> { using type = facebook::glean::cpp::schema::Buck::TargetLocation; }; template<> struct SCHEMA::predicate<981> { using type = facebook::glean::cpp::schema::Buck::TargetLinkWhole; }; template<> struct SCHEMA::predicate<982> { using type = facebook::glean::cpp::schema::Buck::TargetIndexerName; }; template<> struct SCHEMA::predicate<983> { using type = facebook::glean::cpp::schema::Buck::TargetIndexer; }; template<> struct SCHEMA::predicate<984> { using type = facebook::glean::cpp::schema::Buck::TargetHash; }; template<> struct SCHEMA::predicate<985> { using type = facebook::glean::cpp::schema::Buck::TargetCallByCallExpr; }; template<> struct SCHEMA::predicate<986> { using type = facebook::glean::cpp::schema::Buck::TargetCall; }; template<> struct SCHEMA::predicate<987> { using type = facebook::glean::cpp::schema::Buck::TargetByType; }; template<> struct SCHEMA::predicate<988> { using type = facebook::glean::cpp::schema::Buck::TargetAttribute; }; template<> struct SCHEMA::predicate<989> { using type = facebook::glean::cpp::schema::Buck::Target; }; template<> struct SCHEMA::predicate<990> { using type = facebook::glean::cpp::schema::Buck::SourceFileLocation; }; template<> struct SCHEMA::predicate<991> { using type = facebook::glean::cpp::schema::Buck::SearchByLocalName; }; template<> struct SCHEMA::predicate<992> { using type = facebook::glean::cpp::schema::Buck::RuleKey; }; template<> struct SCHEMA::predicate<993> { using type = facebook::glean::cpp::schema::Buck::Platform; }; template<> struct SCHEMA::predicate<994> { using type = facebook::glean::cpp::schema::Buck::Owner; }; template<> struct SCHEMA::predicate<995> { using type = facebook::glean::cpp::schema::Buck::OutsTarget; }; template<> struct SCHEMA::predicate<996> { using type = facebook::glean::cpp::schema::Buck::OutputLabel; }; template<> struct SCHEMA::predicate<997> { using type = facebook::glean::cpp::schema::Buck::OutTarget; }; template<> struct SCHEMA::predicate<998> { using type = facebook::glean::cpp::schema::Buck::LocatorWithLabel; }; template<> struct SCHEMA::predicate<999> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDeps; }; template<> struct SCHEMA::predicate<1000> { using type = facebook::glean::cpp::schema::Buck::LocatorReverseDep; }; template<> struct SCHEMA::predicate<1001> { using type = facebook::glean::cpp::schema::Buck::Locator; }; template<> struct SCHEMA::predicate<1002> { using type = facebook::glean::cpp::schema::Buck::LocalNameLowerCase; }; template<> struct SCHEMA::predicate<1003> { using type = facebook::glean::cpp::schema::Buck::LocalName; }; template<> struct SCHEMA::predicate<1004> { using type = facebook::glean::cpp::schema::Buck::Labels; }; template<> struct SCHEMA::predicate<1005> { using type = facebook::glean::cpp::schema::Buck::Label; }; template<> struct SCHEMA::predicate<1006> { using type = facebook::glean::cpp::schema::Buck::IndexerName; }; template<> struct SCHEMA::predicate<1007> { using type = facebook::glean::cpp::schema::Buck::FileXRefs; }; template<> struct SCHEMA::predicate<1008> { using type = facebook::glean::cpp::schema::Buck::FileToTarget; }; template<> struct SCHEMA::predicate<1009> { using type = facebook::glean::cpp::schema::Buck::FileTarget; }; template<> struct SCHEMA::predicate<1010> { using type = facebook::glean::cpp::schema::Buck::FileResolved; }; template<> struct SCHEMA::predicate<1011> { using type = facebook::glean::cpp::schema::Buck::FileEntity; }; template<> struct SCHEMA::predicate<1012> { using type = facebook::glean::cpp::schema::Buck::FileDefinition; }; template<> struct SCHEMA::predicate<1013> { using type = facebook::glean::cpp::schema::Buck::File; }; template<> struct SCHEMA::predicate<1014> { using type = facebook::glean::cpp::schema::Buck::FailureSources; }; template<> struct SCHEMA::predicate<1015> { using type = facebook::glean::cpp::schema::Buck::IndexFailureX; }; template<> struct SCHEMA::predicate<1016> { using type = facebook::glean::cpp::schema::Buck::DestinationUses; }; template<> struct SCHEMA::predicate<1017> { using type = facebook::glean::cpp::schema::Buck::TargetDependencies; }; template<> struct SCHEMA::predicate<1018> { using type = facebook::glean::cpp::schema::Buck::DefinitionLocation; }; template<> struct SCHEMA::predicate<1019> { using type = facebook::glean::cpp::schema::Buck::Definition; }; template<> struct SCHEMA::predicate<1020> { using type = facebook::glean::cpp::schema::Buck::Consumer; }; template<> struct SCHEMA::predicate<1021> { using type = facebook::glean::cpp::schema::Buck::CallExpr; }; template<> struct SCHEMA::predicate<1022> { using type = facebook::glean::cpp::schema::Buck::CallArgument; }; template<> struct SCHEMA::predicate<1023> { using type = facebook::glean::cpp::schema::Buck::AttributeName; }; template<> struct SCHEMA::predicate<1024> { using type = facebook::glean::cpp::schema::Buck::AttributeValue; }; template<> struct SCHEMA::predicate<1025> { using type = facebook::glean::cpp::schema::Buck::ArgumentValue; }; template<> struct SCHEMA::predicate<1026> { using type = facebook::glean::cpp::schema::Anglelang::TypeDecl; }; template<> struct SCHEMA::predicate<1027> { using type = facebook::glean::cpp::schema::Anglelang::Name; }; template<> struct SCHEMA::predicate<1028> { using type = facebook::glean::cpp::schema::Anglelang::Type; }; template<> struct SCHEMA::predicate<1029> { using type = facebook::glean::cpp::schema::Anglelang::EvolveDecl; }; template<> struct SCHEMA::predicate<1030> { using type = facebook::glean::cpp::schema::Anglelang::DerivingDecl; }; template<> struct SCHEMA::predicate<1031> { using type = facebook::glean::cpp::schema::Anglelang::PredicateDecl; }; template<> struct SCHEMA::predicate<1032> { using type = facebook::glean::cpp::schema::Anglelang::DeclarationLocation; }; template<> struct SCHEMA::predicate<1033> { using type = facebook::glean::cpp::schema::Anglelang::DeclarationToName; }; template<> struct SCHEMA::predicate<1034> { using type = facebook::glean::cpp::schema::Anglelang::SchemaDecl; }; template<> struct SCHEMA::predicate<1035> { using type = facebook::glean::cpp::schema::Anglelang::TargetUses; }; template<> struct SCHEMA::predicate<1036> { using type = facebook::glean::cpp::schema::Anglelang::FileXRefs; }; template<> struct SCHEMA::predicate<1037> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallArguments; }; template<> struct SCHEMA::predicate<1038> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertMaybeCallArguments; }; template<> struct SCHEMA::predicate<1039> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertCallArguments; }; template<> struct SCHEMA::predicate<1040> { using type = facebook::glean::cpp::schema::Codemarkup::Python::PythonFileCall; }; template<> struct SCHEMA::predicate<1041> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertArgument; }; template<> struct SCHEMA::predicate<1042> { using type = facebook::glean::cpp::schema::Codemarkup::Python::ConvertArgument; }; template<> struct SCHEMA::predicate<1043> { using type = facebook::glean::cpp::schema::Code::EntityLanguage; }; template<> struct SCHEMA::predicate<1044> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityIdl; }; template<> struct SCHEMA::predicate<1045> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityIdl; }; template<> struct SCHEMA::predicate<1046> { using type = facebook::glean::cpp::schema::Codemarkup::Yaml::YamlFileEntityXLangXRefLocations; }; template<> struct SCHEMA::predicate<1047> { using type = facebook::glean::cpp::schema::Codemarkup::ContainsChildEntity; }; template<> struct SCHEMA::predicate<1048> { using type = facebook::glean::cpp::schema::Codemarkup::ContainsParentEntity; }; template<> struct SCHEMA::predicate<1049> { using type = facebook::glean::cpp::schema::Codemarkup::EntityComments; }; template<> struct SCHEMA::predicate<1050> { using type = facebook::glean::cpp::schema::Codemarkup::EntityInfo; }; template<> struct SCHEMA::predicate<1051> { using type = facebook::glean::cpp::schema::Codemarkup::EntityIsDefinition; }; template<> struct SCHEMA::predicate<1052> { using type = facebook::glean::cpp::schema::Codemarkup::EntityKind; }; template<> struct SCHEMA::predicate<1053> { using type = facebook::glean::cpp::schema::Codemarkup::EntityLocation; }; template<> struct SCHEMA::predicate<1054> { using type = facebook::glean::cpp::schema::Codemarkup::EntityModifiers; }; template<> struct SCHEMA::predicate<1055> { using type = facebook::glean::cpp::schema::Codemarkup::EntityModuleName; }; template<> struct SCHEMA::predicate<1056> { using type = facebook::glean::cpp::schema::Codemarkup::EntityReferences; }; template<> struct SCHEMA::predicate<1057> { using type = facebook::glean::cpp::schema::Codemarkup::EntitySource; }; template<> struct SCHEMA::predicate<1058> { using type = facebook::glean::cpp::schema::Codemarkup::EntityToAnnotations; }; template<> struct SCHEMA::predicate<1059> { using type = facebook::glean::cpp::schema::Codemarkup::EntityUses; }; template<> struct SCHEMA::predicate<1060> { using type = facebook::glean::cpp::schema::Codemarkup::EntityVisibility; }; template<> struct SCHEMA::predicate<1061> { using type = facebook::glean::cpp::schema::Codemarkup::ExtendsChildEntity; }; template<> struct SCHEMA::predicate<1062> { using type = facebook::glean::cpp::schema::Codemarkup::ExtendsParentEntity; }; template<> struct SCHEMA::predicate<1063> { using type = facebook::glean::cpp::schema::Codemarkup::ExtendsParentEntityConcise; }; template<> struct SCHEMA::predicate<1064> { using type = facebook::glean::cpp::schema::Codemarkup::FileCall; }; template<> struct SCHEMA::predicate<1065> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityDigest; }; template<> struct SCHEMA::predicate<1066> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityInfos; }; template<> struct SCHEMA::predicate<1067> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityKinds; }; template<> struct SCHEMA::predicate<1068> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityLocations; }; template<> struct SCHEMA::predicate<1069> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityXRefInfos; }; template<> struct SCHEMA::predicate<1070> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityXRefKinds; }; template<> struct SCHEMA::predicate<1071> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityXRefLocations; }; template<> struct SCHEMA::predicate<1072> { using type = facebook::glean::cpp::schema::Codemarkup::FileEntityXRefRangeSpans; }; template<> struct SCHEMA::predicate<1073> { using type = facebook::glean::cpp::schema::Codemarkup::FindEntityDefinition; }; template<> struct SCHEMA::predicate<1074> { using type = facebook::glean::cpp::schema::Codemarkup::GeneratedEntityToIdlEntity; }; template<> struct SCHEMA::predicate<1075> { using type = facebook::glean::cpp::schema::Codemarkup::FileXRefsGenericEntities; }; template<> struct SCHEMA::predicate<1076> { using type = facebook::glean::cpp::schema::Codemarkup::SearchRelatedEntities; }; template<> struct SCHEMA::predicate<1077> { using type = facebook::glean::cpp::schema::Codemarkup::ReferencingEntity; }; template<> struct SCHEMA::predicate<1078> { using type = facebook::glean::cpp::schema::Codemarkup::ResolveLocation; }; template<> struct SCHEMA::predicate<1079> { using type = facebook::glean::cpp::schema::Codemarkup::SearchInheritedEntities; }; template<> struct SCHEMA::predicate<1080> { using type = facebook::glean::cpp::schema::Codemarkup::SymbolToEntity; }; template<> struct SCHEMA::predicate<1081> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityIdl; }; template<> struct SCHEMA::predicate<1082> { using type = facebook::glean::cpp::schema::Codemarkup::Cxx::CxxIdlEntityUses; }; template<> struct SCHEMA::predicate<1083> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallee; }; template<> struct SCHEMA::predicate<1084> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCalleeForFileCall; }; template<> struct SCHEMA::predicate<1085> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::ConvertStaticType; }; template<> struct SCHEMA::predicate<1086> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackFileCall; }; template<> struct SCHEMA::predicate<1087> { using type = facebook::glean::cpp::schema::Codemarkup::Hack::HackIdlEntityUses; }; template<> struct SCHEMA::predicate<1088> { using type = facebook::glean::cpp::schema::Codemarkup::Search::EntityLocationAndKind; }; template<> struct SCHEMA::predicate<1089> { using type = facebook::glean::cpp::schema::Codemarkup::Search::SearchByName; }; template<> struct SCHEMA::predicate<1090> { using type = facebook::glean::cpp::schema::Codemarkup::Search::SearchByScope; }; template<> struct SCHEMA::predicate<1091> { using type = facebook::glean::cpp::schema::Dyn::EntityUsage; }; template<> struct SCHEMA::predicate<1092> { using type = facebook::glean::cpp::schema::Search::Code::AngleSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1093> { using type = facebook::glean::cpp::schema::Search::Code::AngleSearchByName; }; template<> struct SCHEMA::predicate<1094> { using type = facebook::glean::cpp::schema::Search::Code::BuckSearchByLocalNameFact; }; template<> struct SCHEMA::predicate<1095> { using type = facebook::glean::cpp::schema::Search::Code::BuckSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1096> { using type = facebook::glean::cpp::schema::Search::Code::BuckSearchByName; }; template<> struct SCHEMA::predicate<1097> { using type = facebook::glean::cpp::schema::Search::Code::CSharpSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1098> { using type = facebook::glean::cpp::schema::Search::Code::CSharpSearchByName; }; template<> struct SCHEMA::predicate<1099> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1100> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseScopeAndKind; }; template<> struct SCHEMA::predicate<1101> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1102> { using type = facebook::glean::cpp::schema::Search::Code::CxxSearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1103> { using type = facebook::glean::cpp::schema::Search::Code::ErlangSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1104> { using type = facebook::glean::cpp::schema::Search::Code::ErlangSearchByName; }; template<> struct SCHEMA::predicate<1105> { using type = facebook::glean::cpp::schema::Search::Code::FbthriftSearchByNameFact; }; template<> struct SCHEMA::predicate<1106> { using type = facebook::glean::cpp::schema::Search::Code::FlowSearchByLowerCaseNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1107> { using type = facebook::glean::cpp::schema::Search::Code::FlowSearchByLowerCaseScopeAndKind; }; template<> struct SCHEMA::predicate<1108> { using type = facebook::glean::cpp::schema::Search::Code::FlowSearchByNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1109> { using type = facebook::glean::cpp::schema::Search::Code::FlowSearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1110> { using type = facebook::glean::cpp::schema::Search::Code::GraphQLSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1111> { using type = facebook::glean::cpp::schema::Search::Code::GraphQLSearchByName; }; template<> struct SCHEMA::predicate<1112> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseNameAndKind; }; template<> struct SCHEMA::predicate<1113> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseScopeAndKind; }; template<> struct SCHEMA::predicate<1114> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameAndKind; }; template<> struct SCHEMA::predicate<1115> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithNamespace; }; template<> struct SCHEMA::predicate<1116> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithQName; }; template<> struct SCHEMA::predicate<1117> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1118> { using type = facebook::glean::cpp::schema::Search::Code::HackSearchByScopeWithNameKinds; }; template<> struct SCHEMA::predicate<1119> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1120> { using type = facebook::glean::cpp::schema::Search::Code::HsSearchByName; }; template<> struct SCHEMA::predicate<1121> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1122> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseScope; }; template<> struct SCHEMA::predicate<1123> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByName; }; template<> struct SCHEMA::predicate<1124> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByNameWithFact; }; template<> struct SCHEMA::predicate<1125> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScope; }; template<> struct SCHEMA::predicate<1126> { using type = facebook::glean::cpp::schema::Search::Code::JavaSearchByScopeWithName; }; template<> struct SCHEMA::predicate<1127> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1128> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseScope; }; template<> struct SCHEMA::predicate<1129> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByName; }; template<> struct SCHEMA::predicate<1130> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByNameWithFact; }; template<> struct SCHEMA::predicate<1131> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScope; }; template<> struct SCHEMA::predicate<1132> { using type = facebook::glean::cpp::schema::Search::Code::KotlinSearchByScopeWithName; }; template<> struct SCHEMA::predicate<1133> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1134> { using type = facebook::glean::cpp::schema::Search::Code::LsifSearchByName; }; template<> struct SCHEMA::predicate<1135> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByLowerCaseNameKind; }; template<> struct SCHEMA::predicate<1136> { using type = facebook::glean::cpp::schema::Search::Code::PpSearchByNameKind; }; template<> struct SCHEMA::predicate<1137> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1138> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseScopeAndKind; }; template<> struct SCHEMA::predicate<1139> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByNameKindAndScopeFact; }; template<> struct SCHEMA::predicate<1140> { using type = facebook::glean::cpp::schema::Search::Code::PythonSearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1141> { using type = facebook::glean::cpp::schema::Search::Code::RustSearchByNameAndKind; }; template<> struct SCHEMA::predicate<1142> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameAndLanguage; }; template<> struct SCHEMA::predicate<1143> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameKindAndLanguage; }; template<> struct SCHEMA::predicate<1144> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScope; }; template<> struct SCHEMA::predicate<1145> { using type = facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScopeAndKind; }; template<> struct SCHEMA::predicate<1146> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameAndLanguage; }; template<> struct SCHEMA::predicate<1147> { using type = facebook::glean::cpp::schema::Search::Code::SearchByNameKindAndLanguage; }; template<> struct SCHEMA::predicate<1148> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScope; }; template<> struct SCHEMA::predicate<1149> { using type = facebook::glean::cpp::schema::Search::Code::SearchByScopeAndKind; }; template<> struct SCHEMA::predicate<1150> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByLowerCaseName; }; template<> struct SCHEMA::predicate<1151> { using type = facebook::glean::cpp::schema::Search::Code::ThriftSearchByName; }; template<> struct SCHEMA::predicate<1152> { using type = facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleEntityLocation; }; template<> struct SCHEMA::predicate<1153> { using type = facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleEntityUses; }; template<> struct SCHEMA::predicate<1154> { using type = facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleFileEntityXRefLocations; }; template<> struct SCHEMA::predicate<1155> { using type = facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleResolveLocation; }; template<> struct SCHEMA::predicate<1156> { using type = facebook::glean::cpp::schema::Search::Anglelang::SearchByName; }; } // namespace schema } // namespace cpp } // namespace glean } // namespace facebook