glean-0.2.0.0: glean/schema/cpp/schema.h
#pragma once
// @generated
// Glean.Schema.Gen.Cpp definitions for fbcode/glean/lang/clang/schema.h
// by //glean/hs:predicates using --cpp
#include <tuple>
#include <boost/variant.hpp>
#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<std::vector<uint8_t>> {
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_<facebook::glean::cpp::schema::Src::RelByteSpan> {
using Type = Tuple<Nat, Nat>;
};
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<Repr<RelByteSpan>> out) const {
outputValue(out, std::make_tuple(offset, length));
}
}; // struct RelByteSpan
} // namespace Src
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Src::Range> {
using Type = Tuple<facebook::glean::cpp::schema::Src::File, Nat, Nat, Nat, Nat>;
};
namespace schema {
namespace Src {
struct Range {
Fact<File> 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<Repr<Range>> out) const {
outputValue(out, std::make_tuple(file, lineBegin, columnBegin, lineEnd, columnEnd));
}
}; // struct Range
struct RangeContains : Predicate<std::tuple<Range, Range>> {
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_<facebook::glean::cpp::schema::Src::PackedByteSpansGroup> {
using Type = Tuple<Nat, Array<Nat>>;
};
namespace schema {
namespace Src {
struct PackedByteSpansGroup {
uint64_t length;
std::vector<uint64_t> 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<Repr<PackedByteSpansGroup>> out) const {
outputValue(out, std::make_tuple(length, offsets));
}
}; // struct PackedByteSpansGroup
using PackedByteSpans = std::vector<PackedByteSpansGroup>;
} // namespace Src
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Src::Loc> {
using Type = Tuple<facebook::glean::cpp::schema::Src::File, Nat, Nat>;
};
namespace schema {
namespace Src {
struct Loc {
Fact<File> 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<Repr<Loc>> out) const {
outputValue(out, std::make_tuple(file, line, column));
}
}; // struct Loc
} // namespace Src
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Src::Language> {
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_<facebook::glean::cpp::schema::Src::IndexFailureReason> {
using Type = Enum<4>;
};
namespace schema {
namespace Src {
enum class IndexFailureReason { CompileError, BuildSystemError, Unclassified, DiscoveryError };
struct IndexFailure : Predicate<std::tuple<Fact<File>, 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::tuple<Fact<File>, std::vector<uint64_t>, bool, bool>> {
static const char* GLEAN_name() {
return "src.FileLines";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileLines
struct FileLanguage : Predicate<std::tuple<Fact<File>, Language>> {
static const char* GLEAN_name() {
return "src.FileLanguage";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileLanguage
struct FileDigest : Predicate<Fact<File>, std::string> {
static const char* GLEAN_name() {
return "src.FileDigest";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileDigest
struct File : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Src::ByteSpan> {
using Type = Tuple<Nat, Nat>;
};
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<Repr<ByteSpan>> out) const {
outputValue(out, std::make_tuple(start, length));
}
}; // struct ByteSpan
struct ByteSpanContains : Predicate<std::tuple<ByteSpan, ByteSpan>> {
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_<facebook::glean::cpp::schema::Src::FileLocation> {
using Type = Tuple<facebook::glean::cpp::schema::Src::File, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
namespace schema {
namespace Src {
struct FileLocation {
Fact<File> 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<Repr<FileLocation>> out) const {
outputValue(out, std::make_tuple(file, span));
}
}; // struct FileLocation
} // namespace Src
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Src::ByteRange> {
using Type = Tuple<Nat, Nat>;
};
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<Repr<ByteRange>> out) const {
outputValue(out, std::make_tuple(begin, end));
}
}; // struct ByteRange
} // namespace Src
namespace Search {
namespace Python {
struct QueryToScopeCase : Predicate<std::tuple<std::vector<std::string>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Python::SName>>>>> {
static const char* GLEAN_name() {
return "search.python.QueryToScopeCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct QueryToScopeCase
struct PythonNameCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Python::Name>>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Pp1::Macro>, Fact<facebook::glean::cpp::schema::Pp1::Define>>> {
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<std::tuple<std::vector<std::string>, bool, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Path>>> {
static const char* GLEAN_name() {
return "search.java.QueryToScopeCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct QueryToScopeCase
struct NameCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>>> {
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<std::tuple<std::vector<std::string>, bool, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>>> {
static const char* GLEAN_name() {
return "search.hack.QueryToScopeCase";
}
static constexpr size_t GLEAN_version() {
return 7;
}
}; // struct QueryToScopeCase
struct HackNameCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Hack::Name>>> {
static const char* GLEAN_name() {
return "search.hack.HackNameCase";
}
static constexpr size_t GLEAN_version() {
return 7;
}
}; // struct HackNameCase
struct HackInAutoImportedNamespace : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Flow::TypeDeclaration>, Fact<facebook::glean::cpp::schema::Flow::Declaration>>> {
static const char* GLEAN_name() {
return "search.flow.TypeDeclarationAsDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TypeDeclarationAsDeclaration
struct QueryToScopeCase : Predicate<std::tuple<std::vector<std::string>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Flow::Module>>>>> {
static const char* GLEAN_name() {
return "search.flow.QueryToScopeCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct QueryToScopeCase
struct FlowModuleNameCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Flow::Module>>> {
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<std::tuple<std::vector<std::string>, bool, Fact<facebook::glean::cpp::schema::Cxx1::QName>>> {
static const char* GLEAN_name() {
return "search.cxx.QueryToQNameCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct QueryToQNameCase
struct QueryToNSQNameCase : Predicate<std::tuple<std::vector<std::string>, bool, Fact<facebook::glean::cpp::schema::Cxx1::NamespaceQName>>> {
static const char* GLEAN_name() {
return "search.cxx.QueryToNSQNameCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct QueryToNSQNameCase
struct CxxRecordCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Cxx1::Name>>> {
static const char* GLEAN_name() {
return "search.cxx.CxxRecordCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct CxxRecordCase
struct CxxNamespaceCase : Predicate<std::tuple<bool, std::string, Fact<facebook::glean::cpp::schema::Cxx1::Name>>> {
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<std::tuple<std::string, Fact<facebook::glean::cpp::schema::Anglelang::Name>>> {
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_<facebook::glean::cpp::schema::Scip::TextEncoding> {
using Type = Enum<3>;
};
namespace schema {
namespace Scip {
enum class TextEncoding { UnspecifiedTextEncoding, UTF8, UTF16 };
struct SymbolName : Predicate<std::tuple<Fact<Symbol>, Fact<LocalName>>> {
static const char* GLEAN_name() {
return "scip.SymbolName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SymbolName
struct SymbolDocumentation : Predicate<std::tuple<Fact<Symbol>, Fact<Documentation>>> {
static const char* GLEAN_name() {
return "scip.SymbolDocumentation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SymbolDocumentation
struct SymbolDisplayName : Predicate<std::tuple<Fact<Symbol>, Fact<DisplayName>>> {
static const char* GLEAN_name() {
return "scip.SymbolDisplayName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SymbolDisplayName
struct Symbol : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Scip::SomeEntity> {
using Type = Tuple<facebook::glean::cpp::schema::Scip::Definition>;
};
namespace schema {
namespace Scip {
struct SomeEntity {
Fact<Definition> 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<Repr<SomeEntity>> out) const {
outputValue(out, std::make_tuple(defn));
}
}; // struct SomeEntity
struct ReferenceTarget : Predicate<std::tuple<Fact<Reference>, Fact<Definition>>> {
static const char* GLEAN_name() {
return "scip.ReferenceTarget";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ReferenceTarget
struct Reference : Predicate<std::tuple<Fact<Symbol>, Fact<FileRange>>> {
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_<facebook::glean::cpp::schema::Scip::ProtocolVersion> {
using Type = Enum<1>;
};
namespace schema {
namespace Scip {
enum class ProtocolVersion { UnspecifiedProtocolVersion };
} // namespace Scip
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Scip::Location> {
using Type = Tuple<facebook::glean::cpp::schema::Src::File, Repr<facebook::glean::cpp::schema::Src::Range>, String>;
};
namespace schema {
namespace Scip {
struct Location {
Fact<facebook::glean::cpp::schema::Src::File> 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<Repr<Location>> out) const {
outputValue(out, std::make_tuple(file, location, name));
}
}; // struct Location
struct LocalName : Predicate<std::string> {
static const char* GLEAN_name() {
return "scip.LocalName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct LocalName
struct IsImplemented : Predicate<std::tuple<Fact<Symbol>, Fact<Symbol>>> {
static const char* GLEAN_name() {
return "scip.IsImplemented";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct IsImplemented
struct IsImplementation : Predicate<std::tuple<Fact<Symbol>, Fact<Symbol>>> {
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_<facebook::glean::cpp::schema::Scip::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>>;
};
namespace schema {
namespace Scip {
struct Entity {
boost::variant<Alt<0, SomeEntity>, 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
struct EntityDefinition : Predicate<std::tuple<Entity, Fact<Definition>>> {
static const char* GLEAN_name() {
return "scip.EntityDefinition";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EntityDefinition
struct EntityLocation : Predicate<std::tuple<Entity, Location>> {
static const char* GLEAN_name() {
return "scip.EntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EntityLocation
struct EntityUses : Predicate<std::tuple<Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Location, Entity>> {
static const char* GLEAN_name() {
return "scip.ResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ResolveLocation
struct SearchBySymbol : Predicate<std::tuple<Fact<Symbol>, Entity>> {
static const char* GLEAN_name() {
return "scip.SearchBySymbol";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchBySymbol
struct Documentation : Predicate<std::string> {
static const char* GLEAN_name() {
return "scip.Documentation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Documentation
struct DisplayNameSymbol : Predicate<std::tuple<Fact<DisplayName>, Fact<Symbol>>> {
static const char* GLEAN_name() {
return "scip.DisplayNameSymbol";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DisplayNameSymbol
struct DisplayName : Predicate<std::string> {
static const char* GLEAN_name() {
return "scip.DisplayName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DisplayName
struct DefinitionUses : Predicate<std::tuple<Fact<Definition>, Fact<Reference>>> {
static const char* GLEAN_name() {
return "scip.DefinitionUses";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionUses
struct DefinitionName : Predicate<std::tuple<Fact<Definition>, Fact<LocalName>>> {
static const char* GLEAN_name() {
return "scip.DefinitionName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionName
struct DefinitionDocumentation : Predicate<std::tuple<Fact<Definition>, Fact<Documentation>>> {
static const char* GLEAN_name() {
return "scip.DefinitionDocumentation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionDocumentation
struct Definition : Predicate<std::tuple<Fact<Symbol>, Fact<FileRange>>> {
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<std::string> {
static const char* GLEAN_name() {
return "python.branches.Root";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Root
struct FileToRoot : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Root>>> {
static const char* GLEAN_name() {
return "python.branches.FileToRoot";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileToRoot
struct DirectXRefByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<facebook::glean::cpp::schema::Python::DeclarationLocation>, 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<std::tuple<Fact<Name>, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
static const char* GLEAN_name() {
return "python.XRefsViaNameByTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct XRefsViaNameByTarget
struct XRefsViaName : Predicate<std::tuple<Fact<Name>, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Python::XRefViaName> {
using Type = Tuple<facebook::glean::cpp::schema::Python::Name, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
namespace schema {
namespace Python {
struct XRefViaName {
Fact<Name> 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<Repr<XRefViaName>> out) const {
outputValue(out, std::make_tuple(target, source));
}
}; // struct XRefViaName
struct XRefsViaNameByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRefViaName>>> {
static const char* GLEAN_name() {
return "python.XRefsViaNameByFile";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct XRefsViaNameByFile
struct VariableDeclaration : Predicate<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "python.VariableDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct VariableDeclaration
struct VariableBySName : Predicate<Fact<SName>, Fact<VariableDeclaration>> {
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_<facebook::glean::cpp::schema::Python::TypeInfo> {
using Type = Tuple<facebook::glean::cpp::schema::Python::Type, Array<Repr<facebook::glean::cpp::schema::Python::XRefViaName>>>;
};
namespace schema {
namespace Python {
struct TypeInfo {
Fact<Type> displayType;
std::vector<XRefViaName> 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<Repr<TypeInfo>> out) const {
outputValue(out, std::make_tuple(displayType, xrefs));
}
}; // struct TypeInfo
struct Type : Predicate<std::string> {
static const char* GLEAN_name() {
return "python.Type";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Type
struct StringLiteral : Predicate<std::string> {
static const char* GLEAN_name() {
return "python.StringLiteral";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct StringLiteral
struct SearchVariableByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<VariableDeclaration>>> {
static const char* GLEAN_name() {
return "python.SearchVariableByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchVariableByName
struct SearchVariableByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchVariableByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchVariableByLowerCaseName
struct SearchModuleByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<Module>>> {
static const char* GLEAN_name() {
return "python.SearchModuleByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchModuleByName
struct SearchModuleByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchModuleByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchModuleByLowerCaseName
struct SearchMethodByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "python.SearchMethodByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchMethodByName
struct SearchMethodByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchMethodByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchMethodByLowerCaseName
struct SearchFunctionByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "python.SearchFunctionByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchFunctionByName
struct SearchFunctionByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchFunctionByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchFunctionByLowerCaseName
struct SearchFieldByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<VariableDeclaration>>> {
static const char* GLEAN_name() {
return "python.SearchFieldByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchFieldByName
struct SearchFieldByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchFieldByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchFieldByLowerCaseName
struct SearchClassByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>, Fact<ClassDeclaration>>> {
static const char* GLEAN_name() {
return "python.SearchClassByName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchClassByName
struct SearchClassByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "python.SearchClassByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchClassByLowerCaseName
struct SNameToName : Predicate<Fact<SName>, Fact<Name>> {
static const char* GLEAN_name() {
return "python.SNameToName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SNameToName
struct SName : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SName>>>>> {
static const char* GLEAN_name() {
return "python.SName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SName
struct ResolveOriginalName : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
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_<facebook::glean::cpp::schema::Python::Parameter> {
using Type = Tuple<facebook::glean::cpp::schema::Python::Name, Maybe<Repr<facebook::glean::cpp::schema::Python::TypeInfo>>, Maybe<String>>;
};
namespace schema {
namespace Python {
struct Parameter {
Fact<Name> name;
boost::variant<Alt<0, std::tuple<>>, Alt<1, TypeInfo>> typeInfo;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<Parameter>> out) const {
outputValue(out, std::make_tuple(name, typeInfo, value));
}
}; // struct Parameter
struct NameToSName : Predicate<Fact<Name>, Fact<SName>> {
static const char* GLEAN_name() {
return "python.NameToSName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct NameToSName
struct Name : Predicate<std::string> {
static const char* GLEAN_name() {
return "python.Name";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Name
struct ModuleDefinition : Predicate<std::tuple<Fact<Module>>> {
static const char* GLEAN_name() {
return "python.ModuleDefinition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ModuleDefinition
struct ModuleBySName : Predicate<Fact<SName>, Fact<Module>> {
static const char* GLEAN_name() {
return "python.ModuleBySName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ModuleBySName
struct Module : Predicate<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "python.Module";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Module
struct MethodOverrides : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "python.MethodOverrides";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct MethodOverrides
struct MethodOverriden : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "python.MethodOverriden";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct MethodOverriden
struct MethodByLocalNameStr : Predicate<std::tuple<Fact<ClassDeclaration>, std::string, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "python.MethodByLocalNameStr";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct MethodByLocalNameStr
struct ImportStatementByAsSName : Predicate<std::tuple<Fact<SName>, Fact<ImportStatement>>> {
static const char* GLEAN_name() {
return "python.ImportStatementByAsSName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ImportStatementByAsSName
struct ImportStatementByAsName : Predicate<std::tuple<Fact<Name>, Fact<ImportStatement>>> {
static const char* GLEAN_name() {
return "python.ImportStatementByAsName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ImportStatementByAsName
struct ImportStatement : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
static const char* GLEAN_name() {
return "python.ImportStatement";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ImportStatement
struct ImportStarsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, Fact<ImportStarStatement>>> {
static const char* GLEAN_name() {
return "python.ImportStarsByFile";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ImportStarsByFile
struct ImportStarStatement : Predicate<std::tuple<Fact<Name>, Fact<Module>>> {
static const char* GLEAN_name() {
return "python.ImportStarStatement";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ImportStarStatement
struct ImportStarLocation : Predicate<std::tuple<Fact<ImportStarStatement>, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "python.FunctionDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FunctionDeclaration
struct FunctionBySName : Predicate<Fact<SName>, Fact<FunctionDeclaration>> {
static const char* GLEAN_name() {
return "python.FunctionBySName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FunctionBySName
struct DerivedClassToBase : Predicate<std::tuple<Fact<ClassDeclaration>, Fact<ClassDeclaration>>> {
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_<facebook::glean::cpp::schema::Python::Definition> {
using Type = Sum<facebook::glean::cpp::schema::Python::ClassDefinition, facebook::glean::cpp::schema::Python::FunctionDefinition, facebook::glean::cpp::schema::Python::VariableDefinition, facebook::glean::cpp::schema::Python::ModuleDefinition>;
};
namespace schema {
namespace Python {
struct Definition {
boost::variant<Alt<0, Fact<ClassDefinition>>, Alt<1, Fact<FunctionDefinition>>, Alt<2, Fact<VariableDefinition>>, Alt<3, Fact<ModuleDefinition>>> GLEAN_value;
static Definition cls(const Fact<ClassDefinition>& a) {
return Definition{Alt<0, Fact<ClassDefinition>>(a)};
}
static Definition func(const Fact<FunctionDefinition>& a) {
return Definition{Alt<1, Fact<FunctionDefinition>>(a)};
}
static Definition variable(const Fact<VariableDefinition>& a) {
return Definition{Alt<2, Fact<VariableDefinition>>(a)};
}
static Definition module(const Fact<ModuleDefinition>& a) {
return Definition{Alt<3, Fact<ModuleDefinition>>(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<Repr<Definition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Definition
struct DefinitionLocation : Predicate<std::tuple<Definition, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<Definition> {
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_<facebook::glean::cpp::schema::Python::DeclarationContainer> {
using Type = Sum<facebook::glean::cpp::schema::Python::Module, facebook::glean::cpp::schema::Python::ClassDeclaration, facebook::glean::cpp::schema::Python::FunctionDeclaration>;
};
namespace schema {
namespace Python {
struct DeclarationContainer {
boost::variant<Alt<0, Fact<Module>>, Alt<1, Fact<ClassDeclaration>>, Alt<2, Fact<FunctionDeclaration>>> GLEAN_value;
static DeclarationContainer module(const Fact<Module>& a) {
return DeclarationContainer{Alt<0, Fact<Module>>(a)};
}
static DeclarationContainer cls(const Fact<ClassDeclaration>& a) {
return DeclarationContainer{Alt<1, Fact<ClassDeclaration>>(a)};
}
static DeclarationContainer func(const Fact<FunctionDeclaration>& a) {
return DeclarationContainer{Alt<2, Fact<FunctionDeclaration>>(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<Repr<DeclarationContainer>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct DeclarationContainer
struct FunctionDefinition : Predicate<std::tuple<Fact<FunctionDeclaration>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, TypeInfo>>, std::vector<Parameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Parameter>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Parameter>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Parameter>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Parameter>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Decorator>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, DeclarationContainer>>>> {
static const char* GLEAN_name() {
return "python.FunctionDefinition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FunctionDefinition
struct VariableDefinition : Predicate<std::tuple<Fact<VariableDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, TypeInfo>>, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Python::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Python::ClassDeclaration, facebook::glean::cpp::schema::Python::FunctionDeclaration, facebook::glean::cpp::schema::Python::VariableDeclaration, facebook::glean::cpp::schema::Python::ImportStatement, facebook::glean::cpp::schema::Python::Module>;
};
namespace schema {
namespace Python {
struct Declaration {
boost::variant<Alt<0, Fact<ClassDeclaration>>, Alt<1, Fact<FunctionDeclaration>>, Alt<2, Fact<VariableDeclaration>>, Alt<3, Fact<ImportStatement>>, Alt<4, Fact<Module>>> GLEAN_value;
static Declaration cls(const Fact<ClassDeclaration>& a) {
return Declaration{Alt<0, Fact<ClassDeclaration>>(a)};
}
static Declaration func(const Fact<FunctionDeclaration>& a) {
return Declaration{Alt<1, Fact<FunctionDeclaration>>(a)};
}
static Declaration variable(const Fact<VariableDeclaration>& a) {
return Declaration{Alt<2, Fact<VariableDeclaration>>(a)};
}
static Declaration imp(const Fact<ImportStatement>& a) {
return Declaration{Alt<3, Fact<ImportStatement>>(a)};
}
static Declaration module(const Fact<Module>& a) {
return Declaration{Alt<4, Fact<Module>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationDefinition : Predicate<std::tuple<Declaration, Definition>> {
static const char* GLEAN_name() {
return "python.DeclarationDefinition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationDefinition
struct DeclarationDocstring : Predicate<std::tuple<Declaration, facebook::glean::cpp::schema::Src::ByteSpan, std::string>> {
static const char* GLEAN_name() {
return "python.DeclarationDocstring";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationDocstring
struct DeclarationLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "python.DeclarationReference";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationReference
struct DeclarationToName : Predicate<Declaration, Fact<Name>> {
static const char* GLEAN_name() {
return "python.DeclarationToName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationToName
struct DeclarationUses : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Name>, Declaration>> {
static const char* GLEAN_name() {
return "python.DeclarationWithLocalName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationWithLocalName
struct DeclarationWithName : Predicate<std::tuple<Fact<Name>, Declaration>> {
static const char* GLEAN_name() {
return "python.DeclarationWithName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationWithName
struct DeclarationWithSName : Predicate<std::tuple<Fact<SName>, Declaration>> {
static const char* GLEAN_name() {
return "python.DeclarationWithSName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DeclarationWithSName
struct DeclarationsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Definition, Declaration>> {
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_<facebook::glean::cpp::schema::Python::DirectXRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Python::Declaration>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
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<Repr<DirectXRef>> out) const {
outputValue(out, std::make_tuple(target, source));
}
}; // struct DirectXRef
struct DirectXRefsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, DirectXRef>> {
static const char* GLEAN_name() {
return "python.DirectXRefsByFile";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct DirectXRefsByFile
struct IsAbstract : Predicate<Declaration> {
static const char* GLEAN_name() {
return "python.IsAbstract";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct IsAbstract
struct IsTopLevelDeclaration : Predicate<Declaration> {
static const char* GLEAN_name() {
return "python.IsTopLevelDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct IsTopLevelDeclaration
struct NonImportDeclaration : Predicate<Declaration> {
static const char* GLEAN_name() {
return "python.NonImportDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct NonImportDeclaration
struct SNameWithDeclaration : Predicate<std::tuple<Declaration, Fact<SName>>> {
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_<facebook::glean::cpp::schema::Yaml::XRefViaName> {
using Type = Tuple<facebook::glean::cpp::schema::Python::Name, Repr<facebook::glean::cpp::schema::Src::ByteSpan>, Maybe<Repr<facebook::glean::cpp::schema::Python::Declaration>>>;
};
namespace schema {
namespace Yaml {
struct XRefViaName {
Fact<facebook::glean::cpp::schema::Python::Name> target;
facebook::glean::cpp::schema::Src::ByteSpan source;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<XRefViaName>> out) const {
outputValue(out, std::make_tuple(target, source, decl));
}
}; // struct XRefViaName
struct XRefsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRefViaName>>> {
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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "python.Contains";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Contains
struct ContainingTopLevelDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "python.ContainingTopLevelDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ContainingTopLevelDeclaration
struct ContainedByTopLevelDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "python.ContainedByTopLevelDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ContainedByTopLevelDeclaration
struct ContainedBy : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "python.ContainedBy";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ContainedBy
struct ClassDefinition : Predicate<std::tuple<Fact<ClassDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Fact<ClassDeclaration>>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Parameter>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Decorator>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, DeclarationContainer>>>> {
static const char* GLEAN_name() {
return "python.ClassDefinition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ClassDefinition
struct ClassDeclaration : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Fact<Name>>>>>> {
static const char* GLEAN_name() {
return "python.ClassDeclaration";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ClassDeclaration
struct ClassBySName : Predicate<Fact<SName>, Fact<ClassDeclaration>> {
static const char* GLEAN_name() {
return "python.ClassBySName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct ClassBySName
struct CalleeToCaller : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
static const char* GLEAN_name() {
return "python.CalleeToCaller";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CalleeToCaller
struct BaseClassToDerived : Predicate<std::tuple<Fact<ClassDeclaration>, Fact<ClassDeclaration>>> {
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_<facebook::glean::cpp::schema::Python::Argument> {
using Type = Sum<facebook::glean::cpp::schema::Python::StringLiteral>;
};
namespace schema {
namespace Python {
struct Argument {
boost::variant<Alt<0, Fact<StringLiteral>>> GLEAN_value;
static Argument lit(const Fact<StringLiteral>& a) {
return Argument{Alt<0, Fact<StringLiteral>>(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<Repr<Argument>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Argument
} // namespace Python
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Python::CallArgument> {
using Type = Tuple<Maybe<facebook::glean::cpp::schema::Python::Name>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>, Maybe<Repr<facebook::glean::cpp::schema::Python::Argument>>>;
};
namespace schema {
namespace Python {
struct CallArgument {
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Name>>> label;
facebook::glean::cpp::schema::Src::ByteSpan span;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<CallArgument>> out) const {
outputValue(out, std::make_tuple(label, span, argument));
}
}; // struct CallArgument
struct FileCall : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, std::vector<CallArgument>>> {
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<std::tuple<Fact<Macro>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<Macro>, 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<std::string> {
static const char* GLEAN_name() {
return "pp1.Macro";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Macro
struct Include : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Define>, Fact<Use>>> {
static const char* GLEAN_name() {
return "pp1.DefineUse";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefineUse
struct DefineLowerCase : Predicate<std::tuple<std::string, Fact<Define>>> {
static const char* GLEAN_name() {
return "pp1.DefineLowerCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefineLowerCase
struct Define : Predicate<std::tuple<Fact<Macro>, 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_<facebook::glean::cpp::schema::Lsif::Types::ToolInfo> {
using Type = Tuple<String, Array<String>, Maybe<String>>;
};
namespace schema {
namespace Lsif {
namespace Types {
struct ToolInfo {
std::string toolName;
std::vector<std::string> toolArgs;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<ToolInfo>> out) const {
outputValue(out, std::make_tuple(toolName, toolArgs, version));
}
}; // struct ToolInfo
} // namespace Types
} // namespace Lsif
namespace Scip {
struct Metadata : Predicate<std::tuple<ProtocolVersion, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Lsif::Types::SymbolKind> {
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<std::tuple<Entity, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "scip.EntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EntityKind
struct SearchByNameKind : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<Symbol>, 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_<facebook::glean::cpp::schema::Lsif::Types::RangeSpan> {
using Type = Tuple<Nat, Nat, Nat, Nat>;
};
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<Repr<RangeSpan>> out) const {
outputValue(out, std::make_tuple(lineBegin, columnBegin, lineEnd, columnEnd));
}
}; // struct RangeSpan
struct ToSrcRange : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact<Definition>>> {
static const char* GLEAN_name() {
return "scip.DefinitionLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionLocation
struct FileRange : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact<Symbol>>> {
static const char* GLEAN_name() {
return "scip.FileXLangSymbolRef";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileXLangSymbolRef
struct ReferenceLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Lsif::Types::RangeSpan, Fact<Reference>>> {
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_<facebook::glean::cpp::schema::Lsif::Types::LanguageId> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Lsif::Types::LanguageId, Fact<Definition>, 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<std::tuple<facebook::glean::cpp::schema::Src::Range, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Lsif::SomeEntity> {
using Type = Sum<facebook::glean::cpp::schema::Lsif::Declaration, facebook::glean::cpp::schema::Lsif::DefinitionMoniker>;
};
namespace schema {
namespace Lsif {
struct SomeEntity {
boost::variant<Alt<0, Fact<Declaration>>, Alt<1, Fact<DefinitionMoniker>>> GLEAN_value;
static SomeEntity decl(const Fact<Declaration>& a) {
return SomeEntity{Alt<0, Fact<Declaration>>(a)};
}
static SomeEntity defn(const Fact<DefinitionMoniker>& a) {
return SomeEntity{Alt<1, Fact<DefinitionMoniker>>(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<Repr<SomeEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct SomeEntity
struct Reference : Predicate<std::tuple<Fact<Document>, Fact<Range>, Fact<Definition>>> {
static const char* GLEAN_name() {
return "lsif.Reference";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Reference
struct Range : Predicate<std::tuple<facebook::glean::cpp::schema::Lsif::Types::RangeSpan, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Lsif::Types::RangeSpan>>, Fact<Name>>> {
static const char* GLEAN_name() {
return "lsif.Range";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Range
struct ProjectDocument : Predicate<std::tuple<Fact<Document>, Fact<Project>>> {
static const char* GLEAN_name() {
return "lsif.ProjectDocument";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ProjectDocument
struct Project : Predicate<std::tuple<facebook::glean::cpp::schema::Lsif::Types::LanguageId>> {
static const char* GLEAN_name() {
return "lsif.Project";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Project
struct PackageInformation : Predicate<std::tuple<std::string, std::string, std::string>> {
static const char* GLEAN_name() {
return "lsif.PackageInformation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PackageInformation
struct NameLowerCase : Predicate<std::tuple<std::string, Fact<Name>>> {
static const char* GLEAN_name() {
return "lsif.NameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct NameLowerCase
struct NameDefinition : Predicate<std::tuple<Fact<Name>, Fact<DefinitionMoniker>>> {
static const char* GLEAN_name() {
return "lsif.NameDefinition";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct NameDefinition
struct Name : Predicate<std::string> {
static const char* GLEAN_name() {
return "lsif.Name";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Name
struct MonikerSymbolKind : Predicate<std::tuple<Fact<Moniker>, 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<std::string> {
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_<facebook::glean::cpp::schema::Lsif::MonikerKind> {
using Type = Enum<4>;
};
namespace schema {
namespace Lsif {
enum class MonikerKind { Export, Local, Import, Implementation };
struct MonikerId : Predicate<std::string> {
static const char* GLEAN_name() {
return "lsif.MonikerId";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct MonikerId
struct MonikerDefinition : Predicate<std::tuple<Fact<MonikerId>, Fact<Moniker>, Fact<Definition>>> {
static const char* GLEAN_name() {
return "lsif.MonikerDefinition";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct MonikerDefinition
struct Moniker : Predicate<std::tuple<MonikerKind, Fact<MonikerScheme>, Fact<MonikerId>>> {
static const char* GLEAN_name() {
return "lsif.Moniker";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Moniker
struct Metadata : Predicate<std::tuple<std::string, std::string, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Lsif::Location> {
using Type = Tuple<String, facebook::glean::cpp::schema::Src::File, Repr<facebook::glean::cpp::schema::Src::Range>>;
};
namespace schema {
namespace Lsif {
struct Location {
std::string name;
Fact<facebook::glean::cpp::schema::Src::File> 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<Repr<Location>> out) const {
outputValue(out, std::make_tuple(name, file, location));
}
}; // struct Location
struct HoverText : Predicate<std::string> {
static const char* GLEAN_name() {
return "lsif.HoverText";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HoverText
struct HoverContent : Predicate<std::tuple<Fact<HoverText>, 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_<facebook::glean::cpp::schema::Lsif::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>>;
};
namespace schema {
namespace Lsif {
struct Entity {
boost::variant<Alt<0, SomeEntity>, 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
struct EntityDefinition : Predicate<std::tuple<Entity, Fact<DefinitionMoniker>>> {
static const char* GLEAN_name() {
return "lsif.EntityDefinition";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct EntityDefinition
struct EntityKind : Predicate<std::tuple<Entity, facebook::glean::cpp::schema::Lsif::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "lsif.EntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct EntityKind
struct EntityLocation : Predicate<std::tuple<Entity, Location>> {
static const char* GLEAN_name() {
return "lsif.EntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct EntityLocation
struct EntityUses : Predicate<std::tuple<Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Location, Entity>> {
static const char* GLEAN_name() {
return "lsif.ResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ResolveLocation
struct SearchByExactLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Name>, 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<std::tuple<Fact<MonikerId>, Entity>> {
static const char* GLEAN_name() {
return "lsif.SearchByMoniker";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct SearchByMoniker
struct SearchByName : Predicate<std::tuple<Fact<Name>, Entity>> {
static const char* GLEAN_name() {
return "lsif.SearchByName";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct SearchByName
struct SearchNonLocalByLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Name>, Entity>> {
static const char* GLEAN_name() {
return "lsif.SearchNonLocalByLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct SearchNonLocalByLocation
struct TagDefinition : Predicate<std::tuple<facebook::glean::cpp::schema::Lsif::Types::LanguageId, Fact<DefinitionMoniker>, Entity>> {
static const char* GLEAN_name() {
return "lsif.TagDefinition";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct TagDefinition
struct Document : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Definition>, Fact<Document>, Fact<Range>>> {
static const char* GLEAN_name() {
return "lsif.DefinitionUse";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct DefinitionUse
struct DefinitionMoniker : Predicate<std::tuple<Fact<Definition>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Moniker>>>>> {
static const char* GLEAN_name() {
return "lsif.DefinitionMoniker";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct DefinitionMoniker
struct DefinitionLocation : Predicate<std::tuple<Fact<Definition>, Location>> {
static const char* GLEAN_name() {
return "lsif.DefinitionLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct DefinitionLocation
struct DefinitionKind : Predicate<std::tuple<Fact<Definition>, 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<std::tuple<Fact<Definition>, Fact<HoverContent>>> {
static const char* GLEAN_name() {
return "lsif.DefinitionHover";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct DefinitionHover
struct Definition : Predicate<std::tuple<Fact<Document>, Fact<Range>>> {
static const char* GLEAN_name() {
return "lsif.Definition";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Definition
struct Declaration : Predicate<std::tuple<Fact<Document>, Fact<Range>>> {
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<std::tuple<Fact<VariableDeclaration>, Fact<MethodDeclaration>>> {
static const char* GLEAN_name() {
return "kotlin.alpha.VariableParent";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct VariableParent
struct VariableDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Fact<Type>, Fact<DeclarationLocation>>> {
static const char* GLEAN_name() {
return "kotlin.alpha.VariableDeclaration";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct VariableDeclaration
struct TypeArg : Predicate<std::tuple<Fact<Type>>> {
static const char* GLEAN_name() {
return "kotlin.alpha.TypeArg";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct TypeArg
struct Type : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<DeclarationLocation>>>, std::vector<Fact<TypeArg>>, bool>> {
static const char* GLEAN_name() {
return "kotlin.alpha.Type";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct Type
struct DeclarationLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Kotlin::Alpha::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Kotlin::Alpha::ClassDeclaration, facebook::glean::cpp::schema::Kotlin::Alpha::MethodDeclaration, facebook::glean::cpp::schema::Kotlin::Alpha::VariableDeclaration>;
};
namespace schema {
namespace Kotlin {
namespace Alpha {
struct Declaration {
boost::variant<Alt<0, Fact<ClassDeclaration>>, Alt<1, Fact<MethodDeclaration>>, Alt<2, Fact<VariableDeclaration>>> GLEAN_value;
static Declaration class_(const Fact<ClassDeclaration>& a) {
return Declaration{Alt<0, Fact<ClassDeclaration>>(a)};
}
static Declaration method(const Fact<MethodDeclaration>& a) {
return Declaration{Alt<1, Fact<MethodDeclaration>>(a)};
}
static Declaration variable(const Fact<VariableDeclaration>& a) {
return Declaration{Alt<2, Fact<VariableDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationFileLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "kotlin.alpha.ExtendsDeclaration";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ExtendsDeclaration
struct FileDeclarations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Declaration>> {
static const char* GLEAN_name() {
return "kotlin.alpha.FileDeclarations";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FileDeclarations
struct MethodDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, std::vector<Fact<VariableDeclaration>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, facebook::glean::cpp::schema::Src::Loc, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<DeclarationLocation>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Declaration, Declaration>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, 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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "kotlin.alpha.ContainsDeclaration";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ContainsDeclaration
struct ClassMember : Predicate<std::tuple<Fact<ClassDeclaration>, Fact<MethodDeclaration>>> {
static const char* GLEAN_name() {
return "kotlin.alpha.ClassMember";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ClassMember
struct ClassDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, std::vector<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>>, Fact<DeclarationLocation>>> {
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<boost::variant<Alt<0, std::string>, Alt<1, Fact<Path>>, Alt<2, Fact<Type>>>> {
static const char* GLEAN_name() {
return "javakotlin.alpha.Type";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Type
struct QName : Predicate<std::tuple<Fact<Name>, Fact<Path>>> {
static const char* GLEAN_name() {
return "javakotlin.alpha.QName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct QName
struct Path : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Path>>>>> {
static const char* GLEAN_name() {
return "javakotlin.alpha.Path";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Path
struct NameLowerCase : Predicate<std::tuple<std::string, Fact<Name>>> {
static const char* GLEAN_name() {
return "javakotlin.alpha.NameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct NameLowerCase
struct Name : Predicate<std::string> {
static const char* GLEAN_name() {
return "javakotlin.alpha.Name";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Name
struct MethodName : Predicate<std::tuple<Fact<QName>, std::vector<Fact<Type>>>> {
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_<facebook::glean::cpp::schema::Java::Alpha::XRefTarget> {
using Type = Sum<facebook::glean::cpp::schema::Javakotlin::Alpha::QName, facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName, facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName, facebook::glean::cpp::schema::Javakotlin::Alpha::QName>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct XRefTarget {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>>, Alt<1, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>>, Alt<2, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>>, Alt<3, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>>> GLEAN_value;
static XRefTarget definition_(const Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>& a) {
return XRefTarget{Alt<0, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>>(a)};
}
static XRefTarget ctor_(const Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>& a) {
return XRefTarget{Alt<1, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>>(a)};
}
static XRefTarget method_(const Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>& a) {
return XRefTarget{Alt<2, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>>(a)};
}
static XRefTarget field_(const Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>& a) {
return XRefTarget{Alt<3, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>>(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<Repr<XRefTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefTarget
struct XRefFile : Predicate<std::tuple<Fact<XRef>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "java.alpha.XRefFile";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct XRefFile
struct XRef : Predicate<std::tuple<XRefTarget, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
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_<facebook::glean::cpp::schema::Java::Alpha::Wildcard> {
using Type = Sum<facebook::glean::cpp::schema::Java::Alpha::Type, facebook::glean::cpp::schema::Java::Alpha::Type, Bool>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct Wildcard {
boost::variant<Alt<0, Fact<Type>>, Alt<1, Fact<Type>>, Alt<2, bool>> GLEAN_value;
static Wildcard extends_(const Fact<Type>& a) {
return Wildcard{Alt<0, Fact<Type>>(a)};
}
static Wildcard super_(const Fact<Type>& a) {
return Wildcard{Alt<1, Fact<Type>>(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<Repr<Wildcard>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Wildcard
struct TypeVar : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, 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::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, std::vector<Fact<Type>>, 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<std::tuple<Fact<Type>, Fact<Type>>> {
static const char* GLEAN_name() {
return "java.alpha.TypeOfTypeArgs";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TypeOfTypeArgs
struct TypeArg : Predicate<boost::variant<Alt<0, Fact<Type>>, 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<std::tuple<std::string>> {
static const char* GLEAN_name() {
return "java.alpha.PrimitiveType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct PrimitiveType
struct PackageDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, std::vector<Fact<Annotation>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Path>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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_<facebook::glean::cpp::schema::Java::Alpha::Modifier> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Fact<Type>, std::vector<Fact<Annotation>>, std::vector<Modifier>, 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<std::tuple<Fact<Type>, Fact<ClassDeclaration>>> {
static const char* GLEAN_name() {
return "java.alpha.InterfaceInheritance";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct InterfaceInheritance
struct Inheritance : Predicate<std::tuple<Fact<Type>, Fact<ClassDeclaration>>> {
static const char* GLEAN_name() {
return "java.alpha.Inheritance";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Inheritance
struct ImportDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Path>, 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::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<Fact<XRef>>>> {
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_<facebook::glean::cpp::schema::Java::Alpha::ExecutableDefinition> {
using Type = Sum<facebook::glean::cpp::schema::Java::Alpha::ConstructorDeclaration, facebook::glean::cpp::schema::Java::Alpha::MethodDeclaration>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct ExecutableDefinition {
boost::variant<Alt<0, Fact<ConstructorDeclaration>>, Alt<1, Fact<MethodDeclaration>>> GLEAN_value;
static ExecutableDefinition constructor(const Fact<ConstructorDeclaration>& a) {
return ExecutableDefinition{Alt<0, Fact<ConstructorDeclaration>>(a)};
}
static ExecutableDefinition method(const Fact<MethodDeclaration>& a) {
return ExecutableDefinition{Alt<1, Fact<MethodDeclaration>>(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<Repr<ExecutableDefinition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ExecutableDefinition
struct ExecutableDefnLocation : Predicate<std::tuple<ExecutableDefinition, std::string, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Fact<Type>, std::vector<Fact<Annotation>>, std::vector<Modifier>, 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_<facebook::glean::cpp::schema::Java::Alpha::Definition> {
using Type = Sum<facebook::glean::cpp::schema::Java::Alpha::ClassDeclaration, facebook::glean::cpp::schema::Java::Alpha::InterfaceDeclaration, facebook::glean::cpp::schema::Java::Alpha::EnumDeclaration>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct Definition {
boost::variant<Alt<0, Fact<ClassDeclaration>>, Alt<1, Fact<InterfaceDeclaration>>, Alt<2, Fact<EnumDeclaration>>> GLEAN_value;
static Definition class_(const Fact<ClassDeclaration>& a) {
return Definition{Alt<0, Fact<ClassDeclaration>>(a)};
}
static Definition interface_(const Fact<InterfaceDeclaration>& a) {
return Definition{Alt<1, Fact<InterfaceDeclaration>>(a)};
}
static Definition enum_(const Fact<EnumDeclaration>& a) {
return Definition{Alt<2, Fact<EnumDeclaration>>(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<Repr<Definition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Definition
struct DefinitionLocation : Predicate<std::tuple<Definition, std::string, Fact<facebook::glean::cpp::schema::Src::File>, 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::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, std::vector<Fact<Annotation>>, std::vector<Modifier>, std::vector<Fact<Type>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Definition>>, facebook::glean::cpp::schema::Src::ByteSpan, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "java.alpha.EnumDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EnumDeclaration
struct FieldDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Fact<Type>, std::vector<Fact<Annotation>>, std::vector<Modifier>, 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::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, std::vector<Fact<Annotation>>, std::vector<Modifier>, std::vector<Fact<Type>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Definition>>, std::vector<Fact<TypeParam>>, facebook::glean::cpp::schema::Src::ByteSpan, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "java.alpha.InterfaceDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct InterfaceDeclaration
struct MethodDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, std::vector<Fact<ParameterDeclaration>>, Fact<Type>, std::vector<Fact<Annotation>>, std::vector<Modifier>, std::vector<Fact<TypeParam>>, std::vector<Fact<Type>>, 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_<facebook::glean::cpp::schema::Java::Alpha::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Java::Alpha::ParameterDeclaration, facebook::glean::cpp::schema::Java::Alpha::LocalDeclaration, facebook::glean::cpp::schema::Java::Alpha::FieldDeclaration, facebook::glean::cpp::schema::Java::Alpha::ConstructorDeclaration, facebook::glean::cpp::schema::Java::Alpha::MethodDeclaration, facebook::glean::cpp::schema::Java::Alpha::InterfaceDeclaration, facebook::glean::cpp::schema::Java::Alpha::ClassDeclaration, facebook::glean::cpp::schema::Java::Alpha::EnumDeclaration>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct Declaration {
boost::variant<Alt<0, Fact<ParameterDeclaration>>, Alt<1, Fact<LocalDeclaration>>, Alt<2, Fact<FieldDeclaration>>, Alt<3, Fact<ConstructorDeclaration>>, Alt<4, Fact<MethodDeclaration>>, Alt<5, Fact<InterfaceDeclaration>>, Alt<6, Fact<ClassDeclaration>>, Alt<7, Fact<EnumDeclaration>>> GLEAN_value;
static Declaration param(const Fact<ParameterDeclaration>& a) {
return Declaration{Alt<0, Fact<ParameterDeclaration>>(a)};
}
static Declaration local(const Fact<LocalDeclaration>& a) {
return Declaration{Alt<1, Fact<LocalDeclaration>>(a)};
}
static Declaration field(const Fact<FieldDeclaration>& a) {
return Declaration{Alt<2, Fact<FieldDeclaration>>(a)};
}
static Declaration ctor(const Fact<ConstructorDeclaration>& a) {
return Declaration{Alt<3, Fact<ConstructorDeclaration>>(a)};
}
static Declaration method(const Fact<MethodDeclaration>& a) {
return Declaration{Alt<4, Fact<MethodDeclaration>>(a)};
}
static Declaration interface_(const Fact<InterfaceDeclaration>& a) {
return Declaration{Alt<5, Fact<InterfaceDeclaration>>(a)};
}
static Declaration class_(const Fact<ClassDeclaration>& a) {
return Declaration{Alt<6, Fact<ClassDeclaration>>(a)};
}
static Declaration enum_(const Fact<EnumDeclaration>& a) {
return Declaration{Alt<7, Fact<EnumDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationAnnotations : Predicate<std::tuple<Declaration, std::vector<Fact<Annotation>>>> {
static const char* GLEAN_name() {
return "java.alpha.DeclarationAnnotations";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationAnnotations
struct DeclarationComment : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, std::string, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Fact<Type>>> {
static const char* GLEAN_name() {
return "java.alpha.DeclarationType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationType
struct DeclarationUses : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
static const char* GLEAN_name() {
return "java.alpha.DeclarationUses";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationUses
struct DeclarationXRefTarget : Predicate<std::tuple<Declaration, XRefTarget>> {
static const char* GLEAN_name() {
return "java.alpha.DeclarationXRefTarget";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationXRefTarget
struct ExtendedByDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.ExtendedByDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ExtendedByDeclaration
struct ExtendsDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.ExtendsDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ExtendsDeclaration
struct FileDeclarations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.FileDeclarations";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileDeclarations
struct ParentDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.ParentDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ParentDeclaration
struct QNameToDefinition : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.QNameToDefinition";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct QNameToDefinition
struct XRefOfType : Predicate<std::tuple<Fact<Type>, 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<std::tuple<XRefTarget, Declaration>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, 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<std::tuple<ExecutableDefinition, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.DeclOfExecutableDefn";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclOfExecutableDefn
struct DeclOfDefn : Predicate<std::tuple<Definition, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.DeclOfDefn";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclOfDefn
struct ContainsDeclaration : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "java.alpha.ContainsDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ContainsDeclaration
struct ConstructorDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, std::vector<Fact<ParameterDeclaration>>, std::vector<Fact<Annotation>>, std::vector<Modifier>, std::vector<Fact<TypeParam>>, std::vector<Fact<Type>>, 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::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, std::vector<Modifier>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, std::vector<Fact<Type>>, std::vector<Fact<Annotation>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Definition>>, std::vector<Fact<TypeParam>>, facebook::glean::cpp::schema::Src::ByteSpan, Fact<facebook::glean::cpp::schema::Src::File>>> {
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_<facebook::glean::cpp::schema::Java::Alpha::BaseType> {
using Type = Sum<facebook::glean::cpp::schema::Java::Alpha::ObjectType, facebook::glean::cpp::schema::Java::Alpha::PrimitiveType, facebook::glean::cpp::schema::Java::Alpha::TypeVar, facebook::glean::cpp::schema::Java::Alpha::ArrayType>;
};
namespace schema {
namespace Java {
namespace Alpha {
struct BaseType {
boost::variant<Alt<0, Fact<ObjectType>>, Alt<1, Fact<PrimitiveType>>, Alt<2, Fact<TypeVar>>, Alt<3, Fact<ArrayType>>> GLEAN_value;
static BaseType object(const Fact<ObjectType>& a) {
return BaseType{Alt<0, Fact<ObjectType>>(a)};
}
static BaseType primitive(const Fact<PrimitiveType>& a) {
return BaseType{Alt<1, Fact<PrimitiveType>>(a)};
}
static BaseType variable(const Fact<TypeVar>& a) {
return BaseType{Alt<2, Fact<TypeVar>>(a)};
}
static BaseType array(const Fact<ArrayType>& a) {
return BaseType{Alt<3, Fact<ArrayType>>(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<Repr<BaseType>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct BaseType
struct Type : Predicate<std::tuple<BaseType, std::vector<Fact<TypeArg>>, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Type>, 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<std::tuple<Fact<Type>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<Annotation>, Fact<ClassDeclaration>>> {
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<std::string, std::string> {
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<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<SigDecl>>>>> {
static const char* GLEAN_name() {
return "hs.ValBind";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ValBind
struct UnitName : Predicate<std::string> {
static const char* GLEAN_name() {
return "hs.UnitName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct UnitName
struct TypeSynDecl : Predicate<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "hs.TypeSynDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeSynDecl
struct TypeFamilyDecl : Predicate<std::tuple<Fact<Name>>> {
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_<facebook::glean::cpp::schema::Hs::TypeArg> {
using Type = Tuple<Bool, facebook::glean::cpp::schema::Hs::Type>;
};
namespace schema {
namespace Hs {
struct TypeArg {
bool visible;
Fact<Type> 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<Repr<TypeArg>> out) const {
outputValue(out, std::make_tuple(visible, ty));
}
}; // struct TypeArg
struct TyVarBind : Predicate<std::tuple<Fact<Name>>> {
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_<facebook::glean::cpp::schema::Hs::TupleSort> {
using Type = Enum<3>;
};
namespace schema {
namespace Hs {
enum class TupleSort { boxed, unboxed, constraint };
} // namespace Hs
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hs::TyConSort> {
using Type = Sum<Tuple<>, Tuple<Nat, Repr<facebook::glean::cpp::schema::Hs::TupleSort>>, Tuple<Nat>, Tuple<>>;
};
namespace schema {
namespace Hs {
struct TyConSort {
boost::variant<Alt<0, std::tuple<>>, Alt<1, std::tuple<uint64_t, TupleSort>>, Alt<2, std::tuple<uint64_t>>, 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<uint64_t, TupleSort>>(std::make_tuple(arity, sort))};
}
static TyConSort sum(const uint64_t& arity) {
return TyConSort{Alt<2, std::tuple<uint64_t>>(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<Repr<TyConSort>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct TyConSort
struct TyCon : Predicate<std::tuple<Fact<Name>, 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_<facebook::glean::cpp::schema::Hs::Specificity> {
using Type = Enum<2>;
};
namespace schema {
namespace Hs {
enum class Specificity { inferred, specified };
struct SourceModule : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Module>>> {
static const char* GLEAN_name() {
return "hs.SourceModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SourceModule
struct SigDecl : Predicate<std::tuple<Fact<Name>, 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_<facebook::glean::cpp::schema::Hs::RefTarget> {
using Type = Sum<facebook::glean::cpp::schema::Hs::Name, facebook::glean::cpp::schema::Hs::ModuleName>;
};
namespace schema {
namespace Hs {
struct RefTarget {
boost::variant<Alt<0, Fact<Name>>, Alt<1, Fact<ModuleName>>> GLEAN_value;
static RefTarget name(const Fact<Name>& a) {
return RefTarget{Alt<0, Fact<Name>>(a)};
}
static RefTarget modName(const Fact<ModuleName>& a) {
return RefTarget{Alt<1, Fact<ModuleName>>(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<Repr<RefTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct RefTarget
} // namespace Hs
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hs::RefKind> {
using Type = Enum<5>;
};
namespace schema {
namespace Hs {
enum class RefKind { importref, exportref, coderef, tydecl, instbind };
} // namespace Hs
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hs::RefSpan> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Hs::RefKind>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
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<Repr<RefSpan>> out) const {
outputValue(out, std::make_tuple(kind, span));
}
}; // struct RefSpan
struct XRef : Predicate<std::tuple<RefTarget, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<RefSpan>>> {
static const char* GLEAN_name() {
return "hs.XRef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct XRef
struct RecordFieldDecl : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
static const char* GLEAN_name() {
return "hs.RecordFieldDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct RecordFieldDecl
struct PatSynDecl : Predicate<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "hs.PatSynDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PatSynDecl
struct PatBind : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>>> {
static const char* GLEAN_name() {
return "hs.PatBind";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PatBind
struct OccNameLowerCase : Predicate<std::tuple<std::string, Fact<OccName>>> {
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_<facebook::glean::cpp::schema::Hs::Namespace> {
using Type = Enum<4>;
};
namespace schema {
namespace Hs {
enum class Namespace { var_, datacon, tyvar, tycon };
struct OccName : Predicate<std::tuple<std::string, Namespace>> {
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_<facebook::glean::cpp::schema::Hs::NameSort> {
using Type = Sum<Tuple<>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
namespace schema {
namespace Hs {
struct NameSort {
boost::variant<Alt<0, std::tuple<>>, 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<Repr<NameSort>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct NameSort
struct Name : Predicate<std::tuple<Fact<OccName>, Fact<Module>, NameSort>> {
static const char* GLEAN_name() {
return "hs.Name";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Name
struct ModuleSource : Predicate<std::tuple<Fact<Module>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "hs.ModuleSource";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleSource
struct ModuleName : Predicate<std::string> {
static const char* GLEAN_name() {
return "hs.ModuleName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleName
struct ModuleDeclarations : Predicate<std::tuple<Fact<Module>, std::set<Fact<Name>>, std::set<Fact<Name>>>> {
static const char* GLEAN_name() {
return "hs.ModuleDeclarations";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleDeclarations
struct Module : Predicate<std::tuple<Fact<ModuleName>, Fact<UnitName>>> {
static const char* GLEAN_name() {
return "hs.Module";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Module
struct MethDecl : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
static const char* GLEAN_name() {
return "hs.MethDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct MethDecl
struct LitType : Predicate<boost::variant<Alt<0, uint64_t>, 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<std::tuple<std::vector<Fact<InstanceBind>>, 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<std::tuple<Fact<InstanceBind>, boost::variant<Alt<0, Fact<InstanceDecl>>, Alt<1, Fact<ClassDecl>>>>> {
static const char* GLEAN_name() {
return "hs.InstanceBindToDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct InstanceBindToDecl
struct InstanceBind : Predicate<std::tuple<Fact<Name>, 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::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<Fact<XRef>>>> {
static const char* GLEAN_name() {
return "hs.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FileXRefs
struct DeclarationLocation : Predicate<std::tuple<Fact<Name>, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Hs::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Hs::ValBind, facebook::glean::cpp::schema::Hs::TypeFamilyDecl, facebook::glean::cpp::schema::Hs::TypeSynDecl, facebook::glean::cpp::schema::Hs::DataDecl, facebook::glean::cpp::schema::Hs::ConstrDecl, facebook::glean::cpp::schema::Hs::PatSynDecl, facebook::glean::cpp::schema::Hs::ClassDecl, facebook::glean::cpp::schema::Hs::MethDecl, facebook::glean::cpp::schema::Hs::InstanceDecl, facebook::glean::cpp::schema::Hs::PatBind, facebook::glean::cpp::schema::Hs::TyVarBind, facebook::glean::cpp::schema::Hs::RecordFieldDecl, facebook::glean::cpp::schema::Hs::SigDecl>;
};
namespace schema {
namespace Hs {
struct Declaration {
boost::variant<Alt<0, Fact<ValBind>>, Alt<1, Fact<TypeFamilyDecl>>, Alt<2, Fact<TypeSynDecl>>, Alt<3, Fact<DataDecl>>, Alt<4, Fact<ConstrDecl>>, Alt<5, Fact<PatSynDecl>>, Alt<6, Fact<ClassDecl>>, Alt<7, Fact<MethDecl>>, Alt<8, Fact<InstanceDecl>>, Alt<9, Fact<PatBind>>, Alt<10, Fact<TyVarBind>>, Alt<11, Fact<RecordFieldDecl>>, Alt<12, Fact<SigDecl>>> GLEAN_value;
static Declaration val(const Fact<ValBind>& a) {
return Declaration{Alt<0, Fact<ValBind>>(a)};
}
static Declaration typeFamily(const Fact<TypeFamilyDecl>& a) {
return Declaration{Alt<1, Fact<TypeFamilyDecl>>(a)};
}
static Declaration type_(const Fact<TypeSynDecl>& a) {
return Declaration{Alt<2, Fact<TypeSynDecl>>(a)};
}
static Declaration data(const Fact<DataDecl>& a) {
return Declaration{Alt<3, Fact<DataDecl>>(a)};
}
static Declaration con(const Fact<ConstrDecl>& a) {
return Declaration{Alt<4, Fact<ConstrDecl>>(a)};
}
static Declaration patSyn(const Fact<PatSynDecl>& a) {
return Declaration{Alt<5, Fact<PatSynDecl>>(a)};
}
static Declaration class_(const Fact<ClassDecl>& a) {
return Declaration{Alt<6, Fact<ClassDecl>>(a)};
}
static Declaration method(const Fact<MethDecl>& a) {
return Declaration{Alt<7, Fact<MethDecl>>(a)};
}
static Declaration instance(const Fact<InstanceDecl>& a) {
return Declaration{Alt<8, Fact<InstanceDecl>>(a)};
}
static Declaration patBind(const Fact<PatBind>& a) {
return Declaration{Alt<9, Fact<PatBind>>(a)};
}
static Declaration tyVarBind(const Fact<TyVarBind>& a) {
return Declaration{Alt<10, Fact<TyVarBind>>(a)};
}
static Declaration field(const Fact<RecordFieldDecl>& a) {
return Declaration{Alt<11, Fact<RecordFieldDecl>>(a)};
}
static Declaration sig(const Fact<SigDecl>& a) {
return Declaration{Alt<12, Fact<SigDecl>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationOfName : Predicate<std::tuple<Fact<Name>, Declaration>> {
static const char* GLEAN_name() {
return "hs.DeclarationOfName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclarationOfName
struct DeclarationSpan : Predicate<std::tuple<Declaration, facebook::glean::cpp::schema::Src::FileLocation>> {
static const char* GLEAN_name() {
return "hs.DeclarationSpan";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclarationSpan
struct DataDecl : Predicate<std::tuple<Fact<Name>, std::vector<Fact<ConstrDecl>>>> {
static const char* GLEAN_name() {
return "hs.DataDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DataDecl
struct ConstrDecl : Predicate<std::tuple<Fact<Name>, Fact<Name>, std::vector<Fact<RecordFieldDecl>>>> {
static const char* GLEAN_name() {
return "hs.ConstrDecl";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ConstrDecl
struct ClassDecl : Predicate<std::tuple<Fact<Name>, std::vector<Fact<MethDecl>>, std::vector<Fact<InstanceBind>>>> {
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_<facebook::glean::cpp::schema::Hs::ArgFlag> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Hs::Specificity>, Tuple<>>;
};
namespace schema {
namespace Hs {
struct ArgFlag {
boost::variant<Alt<0, Specificity>, 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<Repr<ArgFlag>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ArgFlag
struct Type : Predicate<boost::variant<Alt<0, TyVar>, Alt<1, std::tuple<Fact<Type>, std::vector<TypeArg>>>, Alt<2, std::tuple<Fact<TyCon>, std::vector<TypeArg>>>, Alt<3, std::tuple<TyVar, Fact<Type>, ArgFlag, Fact<Type>>>, Alt<4, std::tuple<Fact<Type>, Fact<Type>, Fact<Type>>>, Alt<5, std::tuple<Fact<Type>, Fact<Type>>>, Alt<6, Fact<LitType>>, Alt<7, Fact<Type>>, 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_<facebook::glean::cpp::schema::Hack::Visibility> {
using Type = Enum<4>;
};
namespace schema {
namespace Hack {
enum class Visibility { Private, Protected, Public, Internal };
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::Variance> {
using Type = Enum<3>;
};
namespace schema {
namespace Hack {
enum class Variance { Contravariant, Covariant, Invariant };
struct UserAttribute : Predicate<std::tuple<Fact<Name>, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<QName>>>>> {
static const char* GLEAN_name() {
return "hack.UserAttribute";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct UserAttribute
struct TypedefDeclaration : Predicate<std::tuple<Fact<QName>>> {
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_<facebook::glean::cpp::schema::Hack::TypeConstKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Hack {
enum class TypeConstKind { Abstract, Concrete, PartiallyAbstract };
struct TypeConstDefinition : Predicate<std::tuple<Fact<TypeConstDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, TypeConstKind, std::vector<Fact<UserAttribute>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>>> {
static const char* GLEAN_name() {
return "hack.TypeConstDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TypeConstDefinition
struct Type : Predicate<std::string> {
static const char* GLEAN_name() {
return "hack.Type";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Type
struct TraitDeclaration : Predicate<std::tuple<Fact<QName>>> {
static const char* GLEAN_name() {
return "hack.TraitDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TraitDeclaration
struct StringLiteral : Predicate<std::string> {
static const char* GLEAN_name() {
return "hack.StringLiteral";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StringLiteral
struct SearchTypedefByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchTypedefByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchTypedefByLowerCaseName
struct SearchTypeConstByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchTypeConstByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchTypeConstByLowerCaseName
struct SearchTraitByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchTraitByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchTraitByLowerCaseName
struct SearchPropertyByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchPropertyByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchPropertyByLowerCaseName
struct SearchNamespaceByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchNamespaceByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchNamespaceByLowerCaseName
struct SearchModuleByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchModuleByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchModuleByLowerCaseName
struct SearchMethodByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchMethodByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchMethodByLowerCaseName
struct SearchInterfaceByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchInterfaceByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchInterfaceByLowerCaseName
struct SearchGlobalConstByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchGlobalConstByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchGlobalConstByLowerCaseName
struct SearchFunctionByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchFunctionByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchFunctionByLowerCaseName
struct SearchEnumeratorByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchEnumeratorByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchEnumeratorByLowerCaseName
struct SearchEnumByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchEnumByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchEnumByLowerCaseName
struct SearchClassConstByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "hack.SearchClassConstByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchClassConstByLowerCaseName
struct SearchClassByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
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_<facebook::glean::cpp::schema::Hack::ReifyKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Hack {
enum class ReifyKind { Erased, Reified, SoftReified };
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::ReadonlyKind> {
using Type = Enum<1>;
};
namespace schema {
namespace Hack {
enum class ReadonlyKind { Readonly };
struct QName : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>>> {
static const char* GLEAN_name() {
return "hack.QName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct QName
struct PropertyDefinition : Predicate<std::tuple<Fact<PropertyDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, Visibility, bool, bool, bool, std::vector<Fact<UserAttribute>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>>> {
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_<facebook::glean::cpp::schema::Hack::Parameter> {
using Type = Tuple<facebook::glean::cpp::schema::Hack::Name, Maybe<facebook::glean::cpp::schema::Hack::Type>, Bool, Bool, Maybe<String>, Array<facebook::glean::cpp::schema::Hack::UserAttribute>, Maybe<facebook::glean::cpp::schema::Hack::TypeInfo>, Maybe<Repr<facebook::glean::cpp::schema::Hack::ReadonlyKind>>>;
};
namespace schema {
namespace Hack {
struct Parameter {
Fact<Name> name;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>> type;
bool isInout;
bool isVariadic;
boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>> defaultValue;
std::vector<Fact<UserAttribute>> attributes;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>> typeInfo;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<Parameter>> out) const {
outputValue(out, std::make_tuple(name, type, isInout, isVariadic, defaultValue, attributes, typeInfo, readonly));
}
}; // struct Parameter
struct Signature : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, std::vector<Parameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Fact<Context_>>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>>> {
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_<facebook::glean::cpp::schema::Hack::Occurrence> {
using Type = Sum<facebook::glean::cpp::schema::Hack::MethodOccurrence>;
};
namespace schema {
namespace Hack {
struct Occurrence {
boost::variant<Alt<0, Fact<MethodOccurrence>>> GLEAN_value;
static Occurrence method(const Fact<MethodOccurrence>& a) {
return Occurrence{Alt<0, Fact<MethodOccurrence>>(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<Repr<Occurrence>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Occurrence
struct NamespaceQName : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>>> {
static const char* GLEAN_name() {
return "hack.NamespaceQName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct NamespaceQName
struct NamespaceDeclaration : Predicate<std::tuple<Fact<NamespaceQName>>> {
static const char* GLEAN_name() {
return "hack.NamespaceDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct NamespaceDeclaration
struct NameLowerCase : Predicate<std::tuple<std::string, Fact<Name>>> {
static const char* GLEAN_name() {
return "hack.NameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct NameLowerCase
struct Name : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Hack::ModuleMembership> {
using Type = Tuple<facebook::glean::cpp::schema::Hack::ModuleDeclaration, Bool>;
};
namespace schema {
namespace Hack {
struct ModuleMembership {
Fact<ModuleDeclaration> 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<Repr<ModuleMembership>> out) const {
outputValue(out, std::make_tuple(declaration, internal));
}
}; // struct ModuleMembership
struct ModuleDefinition : Predicate<std::tuple<Fact<ModuleDeclaration>, std::vector<Fact<UserAttribute>>>> {
static const char* GLEAN_name() {
return "hack.ModuleDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ModuleDefinition
struct ModuleDeclaration : Predicate<std::tuple<Fact<Name>>> {
static const char* GLEAN_name() {
return "hack.ModuleDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ModuleDeclaration
struct MethodOverrides : Predicate<std::tuple<Fact<MethodDeclaration>, Fact<MethodDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, bool>>>> {
static const char* GLEAN_name() {
return "hack.MethodOverrides";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MethodOverrides
struct MethodOverridden : Predicate<std::tuple<Fact<MethodDeclaration>, Fact<MethodDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, bool>>>> {
static const char* GLEAN_name() {
return "hack.MethodOverridden";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MethodOverridden
struct MethodOccurrence : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Name>>>>> {
static const char* GLEAN_name() {
return "hack.MethodOccurrence";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MethodOccurrence
struct InterfaceDeclaration : Predicate<std::tuple<Fact<QName>>> {
static const char* GLEAN_name() {
return "hack.InterfaceDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct InterfaceDeclaration
struct IndexerInputsHash : Predicate<std::string, std::vector<uint8_t>> {
static const char* GLEAN_name() {
return "hack.IndexerInputsHash";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct IndexerInputsHash
struct GlobalNamespaceAlias : Predicate<std::tuple<Fact<Name>, Fact<NamespaceQName>>> {
static const char* GLEAN_name() {
return "hack.GlobalNamespaceAlias";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct GlobalNamespaceAlias
struct GlobalConstDefinition : Predicate<std::tuple<Fact<GlobalConstDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>>> {
static const char* GLEAN_name() {
return "hack.GlobalConstDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct GlobalConstDefinition
struct GlobalConstDeclaration : Predicate<std::tuple<Fact<QName>>> {
static const char* GLEAN_name() {
return "hack.GlobalConstDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct GlobalConstDeclaration
struct FunctionDeclaration : Predicate<std::tuple<Fact<QName>>> {
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_<facebook::glean::cpp::schema::Hack::FieldClassConst> {
using Type = Tuple<facebook::glean::cpp::schema::Hack::QName, facebook::glean::cpp::schema::Hack::Name>;
};
namespace schema {
namespace Hack {
struct FieldClassConst {
Fact<QName> container;
Fact<Name> 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<Repr<FieldClassConst>> out) const {
outputValue(out, std::make_tuple(container, name));
}
}; // struct FieldClassConst
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::ShapeKV> {
using Type = Tuple<Sum<String, String, Repr<facebook::glean::cpp::schema::Hack::FieldClassConst>>, facebook::glean::cpp::schema::Hack::Hint, Bool>;
};
namespace schema {
namespace Hack {
struct ShapeKV {
boost::variant<Alt<0, std::string>, Alt<1, std::string>, Alt<2, FieldClassConst>> key;
Fact<Hint> 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<Repr<ShapeKV>> out) const {
outputValue(out, std::make_tuple(key, value, opt));
}
}; // struct ShapeKV
struct Hint : Predicate<boost::variant<Alt<0, std::tuple<Fact<QName>, std::vector<Fact<Hint>>>>, Alt<1, Fact<Hint>>, Alt<2, Fact<Hint>>, Alt<3, std::tuple<std::vector<Fact<Hint>>, std::vector<Fact<Hint>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Hint>>>>>, Alt<4, Fact<Hint>>, Alt<5, std::tuple<bool, std::vector<ShapeKV>>>, Alt<6, Fact<Hint>>, Alt<7, std::vector<Fact<Hint>>>, Alt<8, std::vector<Fact<Hint>>>, Alt<9, std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Hint>>>, Fact<Hint>>>, Alt<10, Fact<Type>>, 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<Type>>>> {
static const char* GLEAN_name() {
return "hack.Hint";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Hint
struct Enumerator : Predicate<std::tuple<Fact<Name>, Fact<EnumDeclaration>>> {
static const char* GLEAN_name() {
return "hack.Enumerator";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Enumerator
struct EnumDefinition : Predicate<std::tuple<Fact<EnumDeclaration>, Fact<Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>, std::vector<Fact<Enumerator>>, std::vector<Fact<UserAttribute>>, std::vector<Fact<EnumDeclaration>>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>>> {
static const char* GLEAN_name() {
return "hack.EnumDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct EnumDefinition
struct EnumDeclaration : Predicate<std::tuple<Fact<QName>>> {
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_<facebook::glean::cpp::schema::Hack::Definition> {
using Type = Sum<facebook::glean::cpp::schema::Hack::ClassDefinition, facebook::glean::cpp::schema::Hack::ClassConstDefinition, facebook::glean::cpp::schema::Hack::EnumDefinition, facebook::glean::cpp::schema::Hack::FunctionDefinition, facebook::glean::cpp::schema::Hack::GlobalConstDefinition, facebook::glean::cpp::schema::Hack::InterfaceDefinition, facebook::glean::cpp::schema::Hack::TraitDefinition, facebook::glean::cpp::schema::Hack::MethodDefinition, facebook::glean::cpp::schema::Hack::PropertyDefinition, facebook::glean::cpp::schema::Hack::TypeConstDefinition, facebook::glean::cpp::schema::Hack::TypedefDefinition, facebook::glean::cpp::schema::Hack::ModuleDefinition>;
};
namespace schema {
namespace Hack {
struct Definition {
boost::variant<Alt<0, Fact<ClassDefinition>>, Alt<1, Fact<ClassConstDefinition>>, Alt<2, Fact<EnumDefinition>>, Alt<3, Fact<FunctionDefinition>>, Alt<4, Fact<GlobalConstDefinition>>, Alt<5, Fact<InterfaceDefinition>>, Alt<6, Fact<TraitDefinition>>, Alt<7, Fact<MethodDefinition>>, Alt<8, Fact<PropertyDefinition>>, Alt<9, Fact<TypeConstDefinition>>, Alt<10, Fact<TypedefDefinition>>, Alt<11, Fact<ModuleDefinition>>> GLEAN_value;
static Definition class_(const Fact<ClassDefinition>& a) {
return Definition{Alt<0, Fact<ClassDefinition>>(a)};
}
static Definition classConst(const Fact<ClassConstDefinition>& a) {
return Definition{Alt<1, Fact<ClassConstDefinition>>(a)};
}
static Definition enum_(const Fact<EnumDefinition>& a) {
return Definition{Alt<2, Fact<EnumDefinition>>(a)};
}
static Definition function_(const Fact<FunctionDefinition>& a) {
return Definition{Alt<3, Fact<FunctionDefinition>>(a)};
}
static Definition globalConst(const Fact<GlobalConstDefinition>& a) {
return Definition{Alt<4, Fact<GlobalConstDefinition>>(a)};
}
static Definition interface_(const Fact<InterfaceDefinition>& a) {
return Definition{Alt<5, Fact<InterfaceDefinition>>(a)};
}
static Definition trait(const Fact<TraitDefinition>& a) {
return Definition{Alt<6, Fact<TraitDefinition>>(a)};
}
static Definition method(const Fact<MethodDefinition>& a) {
return Definition{Alt<7, Fact<MethodDefinition>>(a)};
}
static Definition property_(const Fact<PropertyDefinition>& a) {
return Definition{Alt<8, Fact<PropertyDefinition>>(a)};
}
static Definition typeConst(const Fact<TypeConstDefinition>& a) {
return Definition{Alt<9, Fact<TypeConstDefinition>>(a)};
}
static Definition typedef_(const Fact<TypedefDefinition>& a) {
return Definition{Alt<10, Fact<TypedefDefinition>>(a)};
}
static Definition module(const Fact<ModuleDefinition>& a) {
return Definition{Alt<11, Fact<ModuleDefinition>>(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<Repr<Definition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Definition
struct Context_ : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Hack::ContainerDeclaration> {
using Type = Sum<facebook::glean::cpp::schema::Hack::ClassDeclaration, facebook::glean::cpp::schema::Hack::EnumDeclaration, facebook::glean::cpp::schema::Hack::InterfaceDeclaration, facebook::glean::cpp::schema::Hack::TraitDeclaration>;
};
namespace schema {
namespace Hack {
struct ContainerDeclaration {
boost::variant<Alt<0, Fact<ClassDeclaration>>, Alt<1, Fact<EnumDeclaration>>, Alt<2, Fact<InterfaceDeclaration>>, Alt<3, Fact<TraitDeclaration>>> GLEAN_value;
static ContainerDeclaration class_(const Fact<ClassDeclaration>& a) {
return ContainerDeclaration{Alt<0, Fact<ClassDeclaration>>(a)};
}
static ContainerDeclaration enum_(const Fact<EnumDeclaration>& a) {
return ContainerDeclaration{Alt<1, Fact<EnumDeclaration>>(a)};
}
static ContainerDeclaration interface_(const Fact<InterfaceDeclaration>& a) {
return ContainerDeclaration{Alt<2, Fact<InterfaceDeclaration>>(a)};
}
static ContainerDeclaration trait(const Fact<TraitDeclaration>& a) {
return ContainerDeclaration{Alt<3, Fact<TraitDeclaration>>(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<Repr<ContainerDeclaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ContainerDeclaration
struct ContainerDeclarationQName : Predicate<ContainerDeclaration, Fact<QName>> {
static const char* GLEAN_name() {
return "hack.ContainerDeclarationQName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ContainerDeclarationQName
struct ContainerParent : Predicate<std::tuple<ContainerDeclaration, ContainerDeclaration>> {
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_<facebook::glean::cpp::schema::Hack::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Hack::ClassConstDeclaration, Repr<facebook::glean::cpp::schema::Hack::ContainerDeclaration>, 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<0, Fact<ClassConstDeclaration>>, Alt<1, ContainerDeclaration>, Alt<2, Fact<Enumerator>>, Alt<3, Fact<FunctionDeclaration>>, Alt<4, Fact<GlobalConstDeclaration>>, Alt<5, Fact<NamespaceDeclaration>>, Alt<6, Fact<MethodDeclaration>>, Alt<7, Fact<PropertyDeclaration>>, Alt<8, Fact<TypeConstDeclaration>>, Alt<9, Fact<TypedefDeclaration>>, Alt<10, Fact<ModuleDeclaration>>> GLEAN_value;
static Declaration classConst(const Fact<ClassConstDeclaration>& a) {
return Declaration{Alt<0, Fact<ClassConstDeclaration>>(a)};
}
static Declaration container(const ContainerDeclaration& a) {
return Declaration{Alt<1, ContainerDeclaration>(a)};
}
static Declaration enumerator(const Fact<Enumerator>& a) {
return Declaration{Alt<2, Fact<Enumerator>>(a)};
}
static Declaration function_(const Fact<FunctionDeclaration>& a) {
return Declaration{Alt<3, Fact<FunctionDeclaration>>(a)};
}
static Declaration globalConst(const Fact<GlobalConstDeclaration>& a) {
return Declaration{Alt<4, Fact<GlobalConstDeclaration>>(a)};
}
static Declaration namespace_(const Fact<NamespaceDeclaration>& a) {
return Declaration{Alt<5, Fact<NamespaceDeclaration>>(a)};
}
static Declaration method(const Fact<MethodDeclaration>& a) {
return Declaration{Alt<6, Fact<MethodDeclaration>>(a)};
}
static Declaration property_(const Fact<PropertyDeclaration>& a) {
return Declaration{Alt<7, Fact<PropertyDeclaration>>(a)};
}
static Declaration typeConst(const Fact<TypeConstDeclaration>& a) {
return Declaration{Alt<8, Fact<TypeConstDeclaration>>(a)};
}
static Declaration typedef_(const Fact<TypedefDeclaration>& a) {
return Declaration{Alt<9, Fact<TypedefDeclaration>>(a)};
}
static Declaration module(const Fact<ModuleDeclaration>& a) {
return Declaration{Alt<10, Fact<ModuleDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationComment : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<Declaration, Fact<Name>> {
static const char* GLEAN_name() {
return "hack.DeclarationName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DeclarationName
struct DeclarationNamespace : Predicate<std::tuple<Declaration, Fact<NamespaceQName>>> {
static const char* GLEAN_name() {
return "hack.DeclarationNamespace";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DeclarationNamespace
struct DeclarationSource : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "hack.DeclarationSource";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DeclarationSource
struct DeclarationSpan : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "hack.DeclarationTarget";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DeclarationTarget
struct FileDeclarations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<Declaration>>> {
static const char* GLEAN_name() {
return "hack.FileDeclarations";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct FileDeclarations
struct MemberCluster : Predicate<std::tuple<std::vector<Declaration>>> {
static const char* GLEAN_name() {
return "hack.MemberCluster";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MemberCluster
struct ModuleChild : Predicate<std::tuple<Fact<ModuleDeclaration>, Declaration>> {
static const char* GLEAN_name() {
return "hack.ModuleChild";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ModuleChild
struct ModuleParent : Predicate<std::tuple<Declaration, Fact<ModuleDeclaration>>> {
static const char* GLEAN_name() {
return "hack.ModuleParent";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ModuleParent
struct NamespaceMember : Predicate<std::tuple<Fact<NamespaceQName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.NamespaceMember";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct NamespaceMember
struct SearchClassByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchClassByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchClassByName
struct SearchClassConstByName : Predicate<std::tuple<std::string, Fact<QName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchClassConstByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchClassConstByName
struct SearchEnumByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchEnumByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchEnumByName
struct SearchEnumeratorByName : Predicate<std::tuple<std::string, Fact<QName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchEnumeratorByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchEnumeratorByName
struct SearchFunctionByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchFunctionByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchFunctionByName
struct SearchGlobalConstByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchGlobalConstByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchGlobalConstByName
struct SearchInterfaceByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchInterfaceByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchInterfaceByName
struct SearchMethodByName : Predicate<std::tuple<std::string, Fact<QName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchMethodByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchMethodByName
struct SearchModuleByName : Predicate<std::tuple<std::string, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchModuleByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchModuleByName
struct SearchNamespaceByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchNamespaceByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchNamespaceByName
struct SearchPropertyByName : Predicate<std::tuple<std::string, Fact<QName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchPropertyByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchPropertyByName
struct SearchTraitByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchTraitByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchTraitByName
struct SearchTypeConstByName : Predicate<std::tuple<std::string, Fact<QName>, Declaration>> {
static const char* GLEAN_name() {
return "hack.SearchTypeConstByName";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SearchTypeConstByName
struct SearchTypedefByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, 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_<facebook::glean::cpp::schema::Hack::XRefTarget> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Hack::Declaration>, Repr<facebook::glean::cpp::schema::Hack::Occurrence>>;
};
namespace schema {
namespace Hack {
struct XRefTarget {
boost::variant<Alt<0, Declaration>, 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<Repr<XRefTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefTarget
struct TargetUses : Predicate<std::tuple<XRefTarget, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::RelByteSpan>>> {
static const char* GLEAN_name() {
return "hack.TargetUses";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TargetUses
struct TargetUsesAbs : Predicate<std::tuple<XRefTarget, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
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_<facebook::glean::cpp::schema::Hack::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Hack::XRefTarget>, Array<Repr<facebook::glean::cpp::schema::Src::RelByteSpan>>>;
};
namespace schema {
namespace Hack {
struct XRef {
XRefTarget target;
std::vector<facebook::glean::cpp::schema::Src::RelByteSpan> 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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(target, ranges));
}
}; // struct XRef
struct FileXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::set<XRef>>> {
static const char* GLEAN_name() {
return "hack.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct FileXRefs
struct TypeInfo : Predicate<std::tuple<Fact<Type>, std::vector<XRef>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Hint>>>>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, 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<std::tuple<ContainerDeclaration, std::vector<Fact<MemberCluster>>>> {
static const char* GLEAN_name() {
return "hack.InheritedMembers";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct InheritedMembers
struct MethodDeclaration : Predicate<std::tuple<Fact<Name>, ContainerDeclaration>> {
static const char* GLEAN_name() {
return "hack.MethodDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MethodDeclaration
struct PropertyDeclaration : Predicate<std::tuple<Fact<Name>, ContainerDeclaration>> {
static const char* GLEAN_name() {
return "hack.PropertyDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct PropertyDeclaration
struct TypeConstDeclaration : Predicate<std::tuple<Fact<Name>, ContainerDeclaration>> {
static const char* GLEAN_name() {
return "hack.TypeConstDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TypeConstDeclaration
struct ContainerChild : Predicate<std::tuple<ContainerDeclaration, ContainerDeclaration>> {
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_<facebook::glean::cpp::schema::Hack::ConstraintKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Hack {
enum class ConstraintKind { As, Equal, Super };
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::Constraint> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Hack::ConstraintKind>, facebook::glean::cpp::schema::Hack::Type, Maybe<facebook::glean::cpp::schema::Hack::TypeInfo>>;
};
namespace schema {
namespace Hack {
struct Constraint {
ConstraintKind constraintKind;
Fact<Type> type;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>> 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<Repr<Constraint>> out) const {
outputValue(out, std::make_tuple(constraintKind, type, typeInfo));
}
}; // struct Constraint
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::TypeParameter> {
using Type = Tuple<facebook::glean::cpp::schema::Hack::Name, Repr<facebook::glean::cpp::schema::Hack::Variance>, Repr<facebook::glean::cpp::schema::Hack::ReifyKind>, Array<Repr<facebook::glean::cpp::schema::Hack::Constraint>>, Array<facebook::glean::cpp::schema::Hack::UserAttribute>>;
};
namespace schema {
namespace Hack {
struct TypeParameter {
Fact<Name> name;
Variance variance;
ReifyKind reifyKind;
std::vector<Constraint> constraints;
std::vector<Fact<UserAttribute>> 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<Repr<TypeParameter>> out) const {
outputValue(out, std::make_tuple(name, variance, reifyKind, constraints, attributes));
}
}; // struct TypeParameter
struct FunctionDefinition : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<Signature>, bool, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>, boost::variant<Alt<0, std::tuple<>>, 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::tuple<Fact<InterfaceDeclaration>, std::vector<Declaration>, std::vector<Fact<InterfaceDeclaration>>, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, std::vector<Fact<ClassDeclaration>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>>> {
static const char* GLEAN_name() {
return "hack.InterfaceDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct InterfaceDefinition
struct MethodDefinition : Predicate<std::tuple<Fact<MethodDeclaration>, Fact<Signature>, Visibility, bool, bool, bool, bool, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, bool>>, boost::variant<Alt<0, std::tuple<>>, 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::tuple<Fact<TraitDeclaration>, std::vector<Declaration>, std::vector<Fact<InterfaceDeclaration>>, std::vector<Fact<TraitDeclaration>>, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, std::vector<Fact<ClassDeclaration>>, std::vector<Fact<InterfaceDeclaration>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::vector<Fact<ClassDeclaration>>>>>> {
static const char* GLEAN_name() {
return "hack.TraitDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TraitDefinition
struct TypedefDefinition : Predicate<std::tuple<Fact<TypedefDeclaration>, bool, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>>> {
static const char* GLEAN_name() {
return "hack.TypedefDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TypedefDefinition
struct ClassDefinition : Predicate<std::tuple<Fact<ClassDeclaration>, bool, bool, std::vector<Declaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<ClassDeclaration>>>, std::vector<Fact<InterfaceDeclaration>>, std::vector<Fact<TraitDeclaration>>, std::vector<Fact<UserAttribute>>, std::vector<TypeParameter>, boost::variant<Alt<0, std::tuple<>>, Alt<1, ModuleMembership>>>> {
static const char* GLEAN_name() {
return "hack.ClassDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ClassDefinition
struct ClassDeclaration : Predicate<std::tuple<Fact<QName>>> {
static const char* GLEAN_name() {
return "hack.ClassDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ClassDeclaration
struct ClassConstDefinition : Predicate<std::tuple<Fact<ClassConstDeclaration>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeInfo>>>>> {
static const char* GLEAN_name() {
return "hack.ClassConstDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ClassConstDefinition
struct ClassConstDeclaration : Predicate<std::tuple<Fact<Name>, ContainerDeclaration>> {
static const char* GLEAN_name() {
return "hack.ClassConstDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ClassConstDeclaration
struct AttributeToDefinition : Predicate<std::tuple<Fact<UserAttribute>, Definition>> {
static const char* GLEAN_name() {
return "hack.AttributeToDefinition";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct AttributeToDefinition
struct AttributeToDeclaration : Predicate<std::tuple<Fact<UserAttribute>, Declaration, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "hack.AttributeToDeclaration";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct AttributeToDeclaration
struct AttributeHasParameter : Predicate<std::tuple<Fact<Name>, std::string, Fact<UserAttribute>>> {
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_<facebook::glean::cpp::schema::Hack::Argument> {
using Type = Sum<facebook::glean::cpp::schema::Hack::StringLiteral, Repr<facebook::glean::cpp::schema::Hack::XRefTarget>>;
};
namespace schema {
namespace Hack {
struct Argument {
boost::variant<Alt<0, Fact<StringLiteral>>, Alt<1, XRefTarget>> GLEAN_value;
static Argument lit(const Fact<StringLiteral>& a) {
return Argument{Alt<0, Fact<StringLiteral>>(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<Repr<Argument>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Argument
} // namespace Hack
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Hack::CallArgument> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Src::RelByteSpan>, Maybe<Repr<facebook::glean::cpp::schema::Hack::Argument>>>;
};
namespace schema {
namespace Hack {
struct CallArgument {
facebook::glean::cpp::schema::Src::RelByteSpan span;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<CallArgument>> out) const {
outputValue(out, std::make_tuple(span, argument));
}
}; // struct CallArgument
struct FileCall : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, std::vector<CallArgument>, boost::variant<Alt<0, std::tuple<>>, Alt<1, XRefTarget>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, CallArgument>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Declaration>>, std::set<XRefTarget>>> {
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<std::tuple<Fact<Value>, Fact<Value>, std::vector<Fact<Directive>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Value>>>>> {
static const char* GLEAN_name() {
return "graphql.VariableDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct VariableDef
struct Value : Predicate<std::string> {
static const char* GLEAN_name() {
return "graphql.Value";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Value
struct UnionTypeDef : Predicate<std::tuple<Fact<Value>, std::vector<Fact<Value>>, std::vector<Fact<Directive>>>> {
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_<facebook::glean::cpp::schema::Graphql::SelectionSet> {
using Type = Tuple<Array<facebook::glean::cpp::schema::Graphql::Field>, Array<facebook::glean::cpp::schema::Graphql::InlineFragment>, Array<facebook::glean::cpp::schema::Graphql::FragmentSpread>>;
};
namespace schema {
namespace Graphql {
struct SelectionSet {
std::vector<Fact<Field>> fields;
std::vector<Fact<InlineFragment>> inlineFragments;
std::vector<Fact<FragmentSpread>> 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<Repr<SelectionSet>> out) const {
outputValue(out, std::make_tuple(fields, inlineFragments, fragmentSpreads));
}
}; // struct SelectionSet
struct ScalarTypeDef : Predicate<std::tuple<Fact<Value>, std::vector<Fact<Directive>>>> {
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_<facebook::glean::cpp::schema::Graphql::OperationKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Graphql {
enum class OperationKind { QUERY, MUTATION, SUBSCRIPTION };
struct Operation : Predicate<std::tuple<Fact<Value>, OperationKind, std::vector<Fact<Directive>>, std::vector<Fact<VariableDef>>, 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::tuple<Fact<Value>, std::vector<Fact<Value>>, std::vector<Fact<FieldDef>>, std::vector<Fact<Directive>>>> {
static const char* GLEAN_name() {
return "graphql.ObjectTypeDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ObjectTypeDef
using Name = Fact<Value>;
struct NameLowerCase : Predicate<std::tuple<std::string, Name>> {
static const char* GLEAN_name() {
return "graphql.NameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct NameLowerCase
struct InterfaceTypeDef : Predicate<std::tuple<Fact<Value>, std::vector<Fact<FieldDef>>, std::vector<Fact<Directive>>>> {
static const char* GLEAN_name() {
return "graphql.InterfaceTypeDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct InterfaceTypeDef
struct InputValueDef : Predicate<std::tuple<Fact<Value>, Fact<Value>, std::vector<Fact<Directive>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Value>>>>> {
static const char* GLEAN_name() {
return "graphql.InputValueDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct InputValueDef
struct InputObjectTypeDef : Predicate<std::tuple<Fact<Value>, std::vector<Fact<InputValueDef>>, std::vector<Fact<Directive>>>> {
static const char* GLEAN_name() {
return "graphql.InputObjectTypeDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct InputObjectTypeDef
struct InlineFragment : Predicate<std::tuple<Fact<Value>, std::vector<Fact<Directive>>, SelectionSet, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Value>>>>> {
static const char* GLEAN_name() {
return "graphql.InlineFragment";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct InlineFragment
struct FragmentSpread : Predicate<std::tuple<Fact<Value>, facebook::glean::cpp::schema::Src::FileLocation, std::vector<Fact<Argument>>, std::vector<Fact<Directive>>>> {
static const char* GLEAN_name() {
return "graphql.FragmentSpread";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FragmentSpread
struct Fragment : Predicate<std::tuple<Fact<Value>, Fact<Value>, std::vector<Fact<VariableDef>>, std::vector<Fact<Directive>>, 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<std::tuple<Fact<Value>, Fact<Value>, std::vector<Fact<InputValueDef>>, std::vector<Fact<Directive>>>> {
static const char* GLEAN_name() {
return "graphql.FieldDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FieldDef
struct Field : Predicate<std::tuple<Fact<Value>, Fact<Value>, std::vector<Fact<Directive>>, SelectionSet, std::vector<Fact<Argument>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Value>>>, 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::tuple<Fact<Value>, std::vector<Fact<Value>>, std::vector<Fact<Directive>>>> {
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_<facebook::glean::cpp::schema::Graphql::DirectiveDefLocation> {
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::tuple<Fact<Value>, std::vector<Fact<InputValueDef>>, std::vector<DirectiveDefLocation>>> {
static const char* GLEAN_name() {
return "graphql.DirectiveDef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DirectiveDef
struct Directive : Predicate<std::tuple<Fact<Value>, std::vector<Fact<Argument>>>> {
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_<facebook::glean::cpp::schema::Graphql::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Graphql::Operation, facebook::glean::cpp::schema::Graphql::Fragment, facebook::glean::cpp::schema::Graphql::FieldDef, facebook::glean::cpp::schema::Graphql::EnumTypeDef, facebook::glean::cpp::schema::Graphql::DirectiveDef>;
};
namespace schema {
namespace Graphql {
struct Declaration {
boost::variant<Alt<0, Fact<Operation>>, Alt<1, Fact<Fragment>>, Alt<2, Fact<FieldDef>>, Alt<3, Fact<EnumTypeDef>>, Alt<4, Fact<DirectiveDef>>> GLEAN_value;
static Declaration operation_(const Fact<Operation>& a) {
return Declaration{Alt<0, Fact<Operation>>(a)};
}
static Declaration fragment_(const Fact<Fragment>& a) {
return Declaration{Alt<1, Fact<Fragment>>(a)};
}
static Declaration field_(const Fact<FieldDef>& a) {
return Declaration{Alt<2, Fact<FieldDef>>(a)};
}
static Declaration enum_(const Fact<EnumTypeDef>& a) {
return Declaration{Alt<3, Fact<EnumTypeDef>>(a)};
}
static Declaration directive_(const Fact<DirectiveDef>& a) {
return Declaration{Alt<4, Fact<DirectiveDef>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<Declaration, Fact<Value>> {
static const char* GLEAN_name() {
return "graphql.DeclarationName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclarationName
struct DeclarationUses : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Name, Declaration>> {
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_<facebook::glean::cpp::schema::Graphql::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Graphql::Declaration>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(decl, span));
}
}; // struct XRef
struct FileXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, XRef>> {
static const char* GLEAN_name() {
return "graphql.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FileXRefs
struct DeclHasName : Predicate<std::tuple<Declaration, Fact<Value>>> {
static const char* GLEAN_name() {
return "graphql.DeclHasName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclHasName
struct BelongToConfig : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Value>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Value>>>>> {
static const char* GLEAN_name() {
return "graphql.BelongToConfig";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct BelongToConfig
struct Argument : Predicate<std::tuple<Fact<Value>, Fact<Value>>> {
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<std::tuple<boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Glean::Test::WrappedStringPair> {
using Type = Tuple<facebook::glean::cpp::schema::Glean::Test::StringPair>;
};
namespace schema {
namespace Glean {
namespace Test {
struct WrappedStringPair {
Fact<StringPair> 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<Repr<WrappedStringPair>> out) const {
outputValue(out, std::make_tuple(wrapped));
}
}; // struct WrappedStringPair
struct ViaStringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.ViaStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ViaStringPair
struct Unbound2 : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.Unbound2";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Unbound2
struct Unbound : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.Unbound";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Unbound
struct TreeToTree : Predicate<Fact<Tree>, Fact<Tree>> {
static const char* GLEAN_name() {
return "glean.test.TreeToTree";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct TreeToTree
struct Tree : Predicate<std::tuple<Fact<Node>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Tree>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Tree>>>>> {
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_<facebook::glean::cpp::schema::Glean::Test::Sum_> {
using Type = Sum<Byte, Nat, Bool>;
};
namespace schema {
namespace Glean {
namespace Test {
struct Sum_ {
boost::variant<Alt<0, uint8_t>, 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<Repr<Sum_>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Sum_
struct StringPairBox : Predicate<std::tuple<Fact<StringPair>>> {
static const char* GLEAN_name() {
return "glean.test.StringPairBox";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StringPairBox
struct StringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.StringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StringPair
struct StoredRevStringPairWithRev : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.StoredRevStringPairWithRev";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StoredRevStringPairWithRev
struct StoredRevStringPairWithA : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.StoredRevStringPairWithA";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StoredRevStringPairWithA
struct StoredRevStringPairSum : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.StoredRevStringPairSum";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StoredRevStringPairSum
struct StoredRevStringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.StoredRevStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StoredRevStringPair
struct StoredDualStringPair : Predicate<std::tuple<Fact<StringPair>, Fact<StringPair>>> {
static const char* GLEAN_name() {
return "glean.test.StoredDualStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct StoredDualStringPair
struct SkipRevEdge : Predicate<std::tuple<Fact<Node>, Fact<Node>>> {
static const char* GLEAN_name() {
return "glean.test.SkipRevEdge";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SkipRevEdge
struct SameString : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.SameString";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct SameString
struct RevStringPairs : Predicate<std::tuple<std::string, Fact<RevStringPair>>> {
static const char* GLEAN_name() {
return "glean.test.RevStringPairs";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RevStringPairs
struct RevStringPairRec : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.RevStringPairRec";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RevStringPairRec
struct RevStringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.RevStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RevStringPair
struct RevRevStringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.RevRevStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RevRevStringPair
struct RevEdge : Predicate<std::tuple<Fact<Node>, Fact<Node>>> {
static const char* GLEAN_name() {
return "glean.test.RevEdge";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RevEdge
struct ReflStringPair : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.ReflStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct ReflStringPair
struct RefRef : Predicate<Fact<Ref>> {
static const char* GLEAN_name() {
return "glean.test.RefRef";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct RefRef
struct Ref : Predicate<Fact<Predicate_>> {
static const char* GLEAN_name() {
return "glean.test.Ref";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Ref
struct Qux : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.Qux";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Qux
struct Predicate_0 : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.Predicate";
}
static constexpr size_t GLEAN_version() {
return 0;
}
}; // struct Predicate_0
struct NodePair : Predicate<std::tuple<Fact<Node>, Fact<Node>>> {
static const char* GLEAN_name() {
return "glean.test.NodePair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct NodePair
struct Node : Predicate<std::tuple<std::string>> {
static const char* GLEAN_name() {
return "glean.test.Node";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Node
struct Name : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.Name";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Name
struct MatchOneAlt : Predicate<std::tuple<Sum_, uint64_t>> {
static const char* GLEAN_name() {
return "glean.test.MatchOneAlt";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct MatchOneAlt
struct LeftOr2 : Predicate<std::tuple<std::string, uint64_t>> {
static const char* GLEAN_name() {
return "glean.test.LeftOr2";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct LeftOr2
struct LeftOr : Predicate<std::tuple<std::string, uint64_t>> {
static const char* GLEAN_name() {
return "glean.test.LeftOr";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct LeftOr
struct KeyValue : Predicate<std::tuple<std::string, uint64_t>, std::tuple<uint64_t, std::string>> {
static const char* GLEAN_name() {
return "glean.test.KeyValue";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct KeyValue
struct IsThree : Predicate<uint64_t> {
static const char* GLEAN_name() {
return "glean.test.IsThree";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct IsThree
struct IsParent : Predicate<Fact<Node>> {
static const char* GLEAN_name() {
return "glean.test.IsParent";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct IsParent
struct IsGlean : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.IsGlean";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct IsGlean
struct FooToFoo : Predicate<Fact<Foo>, Fact<Foo>> {
static const char* GLEAN_name() {
return "glean.test.FooToFoo";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct FooToFoo
struct Foo : Predicate<std::string, Fact<Bar>> {
static const char* GLEAN_name() {
return "glean.test.Foo";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Foo
struct Expr : Predicate<boost::variant<Alt<0, Fact<Name>>, Alt<1, uint64_t>, Alt<2, Fact<Name>>, Alt<3, std::tuple<Fact<Expr>, Fact<Expr>>>, Alt<4, std::tuple<Fact<Name>, Fact<Expr>>>>> {
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_<facebook::glean::cpp::schema::Glean::Test::Enum_> {
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_<facebook::glean::cpp::schema::Glean::Test::Rec> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Glean::Test::Enum_>, Repr<facebook::glean::cpp::schema::Glean::Test::Sum_>>;
};
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<Repr<Rec>> out) const {
outputValue(out, std::make_tuple(alpha, beta));
}
}; // struct Rec
struct EmptyStoredStringPair : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "glean.test.EmptyStoredStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct EmptyStoredStringPair
struct EmptyPred : Predicate<std::string> {
static const char* GLEAN_name() {
return "glean.test.EmptyPred";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct EmptyPred
struct EdgeWrapper : Predicate<std::tuple<Fact<Edge>>> {
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_<facebook::glean::cpp::schema::Glean::Test::EdgeSum> {
using Type = Sum<facebook::glean::cpp::schema::Glean::Test::EdgeWrapper, facebook::glean::cpp::schema::Glean::Test::EdgeWrapper>;
};
namespace schema {
namespace Glean {
namespace Test {
struct EdgeSum {
boost::variant<Alt<0, Fact<EdgeWrapper>>, Alt<1, Fact<EdgeWrapper>>> GLEAN_value;
static EdgeSum fst(const Fact<EdgeWrapper>& a) {
return EdgeSum{Alt<0, Fact<EdgeWrapper>>(a)};
}
static EdgeSum snd(const Fact<EdgeWrapper>& a) {
return EdgeSum{Alt<1, Fact<EdgeWrapper>>(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<Repr<EdgeSum>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct EdgeSum
struct EdgeFromNotA : Predicate<Fact<Edge>> {
static const char* GLEAN_name() {
return "glean.test.EdgeFromNotA";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct EdgeFromNotA
struct Edge : Predicate<std::tuple<Fact<Node>, Fact<Node>>> {
static const char* GLEAN_name() {
return "glean.test.Edge";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Edge
struct DualStringPair : Predicate<std::tuple<Fact<StringPair>, Fact<StringPair>>> {
static const char* GLEAN_name() {
return "glean.test.DualStringPair";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DualStringPair
struct DerivedKeyValue2 : Predicate<std::tuple<std::string, uint64_t>, std::tuple<uint64_t, std::string>> {
static const char* GLEAN_name() {
return "glean.test.DerivedKeyValue2";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DerivedKeyValue2
struct DerivedKeyValue : Predicate<std::tuple<std::string, uint64_t, uint64_t, std::string>> {
static const char* GLEAN_name() {
return "glean.test.DerivedKeyValue";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct DerivedKeyValue
struct Bar : Predicate<std::string, Fact<Qux>> {
static const char* GLEAN_name() {
return "glean.test.Bar";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Bar
using ArrayString = std::vector<std::string>;
using ArrayNat = std::vector<uint64_t>;
using ArrayByte = std::vector<uint8_t>;
using ArrayBool = std::vector<bool>;
enum class KitchenSink_enum_ { e, f, g };
} // namespace Test
} // namespace Glean
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Glean::Test::KitchenSink_enum_> {
using Type = Enum<3>;
};
template<> struct Repr_<facebook::glean::cpp::schema::Glean::Test::KitchenSink> {
using Type = Tuple<Byte, Nat, Bool, String, facebook::glean::cpp::schema::Sys::Blob, Maybe<Tuple<>>, Tuple<Byte, Nat>, Sum<facebook::glean::cpp::schema::Glean::Test::Predicate_, facebook::glean::cpp::schema::Sys::Blob>, Enum<3>, Repr<facebook::glean::cpp::schema::Glean::Test::Rec>, Repr<facebook::glean::cpp::schema::Glean::Test::Sum_>, Repr<facebook::glean::cpp::schema::Glean::Test::Enum_>, Array<Byte>, Array<Nat>, Array<Bool>, Array<String>, Array<facebook::glean::cpp::schema::Glean::Test::Predicate_>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::Rec>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::Sum_>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::Enum_>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::ArrayByte>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::ArrayNat>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::ArrayBool>>, Array<Repr<facebook::glean::cpp::schema::Glean::Test::ArrayString>>, Set<Nat>, Set<String>, Set<facebook::glean::cpp::schema::Glean::Test::Predicate_>>;
};
namespace schema {
namespace Glean {
namespace Test {
struct KitchenSink {
uint8_t byt;
uint64_t nat;
bool bool_;
std::string string_;
Fact<facebook::glean::cpp::schema::Sys::Blob> pred;
boost::variant<Alt<0, std::tuple<>>, Alt<1, std::tuple<>>> maybe_;
std::tuple<uint8_t, uint64_t> record_;
boost::variant<Alt<0, Fact<Predicate_>>, Alt<1, Fact<facebook::glean::cpp::schema::Sys::Blob>>> sum_;
KitchenSink_enum_ enum_;
Rec named_record_;
Sum_ named_sum_;
Enum_ named_enum_;
std::vector<uint8_t> array_of_byte;
std::vector<uint64_t> array_of_nat;
std::vector<bool> array_of_bool;
std::vector<std::string> array_of_string;
std::vector<Fact<Predicate_>> array_of_pred;
std::vector<Rec> array_of_named_record;
std::vector<Sum_> array_of_named_sum;
std::vector<Enum_> array_of_named_enum;
std::vector<ArrayByte> array2_of_byte;
std::vector<ArrayNat> array2_of_nat;
std::vector<ArrayBool> array2_of_bool;
std::vector<ArrayString> array2_of_string;
std::set<uint64_t> set_of_nat;
std::set<std::string> set_of_string;
std::set<Fact<Predicate_>> 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<Repr<KitchenSink>> 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<KitchenSink> {
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_<facebook::glean::cpp::schema::Gencode::GenCodeVariant> {
using Type = Enum<2>;
};
namespace schema {
namespace Gencode {
enum class GenCodeVariant { Full, Partial };
struct GenCodeSignature : Predicate<std::string> {
static const char* GLEAN_name() {
return "gencode.GenCodeSignature";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GenCodeSignature
struct GenCodeCommand : Predicate<std::string> {
static const char* GLEAN_name() {
return "gencode.GenCodeCommand";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GenCodeCommand
struct GenCodeClass : Predicate<std::string> {
static const char* GLEAN_name() {
return "gencode.GenCodeClass";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GenCodeClass
struct GenCodeBySource : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "gencode.GenCodeBySource";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GenCodeBySource
struct GenCode : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, GenCodeVariant, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<GenCodeCommand>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<GenCodeClass>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<GenCodeSignature>>>>> {
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_<facebook::glean::cpp::schema::Flow::XRef> {
using Type = Sum<facebook::glean::cpp::schema::Flow::LocalDeclarationReference, facebook::glean::cpp::schema::Flow::MemberDeclarationReference, facebook::glean::cpp::schema::Flow::TypeDeclarationReference>;
};
namespace schema {
namespace Flow {
struct XRef {
boost::variant<Alt<0, Fact<LocalDeclarationReference>>, Alt<1, Fact<MemberDeclarationReference>>, Alt<2, Fact<TypeDeclarationReference>>> GLEAN_value;
static XRef localRef(const Fact<LocalDeclarationReference>& a) {
return XRef{Alt<0, Fact<LocalDeclarationReference>>(a)};
}
static XRef memberRef(const Fact<MemberDeclarationReference>& a) {
return XRef{Alt<1, Fact<MemberDeclarationReference>>(a)};
}
static XRef typeRef(const Fact<TypeDeclarationReference>& a) {
return XRef{Alt<2, Fact<TypeDeclarationReference>>(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<Repr<XRef>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRef
struct TypeImportDeclaration : Predicate<std::tuple<Fact<TypeDeclaration>, boost::variant<Alt<0, Fact<ModuleTypeExport>>, Alt<1, Fact<ModuleExport>>, Alt<2, Fact<Module>>>>> {
static const char* GLEAN_name() {
return "flow.TypeImportDeclaration";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeImportDeclaration
struct TypeExport : Predicate<boost::variant<Alt<0, Fact<Name>>, Alt<1, Fact<Module>>>> {
static const char* GLEAN_name() {
return "flow.TypeExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeExport
struct TypeDeclarationReference : Predicate<std::tuple<Fact<TypeDeclaration>, Fact<Range>>> {
static const char* GLEAN_name() {
return "flow.TypeDeclarationReference";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeDeclarationReference
struct TypeDeclarationInfo : Predicate<std::tuple<Fact<TypeDeclaration>, Fact<Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Documentation>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Range>>>>> {
static const char* GLEAN_name() {
return "flow.TypeDeclarationInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeDeclarationInfo
struct TypeDeclaration : Predicate<std::tuple<Fact<Name>, Fact<Range>>> {
static const char* GLEAN_name() {
return "flow.TypeDeclaration";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct TypeDeclaration
struct Type : Predicate<std::string> {
static const char* GLEAN_name() {
return "flow.Type";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Type
struct StringToFileModule : Predicate<std::tuple<std::string, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "flow.StringToFileModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct StringToFileModule
struct SourceOfTypeExport : Predicate<std::tuple<Fact<ModuleTypeExport>, boost::variant<Alt<0, Fact<TypeDeclaration>>, Alt<1, Fact<ModuleTypeExport>>, Alt<2, Fact<Module>>>>> {
static const char* GLEAN_name() {
return "flow.SourceOfTypeExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SourceOfTypeExport
struct SourceOfExport : Predicate<std::tuple<Fact<ModuleExport>, boost::variant<Alt<0, Fact<Declaration>>, Alt<1, Fact<MemberDeclaration>>, Alt<2, Fact<ModuleExport>>, Alt<3, Fact<Module>>>>> {
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_<facebook::glean::cpp::schema::Flow::SomeDeclaration> {
using Type = Sum<facebook::glean::cpp::schema::Flow::Declaration, facebook::glean::cpp::schema::Flow::MemberDeclaration, facebook::glean::cpp::schema::Flow::TypeDeclaration>;
};
namespace schema {
namespace Flow {
struct SomeDeclaration {
boost::variant<Alt<0, Fact<Declaration>>, Alt<1, Fact<MemberDeclaration>>, Alt<2, Fact<TypeDeclaration>>> GLEAN_value;
static SomeDeclaration localDecl(const Fact<Declaration>& a) {
return SomeDeclaration{Alt<0, Fact<Declaration>>(a)};
}
static SomeDeclaration memberDecl(const Fact<MemberDeclaration>& a) {
return SomeDeclaration{Alt<1, Fact<MemberDeclaration>>(a)};
}
static SomeDeclaration typeDecl(const Fact<TypeDeclaration>& a) {
return SomeDeclaration{Alt<2, Fact<TypeDeclaration>>(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<Repr<SomeDeclaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct SomeDeclaration
} // namespace Flow
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Flow::SomeEntity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Flow::SomeDeclaration>, facebook::glean::cpp::schema::Flow::Module>;
};
namespace schema {
namespace Flow {
struct SomeEntity {
boost::variant<Alt<0, SomeDeclaration>, Alt<1, Fact<Module>>> GLEAN_value;
static SomeEntity decl(const SomeDeclaration& a) {
return SomeEntity{Alt<0, SomeDeclaration>(a)};
}
static SomeEntity module_(const Fact<Module>& a) {
return SomeEntity{Alt<1, Fact<Module>>(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<Repr<SomeEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct SomeEntity
} // namespace Flow
namespace Search {
namespace Flow {
struct FlowSearchByNameNonImport : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Flow::Name>, 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<std::tuple<std::string, Fact<Module>, Fact<TypeDeclaration>>> {
static const char* GLEAN_name() {
return "flow.SearchTypeDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchTypeDeclarationByName
struct SearchTypeDeclarationByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "flow.SearchTypeDeclarationByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchTypeDeclarationByLowerCaseName
struct SearchTypeByModuleExport : Predicate<std::tuple<std::string, Fact<Name>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.SearchTypeByModuleExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchTypeByModuleExport
struct SearchModuleByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "flow.SearchModuleByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchModuleByLowerCaseName
struct SearchMemberDeclarationByName : Predicate<std::tuple<std::string, Fact<Module>, Fact<MemberDeclaration>>> {
static const char* GLEAN_name() {
return "flow.SearchMemberDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchMemberDeclarationByName
struct SearchMemberDeclarationByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "flow.SearchMemberDeclarationByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchMemberDeclarationByLowerCaseName
struct SearchDeclarationByName : Predicate<std::tuple<std::string, Fact<Module>, Fact<Declaration>>> {
static const char* GLEAN_name() {
return "flow.SearchDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchDeclarationByName
struct SearchDeclarationByLowerCaseName : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "flow.SearchDeclarationByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchDeclarationByLowerCaseName
struct SearchByNameModule : Predicate<std::tuple<std::string, Fact<Module>>> {
static const char* GLEAN_name() {
return "flow.SearchByNameModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchByNameModule
struct SearchByName : Predicate<std::tuple<Fact<Name>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.SearchByName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchByName
struct SearchByModuleName : Predicate<std::tuple<std::string, Fact<Module>>> {
static const char* GLEAN_name() {
return "flow.SearchByModuleName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchByModuleName
struct SearchByModule : Predicate<std::tuple<std::string, Fact<Name>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.SearchByModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchByModule
struct SearchByFileModule : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Name>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.SearchByFileModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct SearchByFileModule
struct Range : Predicate<std::tuple<Fact<Module>, 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<std::string> {
static const char* GLEAN_name() {
return "flow.Name";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Name
struct ModuleTypeExport : Predicate<std::tuple<Fact<Module>, Fact<TypeExport>>> {
static const char* GLEAN_name() {
return "flow.ModuleTypeExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleTypeExport
struct ModuleNameLowerCase : Predicate<std::tuple<std::string, Fact<Module>>> {
static const char* GLEAN_name() {
return "flow.ModuleNameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleNameLowerCase
struct ModuleLocationByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Module>, 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<std::tuple<Fact<Module>, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Module>, Fact<Export>>> {
static const char* GLEAN_name() {
return "flow.ModuleExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleExport
struct ModuleDoc : Predicate<std::tuple<Fact<Documentation>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "flow.ModuleDoc";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleDoc
struct ModuleContains : Predicate<std::tuple<Fact<Module>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.ModuleContains";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ModuleContains
struct ModuleComments : Predicate<std::tuple<Fact<Module>, Fact<facebook::glean::cpp::schema::Src::File>, 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<boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Src::File>>, 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<std::tuple<Fact<MemberDeclaration>, Fact<Range>>> {
static const char* GLEAN_name() {
return "flow.MemberDeclarationReference";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct MemberDeclarationReference
struct MemberDeclarationInfo : Predicate<std::tuple<Fact<MemberDeclaration>, Fact<Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Documentation>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Range>>>>> {
static const char* GLEAN_name() {
return "flow.MemberDeclarationInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct MemberDeclarationInfo
struct MemberDeclaration : Predicate<std::tuple<Fact<Name>, Fact<Range>>> {
static const char* GLEAN_name() {
return "flow.MemberDeclaration";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct MemberDeclaration
struct LocalDeclarationReference : Predicate<std::tuple<Fact<Declaration>, Fact<Range>>> {
static const char* GLEAN_name() {
return "flow.LocalDeclarationReference";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct LocalDeclarationReference
struct ImportDeclaration : Predicate<std::tuple<Fact<Declaration>, boost::variant<Alt<0, Fact<ModuleExport>>, Alt<1, Fact<Module>>>>> {
static const char* GLEAN_name() {
return "flow.ImportDeclaration";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct ImportDeclaration
struct FlowXRefDeclInfo : Predicate<std::tuple<XRef, Fact<Range>, Fact<Name>, Fact<Range>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.FlowXRefDeclInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowXRefDeclInfo
struct FlowTypeImportXRef : Predicate<std::tuple<Fact<TypeDeclaration>, SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<ModuleTypeExport>, SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<SomeEntity, Fact<TypeDeclaration>>> {
static const char* GLEAN_name() {
return "flow.FlowTypeEntityImportUses";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowTypeEntityImportUses
struct FlowSameModule : Predicate<std::tuple<Fact<Module>, Fact<Module>>> {
static const char* GLEAN_name() {
return "flow.FlowSameModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowSameModule
struct FlowModuleNamespaceXRef : Predicate<std::tuple<Fact<Declaration>, SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "flow.FlowModuleNamespaceXRef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowModuleNamespaceXRef
struct FlowImportXRef : Predicate<std::tuple<Fact<Declaration>, SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Module>, Fact<Export>, SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<SomeEntity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<SomeEntity, Fact<Declaration>>> {
static const char* GLEAN_name() {
return "flow.FlowEntityImportUses";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowEntityImportUses
struct FlowCompatibleExport : Predicate<std::tuple<Fact<Export>, Fact<Export>>> {
static const char* GLEAN_name() {
return "flow.FlowCompatibleExport";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FlowCompatibleExport
struct FileXRef : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, XRef>> {
static const char* GLEAN_name() {
return "flow.FileXRef";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FileXRef
struct FileOfStringModule : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::string>> {
static const char* GLEAN_name() {
return "flow.FileOfStringModule";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FileOfStringModule
struct FileDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, SomeDeclaration>> {
static const char* GLEAN_name() {
return "flow.FileDeclaration";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct FileDeclaration
struct Export : Predicate<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Name>>, Alt<2, Fact<Name>>, Alt<3, std::tuple<>>, Alt<4, Fact<Module>>>> {
static const char* GLEAN_name() {
return "flow.Export";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Export
struct Documentation : Predicate<Fact<Range>> {
static const char* GLEAN_name() {
return "flow.Documentation";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct Documentation
struct DeclarationUses : Predicate<std::tuple<SomeDeclaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<SomeDeclaration, std::string>> {
static const char* GLEAN_name() {
return "flow.DeclarationSignature";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclarationSignature
struct DeclarationNameSpan : Predicate<std::tuple<SomeDeclaration, Fact<Name>, 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<std::tuple<SomeDeclaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Declaration>, Fact<Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Documentation>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Range>>>>> {
static const char* GLEAN_name() {
return "flow.DeclarationInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct DeclarationInfo
struct Declaration : Predicate<std::tuple<Fact<Name>, Fact<Range>>> {
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_<facebook::glean::cpp::schema::Fbthrift::XRefTarget> {
using Type = Sum<facebook::glean::cpp::schema::Fbthrift::File, facebook::glean::cpp::schema::Fbthrift::NamedDecl, facebook::glean::cpp::schema::Fbthrift::ExceptionName, facebook::glean::cpp::schema::Fbthrift::ServiceName, facebook::glean::cpp::schema::Fbthrift::Constant, facebook::glean::cpp::schema::Fbthrift::EnumValue, facebook::glean::cpp::schema::Fbthrift::FunctionName, facebook::glean::cpp::schema::Fbthrift::FieldDecl>;
};
namespace schema {
namespace Fbthrift {
struct XRefTarget {
boost::variant<Alt<0, Fact<File>>, Alt<1, Fact<NamedDecl>>, Alt<2, Fact<ExceptionName>>, Alt<3, Fact<ServiceName>>, Alt<4, Fact<Constant>>, Alt<5, Fact<EnumValue>>, Alt<6, Fact<FunctionName>>, Alt<7, Fact<FieldDecl>>> GLEAN_value;
static XRefTarget include_(const Fact<File>& a) {
return XRefTarget{Alt<0, Fact<File>>(a)};
}
static XRefTarget named(const Fact<NamedDecl>& a) {
return XRefTarget{Alt<1, Fact<NamedDecl>>(a)};
}
static XRefTarget exception_(const Fact<ExceptionName>& a) {
return XRefTarget{Alt<2, Fact<ExceptionName>>(a)};
}
static XRefTarget service_(const Fact<ServiceName>& a) {
return XRefTarget{Alt<3, Fact<ServiceName>>(a)};
}
static XRefTarget constant(const Fact<Constant>& a) {
return XRefTarget{Alt<4, Fact<Constant>>(a)};
}
static XRefTarget enumValue(const Fact<EnumValue>& a) {
return XRefTarget{Alt<5, Fact<EnumValue>>(a)};
}
static XRefTarget function_(const Fact<FunctionName>& a) {
return XRefTarget{Alt<6, Fact<FunctionName>>(a)};
}
static XRefTarget field(const Fact<FieldDecl>& a) {
return XRefTarget{Alt<7, Fact<FieldDecl>>(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<Repr<XRefTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefTarget
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::TypedConst> {
using Type = Sum<facebook::glean::cpp::schema::Fbthrift::Literal, facebook::glean::cpp::schema::Fbthrift::Constant>;
};
namespace schema {
namespace Fbthrift {
struct TypedConst {
boost::variant<Alt<0, Fact<Literal>>, Alt<1, Fact<Constant>>> GLEAN_value;
static TypedConst literal(const Fact<Literal>& a) {
return TypedConst{Alt<0, Fact<Literal>>(a)};
}
static TypedConst identifier(const Fact<Constant>& a) {
return TypedConst{Alt<1, Fact<Constant>>(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<Repr<TypedConst>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct TypedConst
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::TypedConstT> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::TypedConst>, facebook::glean::cpp::schema::Fbthrift::TypeSpecification>;
};
namespace schema {
namespace Fbthrift {
struct TypedConstT {
TypedConst const_;
Fact<TypeSpecification> 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<Repr<TypedConstT>> out) const {
outputValue(out, std::make_tuple(const_, type_));
}
}; // struct TypedConstT
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::UnionFieldVal> {
using Type = Tuple<facebook::glean::cpp::schema::Fbthrift::Identifier, Repr<facebook::glean::cpp::schema::Fbthrift::TypedConstT>>;
};
namespace schema {
namespace Fbthrift {
struct UnionFieldVal {
Fact<Identifier> 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<Repr<UnionFieldVal>> out) const {
outputValue(out, std::make_tuple(name, value));
}
}; // struct UnionFieldVal
struct UnionVal : Predicate<std::tuple<UnionFieldVal>> {
static const char* GLEAN_name() {
return "fbthrift.UnionVal";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct UnionVal
struct TypeDefType : Predicate<std::tuple<Fact<QualName>, Fact<TypeSpecification>, std::vector<Fact<StructuredAnnotation>>>> {
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_<facebook::glean::cpp::schema::Fbthrift::Target> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::XRefTarget>>;
};
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<Repr<Target>> out) const {
outputValue(out, std::make_tuple(target));
}
}; // struct Target
struct StructuredAnnotation : Predicate<std::tuple<Fact<TypeSpecification>, Fact<StructVal>>> {
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_<facebook::glean::cpp::schema::Fbthrift::StructFieldValValue> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Fbthrift::TypedConstT>, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Repr<facebook::glean::cpp::schema::Fbthrift::TypedConstT>, Tuple<>>;
};
namespace schema {
namespace Fbthrift {
struct StructFieldValValue {
boost::variant<Alt<0, TypedConstT>, Alt<1, Fact<TypeSpecification>>, 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<TypeSpecification>& a) {
return StructFieldValValue{Alt<1, Fact<TypeSpecification>>(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<Repr<StructFieldValValue>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct StructFieldValValue
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::StructFieldVal> {
using Type = Tuple<facebook::glean::cpp::schema::Fbthrift::Identifier, Repr<facebook::glean::cpp::schema::Fbthrift::StructFieldValValue>>;
};
namespace schema {
namespace Fbthrift {
struct StructFieldVal {
Fact<Identifier> 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<Repr<StructFieldVal>> out) const {
outputValue(out, std::make_tuple(name, value));
}
}; // struct StructFieldVal
struct StructVal : Predicate<std::tuple<std::vector<StructFieldVal>>> {
static const char* GLEAN_name() {
return "fbthrift.StructVal";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct StructVal
struct ServiceParent : Predicate<std::tuple<Fact<ServiceName>, Fact<ServiceName>>> {
static const char* GLEAN_name() {
return "fbthrift.ServiceParent";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ServiceParent
struct ServiceName : Predicate<std::tuple<Fact<QualName>>> {
static const char* GLEAN_name() {
return "fbthrift.ServiceName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ServiceName
struct ServiceInteractionFunctions : Predicate<std::tuple<Fact<ServiceName>, Fact<FunctionSpecification>>> {
static const char* GLEAN_name() {
return "fbthrift.ServiceInteractionFunctions";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ServiceInteractionFunctions
struct ServiceDefinition : Predicate<std::tuple<Fact<ServiceName>, std::vector<Fact<FunctionSpecification>>, std::vector<Fact<StructuredAnnotation>>, std::vector<Fact<InteractionName>>>> {
static const char* GLEAN_name() {
return "fbthrift.ServiceDefinition";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ServiceDefinition
struct ServiceChild : Predicate<std::tuple<Fact<ServiceName>, Fact<ServiceName>>> {
static const char* GLEAN_name() {
return "fbthrift.ServiceChild";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ServiceChild
struct SearchByName : Predicate<std::tuple<Fact<Identifier>, Fact<QualName>>> {
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_<facebook::glean::cpp::schema::Fbthrift::ResultSink> {
using Type = Tuple<facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Maybe<facebook::glean::cpp::schema::Fbthrift::TypeSpecification>, Maybe<facebook::glean::cpp::schema::Fbthrift::TypeSpecification>>;
};
namespace schema {
namespace Fbthrift {
struct ResultSink {
Fact<TypeSpecification> type_;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeSpecification>>> firstResponse;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeSpecification>>> 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<Repr<ResultSink>> out) const {
outputValue(out, std::make_tuple(type_, firstResponse, finalResponse));
}
}; // struct ResultSink
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::Qualifier> {
using Type = Enum<3>;
};
namespace schema {
namespace Fbthrift {
enum class Qualifier { default_, optional_, required_ };
struct QualName : Predicate<std::tuple<Fact<File>, Fact<Identifier>>> {
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_<facebook::glean::cpp::schema::Fbthrift::PrimitiveType> {
using Type = Enum<9>;
};
namespace schema {
namespace Fbthrift {
enum class PrimitiveType { bool_, byte_, i16_, i32_, i64_, float_, double_, binary_, string_ };
struct PackageName : Predicate<std::string> {
static const char* GLEAN_name() {
return "fbthrift.PackageName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct PackageName
struct Package : Predicate<std::tuple<Fact<File>, Fact<PackageName>>> {
static const char* GLEAN_name() {
return "fbthrift.Package";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Package
struct NamespaceValue : Predicate<std::string> {
static const char* GLEAN_name() {
return "fbthrift.NamespaceValue";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct NamespaceValue
struct NamespaceName : Predicate<std::string> {
static const char* GLEAN_name() {
return "fbthrift.NamespaceName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct NamespaceName
struct Namespace : Predicate<std::tuple<Fact<File>, Fact<NamespaceName>, Fact<NamespaceValue>, 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_<facebook::glean::cpp::schema::Fbthrift::NamedKind> {
using Type = Enum<4>;
};
namespace schema {
namespace Fbthrift {
enum class NamedKind { typedef_, enum_, struct_, union_ };
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::NamedType> {
using Type = Tuple<facebook::glean::cpp::schema::Fbthrift::QualName, Repr<facebook::glean::cpp::schema::Fbthrift::NamedKind>>;
};
namespace schema {
namespace Fbthrift {
struct NamedType {
Fact<QualName> 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<Repr<NamedType>> out) const {
outputValue(out, std::make_tuple(name, kind));
}
}; // struct NamedType
struct NamedDecl : Predicate<std::tuple<NamedType>> {
static const char* GLEAN_name() {
return "fbthrift.NamedDecl";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct NamedDecl
struct NameLowerCase : Predicate<std::tuple<std::string, Fact<Identifier>>> {
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_<facebook::glean::cpp::schema::Fbthrift::MapType> {
using Type = Tuple<facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::TypeSpecification>;
};
namespace schema {
namespace Fbthrift {
struct MapType {
Fact<TypeSpecification> key_;
Fact<TypeSpecification> 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<Repr<MapType>> out) const {
outputValue(out, std::make_tuple(key_, value));
}
}; // struct MapType
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::Loc> {
using Type = Tuple<Nat, Nat, Nat, Nat>;
};
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<Repr<Loc>> out) const {
outputValue(out, std::make_tuple(startLine, startCol, endLine, endCol));
}
}; // struct Loc
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::Loc>, Repr<facebook::glean::cpp::schema::Fbthrift::XRefTarget>>;
};
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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(locRef, target));
}
}; // struct XRef
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::KeyValue> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::TypedConst>, Repr<facebook::glean::cpp::schema::Fbthrift::TypedConst>>;
};
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<Repr<KeyValue>> out) const {
outputValue(out, std::make_tuple(key, value));
}
}; // struct KeyValue
struct InteractionName : Predicate<std::tuple<Fact<QualName>>> {
static const char* GLEAN_name() {
return "fbthrift.InteractionName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct InteractionName
struct InteractionDefinition : Predicate<std::tuple<Fact<InteractionName>, std::vector<Fact<FunctionSpecification>>, std::vector<Fact<StructuredAnnotation>>>> {
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_<facebook::glean::cpp::schema::Fbthrift::IntegerLiteral> {
using Type = Tuple<Bool, Nat>;
};
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<Repr<IntegerLiteral>> out) const {
outputValue(out, std::make_tuple(isNonNegative, absValue));
}
}; // struct IntegerLiteral
struct Identifier : Predicate<std::string> {
static const char* GLEAN_name() {
return "fbthrift.Identifier";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Identifier
struct FunctionName : Predicate<std::tuple<Fact<ServiceName>, Fact<Identifier>>> {
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_<facebook::glean::cpp::schema::Fbthrift::FloatLiteral> {
using Type = Tuple<Bool, Bool, Nat, Nat>;
};
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<Repr<FloatLiteral>> out) const {
outputValue(out, std::make_tuple(isNaN, isPositive, exponent, significand));
}
}; // struct FloatLiteral
struct Literal : Predicate<boost::variant<Alt<0, IntegerLiteral>, 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<uint8_t>>, Alt<9, std::vector<TypedConst>>, Alt<10, std::vector<TypedConst>>, Alt<11, std::vector<KeyValue>>, Alt<12, Fact<Literal>>, Alt<13, Fact<StructVal>>, Alt<14, Fact<ExceptionVal>>, Alt<15, Fact<UnionVal>>, Alt<16, Fact<EnumVal>>>> {
static const char* GLEAN_name() {
return "fbthrift.Literal";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Literal
struct FileXRefs : Predicate<std::tuple<Fact<File>, std::vector<XRef>>> {
static const char* GLEAN_name() {
return "fbthrift.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileXRefs
struct File : Predicate<Fact<facebook::glean::cpp::schema::Src::File>> {
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_<facebook::glean::cpp::schema::Fbthrift::FieldKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Fbthrift {
enum class FieldKind { struct_, union_, exception_ };
using FieldId = IntegerLiteral;
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::FieldSpecification> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::FieldId>, Repr<facebook::glean::cpp::schema::Fbthrift::Qualifier>, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::Identifier, Maybe<Repr<facebook::glean::cpp::schema::Fbthrift::TypedConst>>, Array<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>;
};
namespace schema {
namespace Fbthrift {
struct FieldSpecification {
FieldId id;
Qualifier qualifier;
Fact<TypeSpecification> type_;
Fact<Identifier> name;
boost::variant<Alt<0, std::tuple<>>, Alt<1, TypedConst>> value;
std::vector<Fact<StructuredAnnotation>> 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<Repr<FieldSpecification>> out) const {
outputValue(out, std::make_tuple(id, qualifier, type_, name, value, structuredAnnotations));
}
}; // struct FieldSpecification
struct StructType : Predicate<std::tuple<Fact<QualName>, std::vector<FieldSpecification>, std::vector<Fact<StructuredAnnotation>>>> {
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_<facebook::glean::cpp::schema::Fbthrift::UnqualField> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::FieldId>, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::Identifier, Array<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>;
};
namespace schema {
namespace Fbthrift {
struct UnqualField {
FieldId id;
Fact<TypeSpecification> type_;
Fact<Identifier> name;
std::vector<Fact<StructuredAnnotation>> 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<Repr<UnqualField>> out) const {
outputValue(out, std::make_tuple(id, type_, name, structuredAnnotations));
}
}; // struct UnqualField
struct UnionType : Predicate<std::tuple<Fact<QualName>, std::vector<UnqualField>, std::vector<Fact<StructuredAnnotation>>>> {
static const char* GLEAN_name() {
return "fbthrift.UnionType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct UnionType
struct FieldDecl : Predicate<std::tuple<Fact<QualName>, FieldKind, Fact<Identifier>>> {
static const char* GLEAN_name() {
return "fbthrift.FieldDecl";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FieldDecl
struct ExceptionVal : Predicate<Fact<StructVal>> {
static const char* GLEAN_name() {
return "fbthrift.ExceptionVal";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ExceptionVal
struct ExceptionType : Predicate<std::tuple<Fact<QualName>, std::vector<FieldSpecification>, std::vector<Fact<StructuredAnnotation>>>> {
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_<facebook::glean::cpp::schema::Fbthrift::ExceptionSpecName> {
using Type = Sum<facebook::glean::cpp::schema::Fbthrift::ExceptionName, facebook::glean::cpp::schema::Fbthrift::TypeDefException>;
};
namespace schema {
namespace Fbthrift {
struct ExceptionSpecName {
boost::variant<Alt<0, Fact<ExceptionName>>, Alt<1, Fact<TypeDefException>>> GLEAN_value;
static ExceptionSpecName simple(const Fact<ExceptionName>& a) {
return ExceptionSpecName{Alt<0, Fact<ExceptionName>>(a)};
}
static ExceptionSpecName typedef_(const Fact<TypeDefException>& a) {
return ExceptionSpecName{Alt<1, Fact<TypeDefException>>(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<Repr<ExceptionSpecName>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ExceptionSpecName
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::ExceptionSpecification> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Fbthrift::FieldId>, Repr<facebook::glean::cpp::schema::Fbthrift::ExceptionSpecName>, facebook::glean::cpp::schema::Fbthrift::Identifier, Array<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>;
};
namespace schema {
namespace Fbthrift {
struct ExceptionSpecification {
FieldId id;
ExceptionSpecName type_;
Fact<Identifier> name;
std::vector<Fact<StructuredAnnotation>> 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<Repr<ExceptionSpecification>> out) const {
outputValue(out, std::make_tuple(id, type_, name, structuredAnnotations));
}
}; // struct ExceptionSpecification
} // namespace Fbthrift
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Fbthrift::ResultStream> {
using Type = Tuple<Maybe<facebook::glean::cpp::schema::Fbthrift::TypeSpecification>, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Array<Repr<facebook::glean::cpp::schema::Fbthrift::ExceptionSpecification>>>;
};
namespace schema {
namespace Fbthrift {
struct ResultStream {
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<TypeSpecification>>> response;
Fact<TypeSpecification> stream_;
std::vector<ExceptionSpecification> 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<Repr<ResultStream>> out) const {
outputValue(out, std::make_tuple(response, stream_, throws_));
}
}; // struct ResultStream
struct TypeDefException : Predicate<std::tuple<Fact<NamedDecl>, ExceptionSpecName>> {
static const char* GLEAN_name() {
return "fbthrift.TypeDefException";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TypeDefException
struct ExceptionName : Predicate<std::tuple<Fact<QualName>>> {
static const char* GLEAN_name() {
return "fbthrift.ExceptionName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ExceptionName
struct EnumerationType : Predicate<std::tuple<Fact<QualName>, std::vector<Fact<EnumValueDef>>, std::vector<Fact<StructuredAnnotation>>>> {
static const char* GLEAN_name() {
return "fbthrift.EnumerationType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EnumerationType
struct EnumValueDef : Predicate<std::tuple<Fact<EnumValue>, IntegerLiteral, std::vector<Fact<StructuredAnnotation>>>> {
static const char* GLEAN_name() {
return "fbthrift.EnumValueDef";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EnumValueDef
struct EnumValue : Predicate<std::tuple<NamedType, Fact<Identifier>>> {
static const char* GLEAN_name() {
return "fbthrift.EnumValue";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EnumValue
struct EnumVal : Predicate<std::tuple<Fact<QualName>>> {
static const char* GLEAN_name() {
return "fbthrift.EnumVal";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EnumVal
using Declaration = XRefTarget;
struct DeclarationComment : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Fact<File>>> {
static const char* GLEAN_name() {
return "fbthrift.DeclarationFile";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationFile
struct DeclarationMember : Predicate<std::tuple<Fact<QualName>, Fact<Identifier>, Declaration>> {
static const char* GLEAN_name() {
return "fbthrift.DeclarationMember";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationMember
struct DeclarationName : Predicate<std::tuple<Fact<QualName>, Declaration>> {
static const char* GLEAN_name() {
return "fbthrift.DeclarationName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationName
struct DeclarationNameSpan : Predicate<std::tuple<Declaration, Fact<Identifier>, Fact<File>, Loc>> {
static const char* GLEAN_name() {
return "fbthrift.DeclarationNameSpan";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationNameSpan
struct DeclarationUses : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, Loc>> {
static const char* GLEAN_name() {
return "fbthrift.DeclarationUses";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationUses
struct FileDeclaration : Predicate<std::tuple<Fact<File>, Declaration>> {
static const char* GLEAN_name() {
return "fbthrift.FileDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileDeclaration
struct FunctionDeclarationName : Predicate<std::tuple<Fact<QualName>, Fact<Identifier>, 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<std::tuple<Declaration, facebook::glean::cpp::schema::Fbthrift::Declaration>> {
static const char* GLEAN_name() {
return "hack.HackToThrift";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct HackToThrift
struct ThriftToHack : Predicate<std::tuple<facebook::glean::cpp::schema::Fbthrift::Declaration, Declaration>> {
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_<facebook::glean::cpp::schema::Fbthrift::ContainerType> {
using Type = Sum<facebook::glean::cpp::schema::Fbthrift::TypeSpecification, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Repr<facebook::glean::cpp::schema::Fbthrift::MapType>>;
};
namespace schema {
namespace Fbthrift {
struct ContainerType {
boost::variant<Alt<0, Fact<TypeSpecification>>, Alt<1, Fact<TypeSpecification>>, Alt<2, MapType>> GLEAN_value;
static ContainerType list_(const Fact<TypeSpecification>& a) {
return ContainerType{Alt<0, Fact<TypeSpecification>>(a)};
}
static ContainerType set_(const Fact<TypeSpecification>& a) {
return ContainerType{Alt<1, Fact<TypeSpecification>>(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<Repr<ContainerType>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ContainerType
struct TypeSpecification : Predicate<boost::variant<Alt<0, PrimitiveType>, 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<std::tuple<Fact<Constant>, TypedConstT>> {
static const char* GLEAN_name() {
return "fbthrift.ConstantDefinition";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ConstantDefinition
struct Constant : Predicate<std::tuple<Fact<QualName>>> {
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<std::tuple<std::string, std::string>> {
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_<facebook::glean::cpp::schema::Erlang::Fqn> {
using Type = Tuple<String, String, Nat>;
};
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<Repr<Fqn>> out) const {
outputValue(out, std::make_tuple(module, name, arity));
}
}; // struct Fqn
struct FunctionDeclaration : Predicate<std::tuple<Fqn, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Erlang::XRefViaFqn> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Erlang::Fqn>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
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<Repr<XRefViaFqn>> out) const {
outputValue(out, std::make_tuple(target, source));
}
}; // struct XRefViaFqn
struct XRefsViaFqnByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRefViaFqn>>> {
static const char* GLEAN_name() {
return "erlang.XRefsViaFqnByFile";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct XRefsViaFqnByFile
struct DeclarationComment : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Erlang::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Erlang::FunctionDeclaration>;
};
namespace schema {
namespace Erlang {
struct Declaration {
boost::variant<Alt<0, Fact<FunctionDeclaration>>> GLEAN_value;
static Declaration func(const Fact<FunctionDeclaration>& a) {
return Declaration{Alt<0, Fact<FunctionDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "erlang.DeclarationReference";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationReference
struct DeclarationToFqn : Predicate<Declaration, Fqn> {
static const char* GLEAN_name() {
return "erlang.DeclarationToFqn";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationToFqn
struct DeclarationUses : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fqn, Declaration>> {
static const char* GLEAN_name() {
return "erlang.DeclarationWithFqn";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationWithFqn
struct DeclarationsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<std::string, Declaration>> {
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_<facebook::glean::cpp::schema::Dyn::Usage> {
using Type = Enum<3>;
};
namespace schema {
namespace Dyn {
enum class Usage { Unused, Enumerated, Used };
struct ObserverIdentifier : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Dyn::Observer> {
using Type = Sum<facebook::glean::cpp::schema::Dyn::ObserverIdentifier, facebook::glean::cpp::schema::Dyn::ObserverIdentifier>;
};
namespace schema {
namespace Dyn {
struct Observer {
boost::variant<Alt<0, Fact<ObserverIdentifier>>, Alt<1, Fact<ObserverIdentifier>>> GLEAN_value;
static Observer symbol(const Fact<ObserverIdentifier>& a) {
return Observer{Alt<0, Fact<ObserverIdentifier>>(a)};
}
static Observer other(const Fact<ObserverIdentifier>& a) {
return Observer{Alt<1, Fact<ObserverIdentifier>>(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<Repr<Observer>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Observer
struct Environment : Predicate<std::string> {
static const char* GLEAN_name() {
return "dyn.Environment";
}
static constexpr size_t GLEAN_version() {
return 6;
}
}; // struct Environment
struct EntityDynamicReference : Predicate<std::tuple<Fact<EntityUsage>, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Digest::Digest> {
using Type = Tuple<String, Nat>;
};
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<Repr<Digest>> out) const {
outputValue(out, std::make_tuple(hash, size));
}
}; // struct Digest
struct FileDigest : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Glass::FileMetadata> {
using Type = Tuple<Bool, Maybe<facebook::glean::cpp::schema::Src::FileLines>, Maybe<Repr<facebook::glean::cpp::schema::Digest::Digest>>, Maybe<facebook::glean::cpp::schema::Src::IndexFailure>>;
};
namespace schema {
namespace Glass {
struct FileMetadata {
bool indexed;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::FileLines>>> offsets;
boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Digest::Digest>> digest;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::IndexFailure>>> 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<Repr<FileMetadata>> out) const {
outputValue(out, std::make_tuple(indexed, offsets, digest, indexFailure));
}
}; // struct FileMetadata
struct FileInfo : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "dataswarm.TableDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TableDeclaration
struct TableColumnDeclaration : Predicate<std::tuple<std::string, std::string, std::string>> {
static const char* GLEAN_name() {
return "dataswarm.TableColumnDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TableColumnDeclaration
struct SubqueryDeclaration : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "dataswarm.SubqueryDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SubqueryDeclaration
struct SubqueryColumnDeclaration : Predicate<std::tuple<std::string, std::string, std::string>> {
static const char* GLEAN_name() {
return "dataswarm.SubqueryColumnDeclaration";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SubqueryColumnDeclaration
struct MacroDeclaration : Predicate<std::tuple<std::string, std::string>> {
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_<facebook::glean::cpp::schema::Dataswarm::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Dataswarm::MacroDeclaration, facebook::glean::cpp::schema::Dataswarm::TableDeclaration, facebook::glean::cpp::schema::Dataswarm::SubqueryDeclaration, facebook::glean::cpp::schema::Dataswarm::TableColumnDeclaration, facebook::glean::cpp::schema::Dataswarm::SubqueryColumnDeclaration>;
};
namespace schema {
namespace Dataswarm {
struct Declaration {
boost::variant<Alt<0, Fact<MacroDeclaration>>, Alt<1, Fact<TableDeclaration>>, Alt<2, Fact<SubqueryDeclaration>>, Alt<3, Fact<TableColumnDeclaration>>, Alt<4, Fact<SubqueryColumnDeclaration>>> GLEAN_value;
static Declaration macro(const Fact<MacroDeclaration>& a) {
return Declaration{Alt<0, Fact<MacroDeclaration>>(a)};
}
static Declaration table(const Fact<TableDeclaration>& a) {
return Declaration{Alt<1, Fact<TableDeclaration>>(a)};
}
static Declaration subquery(const Fact<SubqueryDeclaration>& a) {
return Declaration{Alt<2, Fact<SubqueryDeclaration>>(a)};
}
static Declaration table_column(const Fact<TableColumnDeclaration>& a) {
return Declaration{Alt<3, Fact<TableColumnDeclaration>>(a)};
}
static Declaration subquery_column(const Fact<SubqueryColumnDeclaration>& a) {
return Declaration{Alt<4, Fact<SubqueryColumnDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, std::string>> {
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_<facebook::glean::cpp::schema::Dataswarm::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Dataswarm::Declaration>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>>;
};
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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(target, source));
}
}; // struct XRef
struct XRefsByFile : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRef>>> {
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_<facebook::glean::cpp::schema::Cxx1::XRefVia> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::UsingDeclaration, facebook::glean::cpp::schema::Cxx1::UsingDirective, facebook::glean::cpp::schema::Pp1::Use>;
};
namespace schema {
namespace Cxx1 {
struct XRefVia {
boost::variant<Alt<0, Fact<UsingDeclaration>>, Alt<1, Fact<UsingDirective>>, Alt<2, Fact<facebook::glean::cpp::schema::Pp1::Use>>> GLEAN_value;
static XRefVia usingDeclaration(const Fact<UsingDeclaration>& a) {
return XRefVia{Alt<0, Fact<UsingDeclaration>>(a)};
}
static XRefVia usingDirective(const Fact<UsingDirective>& a) {
return XRefVia{Alt<1, Fact<UsingDirective>>(a)};
}
static XRefVia macro(const Fact<facebook::glean::cpp::schema::Pp1::Use>& a) {
return XRefVia{Alt<2, Fact<facebook::glean::cpp::schema::Pp1::Use>>(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<Repr<XRefVia>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefVia
struct VariableLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.VariableLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct VariableLowerCase
struct UsingDirective : Predicate<std::tuple<Fact<QName>, 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<std::tuple<Fact<FunctionQName>, 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<std::tuple<std::string, std::string>> {
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_<facebook::glean::cpp::schema::Cxx1::TypeAliasKind> {
using Type = Enum<2>;
};
namespace schema {
namespace Cxx1 {
enum class TypeAliasKind { Typedef, Using };
struct TypeAliasDeclaration : Predicate<std::tuple<Fact<QName>, Fact<Type>, 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<std::string> {
static const char* GLEAN_name() {
return "cxx1.Type";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct Type
struct TranslationUnitXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Buck::TranslationUnit>, std::vector<Fact<FileXRefs>>>> {
static const char* GLEAN_name() {
return "cxx1.TranslationUnitXRefs";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct TranslationUnitXRefs
struct TranslationUnitTrace : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Buck::TranslationUnit>, Fact<Trace>>> {
static const char* GLEAN_name() {
return "cxx1.TranslationUnitTrace";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct TranslationUnitTrace
struct TranslationUnitIncludeTree : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Buck::TranslationUnit>, Fact<IncludeTree>>> {
static const char* GLEAN_name() {
return "cxx1.TranslationUnitIncludeTree";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct TranslationUnitIncludeTree
struct Trace : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Declarations>, Fact<PPTrace>>> {
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_<facebook::glean::cpp::schema::Cxx1::RefQualifier> {
using Type = Enum<3>;
};
namespace schema {
namespace Cxx1 {
enum class RefQualifier { None_, LValue, RValue };
struct RecordUnionLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.RecordUnionLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordUnionLowerCase
struct RecordStructLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.RecordStructLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordStructLowerCase
struct RecordDerived : Predicate<std::tuple<Fact<RecordDeclaration>, Fact<RecordDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.RecordDerived";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordDerived
struct RecordClassLowerCase : Predicate<std::tuple<std::string, std::string>> {
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_<facebook::glean::cpp::schema::Cxx1::PpEntity> {
using Type = Sum<facebook::glean::cpp::schema::Pp1::Define, facebook::glean::cpp::schema::Pp1::Undef, facebook::glean::cpp::schema::Src::File>;
};
namespace schema {
namespace Cxx1 {
struct PpEntity {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Pp1::Define>>, Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Undef>>, Alt<2, Fact<facebook::glean::cpp::schema::Src::File>>> GLEAN_value;
static PpEntity define(const Fact<facebook::glean::cpp::schema::Pp1::Define>& a) {
return PpEntity{Alt<0, Fact<facebook::glean::cpp::schema::Pp1::Define>>(a)};
}
static PpEntity undef(const Fact<facebook::glean::cpp::schema::Pp1::Undef>& a) {
return PpEntity{Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Undef>>(a)};
}
static PpEntity include_(const Fact<facebook::glean::cpp::schema::Src::File>& a) {
return PpEntity{Alt<2, Fact<facebook::glean::cpp::schema::Src::File>>(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<Repr<PpEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct PpEntity
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::Parameter> {
using Type = Tuple<facebook::glean::cpp::schema::Cxx1::Name, facebook::glean::cpp::schema::Cxx1::Type>;
};
namespace schema {
namespace Cxx1 {
struct Parameter {
Fact<Name> name;
Fact<Type> 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<Repr<Parameter>> out) const {
outputValue(out, std::make_tuple(name, type));
}
}; // struct Parameter
struct Signature : Predicate<std::tuple<Fact<Type>, std::vector<Parameter>>> {
static const char* GLEAN_name() {
return "cxx1.Signature";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct Signature
struct PPDefineLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Pp1::Define>, std::string, Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Cxx1::ObjcSelectorSlot> {
using Type = Tuple<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration, Nat>;
};
namespace schema {
namespace Cxx1 {
struct ObjcSelectorSlot {
Fact<ObjcMethodDeclaration> 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<Repr<ObjcSelectorSlot>> out) const {
outputValue(out, std::make_tuple(objcMethod, index));
}
}; // struct ObjcSelectorSlot
struct ObjcSelector : Predicate<std::vector<std::string>> {
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_<facebook::glean::cpp::schema::Cxx1::ObjcPropertyKind> {
using Type = Enum<2>;
};
namespace schema {
namespace Cxx1 {
enum class ObjcPropertyKind { Synthesize, Dynamic };
struct ObjcPropertyImplementation : Predicate<std::tuple<Fact<ObjcPropertyDeclaration>, ObjcPropertyKind, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Name>>>, 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<std::tuple<Fact<ObjcPropertyDeclaration>, Fact<VariableDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcPropertyIVar";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcPropertyIVar
struct ObjcMethodDefinition : Predicate<Fact<ObjcMethodDeclaration>> {
static const char* GLEAN_name() {
return "cxx1.ObjcMethodDefinition";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcMethodDefinition
struct ObjcMethodDeclarationName : Predicate<std::tuple<Fact<ObjcMethodDeclaration>, Fact<Name>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcMethodDeclarationName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcMethodDeclarationName
struct ObjcInterfaceToImplementation : Predicate<std::tuple<Fact<ObjcContainerDeclaration>, Fact<ObjcContainerDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcInterfaceToImplementation";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcInterfaceToImplementation
struct ObjcImplements : Predicate<std::tuple<Fact<ObjcContainerDeclaration>, Fact<ObjcContainerDeclaration>>> {
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_<facebook::glean::cpp::schema::Cxx1::ObjcIVar> {
using Type = Tuple<Bool, Maybe<Nat>>;
};
namespace schema {
namespace Cxx1 {
struct ObjcIVar {
bool synthesize;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<ObjcIVar>> out) const {
outputValue(out, std::make_tuple(synthesize, bitsize));
}
}; // struct ObjcIVar
struct ObjcContainerInterfaceLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.ObjcContainerInterfaceLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcContainerInterfaceLowerCase
struct ObjcContainerInheritance : Predicate<std::tuple<Fact<ObjcContainerDeclaration>, Fact<ObjcContainerDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcContainerInheritance";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcContainerInheritance
struct ObjcContainerDefinition : Predicate<std::tuple<Fact<ObjcContainerDeclaration>, std::vector<Fact<ObjcContainerDeclaration>>, Fact<Declarations>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcContainerDefinition";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcContainerDefinition
struct ObjcContainerDeclarationInterface : Predicate<std::tuple<std::string, Fact<ObjcContainerDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.ObjcContainerDeclarationInterface";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcContainerDeclarationInterface
struct ObjcContainerBase : Predicate<std::tuple<Fact<ObjcContainerDeclaration>, Fact<ObjcContainerDeclaration>>> {
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_<facebook::glean::cpp::schema::Cxx1::ObjcCategoryId> {
using Type = Tuple<facebook::glean::cpp::schema::Cxx1::Name, facebook::glean::cpp::schema::Cxx1::Name>;
};
namespace schema {
namespace Cxx1 {
struct ObjcCategoryId {
Fact<Name> className;
Fact<Name> 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<Repr<ObjcCategoryId>> out) const {
outputValue(out, std::make_tuple(className, categoryName));
}
}; // struct ObjcCategoryId
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::ObjcContainerId> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::Name, facebook::glean::cpp::schema::Cxx1::Name, Repr<facebook::glean::cpp::schema::Cxx1::ObjcCategoryId>, facebook::glean::cpp::schema::Cxx1::Name, facebook::glean::cpp::schema::Cxx1::Name, Repr<facebook::glean::cpp::schema::Cxx1::ObjcCategoryId>>;
};
namespace schema {
namespace Cxx1 {
struct ObjcContainerId {
boost::variant<Alt<0, Fact<Name>>, Alt<1, Fact<Name>>, Alt<2, ObjcCategoryId>, Alt<3, Fact<Name>>, Alt<4, Fact<Name>>, Alt<5, ObjcCategoryId>> GLEAN_value;
static ObjcContainerId protocol(const Fact<Name>& a) {
return ObjcContainerId{Alt<0, Fact<Name>>(a)};
}
static ObjcContainerId interface_(const Fact<Name>& a) {
return ObjcContainerId{Alt<1, Fact<Name>>(a)};
}
static ObjcContainerId categoryInterface(const ObjcCategoryId& a) {
return ObjcContainerId{Alt<2, ObjcCategoryId>(a)};
}
static ObjcContainerId extensionInterface(const Fact<Name>& a) {
return ObjcContainerId{Alt<3, Fact<Name>>(a)};
}
static ObjcContainerId implementation(const Fact<Name>& a) {
return ObjcContainerId{Alt<4, Fact<Name>>(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<Repr<ObjcContainerId>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ObjcContainerId
struct ObjcContainerDeclaration : Predicate<std::tuple<ObjcContainerId, facebook::glean::cpp::schema::Src::Range>> {
static const char* GLEAN_name() {
return "cxx1.ObjcContainerDeclaration";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ObjcContainerDeclaration
struct ObjcMethodDeclaration : Predicate<std::tuple<Fact<ObjcSelector>, std::vector<facebook::glean::cpp::schema::Src::FileLocation>, ObjcContainerId, Fact<Signature>, 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<std::tuple<Fact<Name>, ObjcContainerId, Fact<Type>, 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<std::tuple<ObjcContainerId, Fact<Name>>> {
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_<facebook::glean::cpp::schema::Cxx1::NamespaceTarget> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration, facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration>;
};
namespace schema {
namespace Cxx1 {
struct NamespaceTarget {
boost::variant<Alt<0, Fact<NamespaceDeclaration>>, Alt<1, Fact<NamespaceAliasDeclaration>>> GLEAN_value;
static NamespaceTarget namespace_(const Fact<NamespaceDeclaration>& a) {
return NamespaceTarget{Alt<0, Fact<NamespaceDeclaration>>(a)};
}
static NamespaceTarget namespaceAlias(const Fact<NamespaceAliasDeclaration>& a) {
return NamespaceTarget{Alt<1, Fact<NamespaceAliasDeclaration>>(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<Repr<NamespaceTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct NamespaceTarget
struct NamespaceQName : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Name>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>>> {
static const char* GLEAN_name() {
return "cxx1.NamespaceQName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct NamespaceQName
struct NamespaceLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.NamespaceLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct NamespaceLowerCase
struct NamespaceDefinition : Predicate<std::tuple<Fact<NamespaceDeclaration>, Fact<Declarations>>> {
static const char* GLEAN_name() {
return "cxx1.NamespaceDefinition";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct NamespaceDefinition
struct NamespaceDeclarationName : Predicate<std::tuple<Fact<NamespaceQName>, Fact<Name>>> {
static const char* GLEAN_name() {
return "cxx1.NamespaceDeclarationName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct NamespaceDeclarationName
struct NamespaceDeclarationByName : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>>, Fact<NamespaceDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.NamespaceDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct NamespaceDeclarationByName
struct NamespaceDeclaration : Predicate<std::tuple<Fact<NamespaceQName>, 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<std::tuple<Fact<NamespaceQName>, 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<std::string> {
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_<facebook::glean::cpp::schema::Cxx1::MethodSignature> {
using Type = Tuple<Bool, Bool, Bool, Repr<facebook::glean::cpp::schema::Cxx1::RefQualifier>>;
};
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<Repr<MethodSignature>> out) const {
outputValue(out, std::make_tuple(isVirtual, isConst, isVolatile, refQualifier));
}
}; // struct MethodSignature
struct MethodOverrides : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.MethodOverrides";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct MethodOverrides
struct MethodOverridden : Predicate<std::tuple<Fact<FunctionDeclaration>, Fact<FunctionDeclaration>>> {
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_<facebook::glean::cpp::schema::Cxx1::MaybeIncludeTree> {
using Type = Tuple<Maybe<facebook::glean::cpp::schema::Cxx1::IncludeTree>>;
};
namespace schema {
namespace Cxx1 {
struct MaybeIncludeTree {
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<IncludeTree>>> 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<Repr<MaybeIncludeTree>> out) const {
outputValue(out, std::make_tuple(tree));
}
}; // struct MaybeIncludeTree
using MangledNameHash = std::string;
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::LocalVariableKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Cxx1 {
enum class LocalVariableKind { SimpleVariable, StaticVariable, Parameter };
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::LocalVariableAttribute> {
using Type = Enum<2>;
};
namespace schema {
namespace Cxx1 {
enum class LocalVariableAttribute { Plain, Constexpr };
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::LocalVariable> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Cxx1::LocalVariableKind>, Repr<facebook::glean::cpp::schema::Cxx1::LocalVariableAttribute>>;
};
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<Repr<LocalVariable>> out) const {
outputValue(out, std::make_tuple(kind, attribute));
}
}; // struct LocalVariable
using LiteralOperator = std::string;
struct IncludeTreeTranslationUnit : Predicate<std::tuple<Fact<IncludeTree>, Fact<facebook::glean::cpp::schema::Buck::TranslationUnit>>> {
static const char* GLEAN_name() {
return "cxx1.IncludeTreeTranslationUnit";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct IncludeTreeTranslationUnit
struct IncludeTreeParent : Predicate<std::tuple<Fact<IncludeTree>, Fact<IncludeTree>>> {
static const char* GLEAN_name() {
return "cxx1.IncludeTreeParent";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct IncludeTreeParent
struct IncludeTree : Predicate<std::tuple<Fact<Trace>, std::vector<MaybeIncludeTree>>> {
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_<facebook::glean::cpp::schema::Cxx1::IncludeTrace> {
using Type = Tuple<facebook::glean::cpp::schema::Pp1::Include, Maybe<facebook::glean::cpp::schema::Cxx1::Trace>>;
};
namespace schema {
namespace Cxx1 {
struct IncludeTrace {
Fact<facebook::glean::cpp::schema::Pp1::Include> include_;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Trace>>> 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<Repr<IncludeTrace>> out) const {
outputValue(out, std::make_tuple(include_, trace));
}
}; // struct IncludeTrace
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::PPEvent> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Cxx1::IncludeTrace>, 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<0, IncludeTrace>, Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Define>>, Alt<2, Fact<facebook::glean::cpp::schema::Pp1::Undef>>, Alt<3, Fact<facebook::glean::cpp::schema::Pp1::Use>>> GLEAN_value;
static PPEvent include_(const IncludeTrace& a) {
return PPEvent{Alt<0, IncludeTrace>(a)};
}
static PPEvent define(const Fact<facebook::glean::cpp::schema::Pp1::Define>& a) {
return PPEvent{Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Define>>(a)};
}
static PPEvent undef(const Fact<facebook::glean::cpp::schema::Pp1::Undef>& a) {
return PPEvent{Alt<2, Fact<facebook::glean::cpp::schema::Pp1::Undef>>(a)};
}
static PPEvent use(const Fact<facebook::glean::cpp::schema::Pp1::Use>& a) {
return PPEvent{Alt<3, Fact<facebook::glean::cpp::schema::Pp1::Use>>(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<Repr<PPEvent>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct PPEvent
struct PPTrace : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<PPEvent>>> {
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_<facebook::glean::cpp::schema::Cxx1::GlobalVariableKind> {
using Type = Enum<3>;
};
namespace schema {
namespace Cxx1 {
enum class GlobalVariableKind { SimpleVariable, StaticVariable, StaticMember };
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::GlobalVariableAttribute> {
using Type = Enum<3>;
};
namespace schema {
namespace Cxx1 {
enum class GlobalVariableAttribute { Plain, Inline, Constexpr };
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::GlobalVariable> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Cxx1::GlobalVariableKind>, Repr<facebook::glean::cpp::schema::Cxx1::GlobalVariableAttribute>, 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<Repr<GlobalVariable>> out) const {
outputValue(out, std::make_tuple(kind, attribute, definition));
}
}; // struct GlobalVariable
struct FunctionLowerCase : Predicate<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.FunctionLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionLowerCase
struct FunctionDefinition : Predicate<std::tuple<Fact<FunctionDeclaration>, bool>> {
static const char* GLEAN_name() {
return "cxx1.FunctionDefinition";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionDefinition
struct FunctionDeclarationNameString : Predicate<std::tuple<Fact<FunctionName>, std::string>> {
static const char* GLEAN_name() {
return "cxx1.FunctionDeclarationNameString";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionDeclarationNameString
struct FunctionDeclarationName : Predicate<std::tuple<Fact<FunctionName>, Fact<Name>>> {
static const char* GLEAN_name() {
return "cxx1.FunctionDeclarationName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionDeclarationName
struct FunctionDeclaration : Predicate<std::tuple<Fact<FunctionQName>, Fact<Signature>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<FunctionDeclaration>, Fact<Attribute>>> {
static const char* GLEAN_name() {
return "cxx1.FunctionDeclAttribute";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionDeclAttribute
struct FunctionAttribute : Predicate<std::tuple<Fact<Attribute>, Fact<FunctionDeclaration>>> {
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_<facebook::glean::cpp::schema::Cxx1::From> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Src::PackedByteSpans>, Repr<facebook::glean::cpp::schema::Src::PackedByteSpans>, Repr<facebook::glean::cpp::schema::Src::PackedByteSpans>>;
};
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<Repr<From>> out) const {
outputValue(out, std::make_tuple(spans, expansions, spellings));
}
}; // struct From
struct FileXRefs : Predicate<std::tuple<Fact<FileXRefMap>, std::vector<Fact<XRefTargets>>>> {
static const char* GLEAN_name() {
return "cxx1.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FileXRefs
struct FilePPUseXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::Range, Fact<facebook::glean::cpp::schema::Pp1::Define>>> {
static const char* GLEAN_name() {
return "cxx1.FilePPUseXRefs";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FilePPUseXRefs
struct FilePPUseTraceXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Trace>, facebook::glean::cpp::schema::Src::Range, Fact<facebook::glean::cpp::schema::Pp1::Define>>> {
static const char* GLEAN_name() {
return "cxx1.FilePPUseTraceXRefs";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FilePPUseTraceXRefs
struct FilePPTraceXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Trace>, 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_<facebook::glean::cpp::schema::Cxx1::Field> {
using Type = Tuple<Bool, Maybe<Nat>>;
};
namespace schema {
namespace Cxx1 {
struct Field {
bool mutable_;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<Field>> out) const {
outputValue(out, std::make_tuple(mutable_, bitsize));
}
}; // struct Field
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::VariableKind> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Cxx1::GlobalVariable>, Repr<facebook::glean::cpp::schema::Cxx1::LocalVariable>, Repr<facebook::glean::cpp::schema::Cxx1::Field>, Repr<facebook::glean::cpp::schema::Cxx1::ObjcIVar>>;
};
namespace schema {
namespace Cxx1 {
struct VariableKind {
boost::variant<Alt<0, GlobalVariable>, 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<Repr<VariableKind>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct VariableKind
struct VariableDeclaration : Predicate<std::tuple<Fact<QName>, Fact<Type>, 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<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.EnumeratorLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumeratorLowerCase
struct EnumeratorInEnum : Predicate<std::tuple<Fact<Enumerator>, Fact<EnumDefinition>>> {
static const char* GLEAN_name() {
return "cxx1.EnumeratorInEnum";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumeratorInEnum
struct EnumeratorByName : Predicate<std::tuple<std::string, Fact<Enumerator>>> {
static const char* GLEAN_name() {
return "cxx1.EnumeratorByName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumeratorByName
struct Enumerator : Predicate<std::tuple<Fact<Name>, Fact<EnumDeclaration>, 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<std::tuple<std::string, std::string>> {
static const char* GLEAN_name() {
return "cxx1.EnumLowerCase";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumLowerCase
struct EnumDefinition : Predicate<std::tuple<Fact<EnumDeclaration>, std::vector<Fact<Enumerator>>>> {
static const char* GLEAN_name() {
return "cxx1.EnumDefinition";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumDefinition
struct EnumDeclaration : Predicate<std::tuple<Fact<QName>, bool, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Type>>>, 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_<facebook::glean::cpp::schema::Cxx1::DefinitionEntity> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::RecordDefinition, facebook::glean::cpp::schema::Cxx1::FunctionDefinition, facebook::glean::cpp::schema::Cxx1::EnumDefinition, facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition, facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition, facebook::glean::cpp::schema::Cxx1::VariableDeclaration, facebook::glean::cpp::schema::Cxx1::NamespaceDefinition>;
};
namespace schema {
namespace Cxx1 {
struct DefinitionEntity {
boost::variant<Alt<0, Fact<RecordDefinition>>, Alt<1, Fact<FunctionDefinition>>, Alt<2, Fact<EnumDefinition>>, Alt<3, Fact<ObjcMethodDefinition>>, Alt<4, Fact<ObjcContainerDefinition>>, Alt<5, Fact<VariableDeclaration>>, Alt<6, Fact<NamespaceDefinition>>> GLEAN_value;
static DefinitionEntity record_(const Fact<RecordDefinition>& a) {
return DefinitionEntity{Alt<0, Fact<RecordDefinition>>(a)};
}
static DefinitionEntity function_(const Fact<FunctionDefinition>& a) {
return DefinitionEntity{Alt<1, Fact<FunctionDefinition>>(a)};
}
static DefinitionEntity enum_(const Fact<EnumDefinition>& a) {
return DefinitionEntity{Alt<2, Fact<EnumDefinition>>(a)};
}
static DefinitionEntity objcMethod(const Fact<ObjcMethodDefinition>& a) {
return DefinitionEntity{Alt<3, Fact<ObjcMethodDefinition>>(a)};
}
static DefinitionEntity objcContainer(const Fact<ObjcContainerDefinition>& a) {
return DefinitionEntity{Alt<4, Fact<ObjcContainerDefinition>>(a)};
}
static DefinitionEntity variable(const Fact<VariableDeclaration>& a) {
return DefinitionEntity{Alt<5, Fact<VariableDeclaration>>(a)};
}
static DefinitionEntity namespace_(const Fact<NamespaceDefinition>& a) {
return DefinitionEntity{Alt<6, Fact<NamespaceDefinition>>(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<Repr<DefinitionEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct DefinitionEntity
struct DefnInRecord : Predicate<std::tuple<DefinitionEntity, Fact<RecordDefinition>>> {
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_<facebook::glean::cpp::schema::Cxx1::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration, facebook::glean::cpp::schema::Cxx1::UsingDeclaration, facebook::glean::cpp::schema::Cxx1::UsingDirective, facebook::glean::cpp::schema::Cxx1::RecordDeclaration, facebook::glean::cpp::schema::Cxx1::EnumDeclaration, facebook::glean::cpp::schema::Cxx1::FunctionDeclaration, facebook::glean::cpp::schema::Cxx1::VariableDeclaration, facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclaration, facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration, facebook::glean::cpp::schema::Cxx1::ObjcPropertyDeclaration, facebook::glean::cpp::schema::Cxx1::TypeAliasDeclaration, facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration>;
};
namespace schema {
namespace Cxx1 {
struct Declaration {
boost::variant<Alt<0, Fact<NamespaceDeclaration>>, Alt<1, Fact<UsingDeclaration>>, Alt<2, Fact<UsingDirective>>, Alt<3, Fact<RecordDeclaration>>, Alt<4, Fact<EnumDeclaration>>, Alt<5, Fact<FunctionDeclaration>>, Alt<6, Fact<VariableDeclaration>>, Alt<7, Fact<ObjcContainerDeclaration>>, Alt<8, Fact<ObjcMethodDeclaration>>, Alt<9, Fact<ObjcPropertyDeclaration>>, Alt<10, Fact<TypeAliasDeclaration>>, Alt<11, Fact<NamespaceAliasDeclaration>>> GLEAN_value;
static Declaration namespace_(const Fact<NamespaceDeclaration>& a) {
return Declaration{Alt<0, Fact<NamespaceDeclaration>>(a)};
}
static Declaration usingDeclaration(const Fact<UsingDeclaration>& a) {
return Declaration{Alt<1, Fact<UsingDeclaration>>(a)};
}
static Declaration usingDirective(const Fact<UsingDirective>& a) {
return Declaration{Alt<2, Fact<UsingDirective>>(a)};
}
static Declaration record_(const Fact<RecordDeclaration>& a) {
return Declaration{Alt<3, Fact<RecordDeclaration>>(a)};
}
static Declaration enum_(const Fact<EnumDeclaration>& a) {
return Declaration{Alt<4, Fact<EnumDeclaration>>(a)};
}
static Declaration function_(const Fact<FunctionDeclaration>& a) {
return Declaration{Alt<5, Fact<FunctionDeclaration>>(a)};
}
static Declaration variable(const Fact<VariableDeclaration>& a) {
return Declaration{Alt<6, Fact<VariableDeclaration>>(a)};
}
static Declaration objcContainer(const Fact<ObjcContainerDeclaration>& a) {
return Declaration{Alt<7, Fact<ObjcContainerDeclaration>>(a)};
}
static Declaration objcMethod(const Fact<ObjcMethodDeclaration>& a) {
return Declaration{Alt<8, Fact<ObjcMethodDeclaration>>(a)};
}
static Declaration objcProperty(const Fact<ObjcPropertyDeclaration>& a) {
return Declaration{Alt<9, Fact<ObjcPropertyDeclaration>>(a)};
}
static Declaration typeAlias(const Fact<TypeAliasDeclaration>& a) {
return Declaration{Alt<10, Fact<TypeAliasDeclaration>>(a)};
}
static Declaration namespaceAlias(const Fact<NamespaceAliasDeclaration>& a) {
return Declaration{Alt<11, Fact<NamespaceAliasDeclaration>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationComment : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Fact<Trace>>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationInTrace";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationInTrace
struct DeclarationLocationName : Predicate<std::tuple<Declaration, facebook::glean::cpp::schema::Src::Range, std::string>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationLocationName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationLocationName
struct DeclarationLocationNameSpan : Predicate<std::tuple<Declaration, facebook::glean::cpp::schema::Src::Range, std::string, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Declaration, std::vector<Declaration>>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationSources";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationSources
struct DeclarationSrcRange : Predicate<std::tuple<Declaration, facebook::glean::cpp::schema::Src::Range>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationSrcRange";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationSrcRange
struct DeclarationTargets : Predicate<std::tuple<Declaration, std::vector<Declaration>>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationTargets";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationTargets
struct DeclarationToUSR : Predicate<std::tuple<Declaration, USR>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationToUSR";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationToUSR
struct Declarations : Predicate<std::vector<Declaration>> {
static const char* GLEAN_name() {
return "cxx1.Declarations";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct Declarations
struct DefToBaseDecl : Predicate<std::tuple<DefinitionEntity, Declaration>> {
static const char* GLEAN_name() {
return "cxx1.DefToBaseDecl";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DefToBaseDecl
struct MangledNameHashToDeclaration : Predicate<std::tuple<MangledNameHash, Declaration>> {
static const char* GLEAN_name() {
return "cxx1.MangledNameHashToDeclaration";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct MangledNameHashToDeclaration
struct Same : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "cxx1.Same";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct Same
struct USRToDeclaration : Predicate<std::tuple<USR, Declaration>> {
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_<facebook::glean::cpp::schema::Cxx1::XRefTarget> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Cxx1::Declaration>, facebook::glean::cpp::schema::Cxx1::Enumerator, facebook::glean::cpp::schema::Cxx1::ObjcSelector, Repr<facebook::glean::cpp::schema::Cxx1::ObjcSelectorSlot>, Repr<facebook::glean::cpp::schema::Src::Loc>, facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget>;
};
namespace schema {
namespace Cxx1 {
struct XRefTarget {
boost::variant<Alt<0, Declaration>, Alt<1, Fact<Enumerator>>, Alt<2, Fact<ObjcSelector>>, Alt<3, ObjcSelectorSlot>, Alt<4, facebook::glean::cpp::schema::Src::Loc>, Alt<5, Fact<XRefIndirectTarget>>> GLEAN_value;
static XRefTarget declaration(const Declaration& a) {
return XRefTarget{Alt<0, Declaration>(a)};
}
static XRefTarget enumerator(const Fact<Enumerator>& a) {
return XRefTarget{Alt<1, Fact<Enumerator>>(a)};
}
static XRefTarget objcSelector(const Fact<ObjcSelector>& a) {
return XRefTarget{Alt<2, Fact<ObjcSelector>>(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<XRefIndirectTarget>& a) {
return XRefTarget{Alt<5, Fact<XRefIndirectTarget>>(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<Repr<XRefTarget>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefTarget
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::FixedXRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Cxx1::XRefTarget>, Repr<facebook::glean::cpp::schema::Cxx1::From>>;
};
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<Repr<FixedXRef>> out) const {
outputValue(out, std::make_tuple(target, from));
}
}; // struct FixedXRef
struct FileXRefMap : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<FixedXRef>, std::vector<From>>> {
static const char* GLEAN_name() {
return "cxx1.FileXRefMap";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FileXRefMap
struct SpellingXRef : Predicate<std::tuple<facebook::glean::cpp::schema::Src::FileLocation, XRefTarget>> {
static const char* GLEAN_name() {
return "cxx1.SpellingXRef";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct SpellingXRef
struct TargetUses : Predicate<std::tuple<XRefTarget, Fact<facebook::glean::cpp::schema::Src::File>, From>> {
static const char* GLEAN_name() {
return "cxx1.TargetUses";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct TargetUses
struct ThriftToCxx : Predicate<std::tuple<facebook::glean::cpp::schema::Fbthrift::Declaration, XRefTarget>> {
static const char* GLEAN_name() {
return "cxx1.ThriftToCxx";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct ThriftToCxx
struct XRefIndirectTarget : Predicate<std::tuple<XRefVia, XRefTarget>> {
static const char* GLEAN_name() {
return "cxx1.XRefIndirectTarget";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct XRefIndirectTarget
struct XRefTargets : Predicate<std::vector<XRefTarget>> {
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<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::Name>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::NamespaceQName>>>, 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<std::tuple<Declaration, Fact<DeclFamily>>> {
static const char* GLEAN_name() {
return "cxx1.DeclToFamily";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclToFamily
struct DeclInRecord : Predicate<std::tuple<Declaration, Fact<RecordDefinition>>> {
static const char* GLEAN_name() {
return "cxx1.DeclInRecord";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclInRecord
struct DeclInObjcContainer : Predicate<std::tuple<Declaration, Fact<ObjcContainerDefinition>>> {
static const char* GLEAN_name() {
return "cxx1.DeclInObjcContainer";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclInObjcContainer
struct DeclFamilyOf : Predicate<std::tuple<Declaration, Declaration>> {
static const char* GLEAN_name() {
return "cxx1.DeclFamilyOf";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclFamilyOf
struct DeclFamily : Predicate<std::vector<Declaration>> {
static const char* GLEAN_name() {
return "cxx1.DeclFamily";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclFamily
struct CxxToThrift : Predicate<std::tuple<XRefTarget, facebook::glean::cpp::schema::Fbthrift::Declaration>> {
static const char* GLEAN_name() {
return "cxx1.CxxToThrift";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct CxxToThrift
struct Attribute : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Cxx1::Access> {
using Type = Enum<3>;
};
namespace schema {
namespace Cxx1 {
enum class Access { Public, Protected, Private };
} // namespace Cxx1
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Cxx1::RecordBase> {
using Type = Tuple<facebook::glean::cpp::schema::Cxx1::RecordDeclaration, Repr<facebook::glean::cpp::schema::Cxx1::Access>, Bool>;
};
namespace schema {
namespace Cxx1 {
struct RecordBase {
Fact<RecordDeclaration> 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<Repr<RecordBase>> out) const {
outputValue(out, std::make_tuple(base, access, isVirtual));
}
}; // struct RecordBase
struct RecordDefinition : Predicate<std::tuple<Fact<RecordDeclaration>, std::vector<RecordBase>, Fact<Declarations>>> {
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_<facebook::glean::cpp::schema::Csharp::Variance> {
using Type = Enum<3>;
};
namespace schema {
namespace Csharp {
enum class Variance { In, None_, Out };
} // namespace Csharp
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Csharp::UnityPackageType> {
using Type = Enum<9>;
};
namespace schema {
namespace Csharp {
enum class UnityPackageType { Undefined, ThirdParty, Core, Runtime, Modules, Worlds, Apps, Clones, TestPackages };
struct UnityPackageToProject : Predicate<std::tuple<Fact<UnityPackage>, Fact<Project>>> {
static const char* GLEAN_name() {
return "csharp.UnityPackageToProject";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct UnityPackageToProject
struct UnityPackage : Predicate<std::tuple<UnityPackageType, std::string>> {
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_<facebook::glean::cpp::schema::Csharp::UnityAssemblyType> {
using Type = Enum<7>;
};
namespace schema {
namespace Csharp {
enum class UnityAssemblyType { Package, Editor, Tests, TestsEditor, UnitTests, Internal, AllApis };
struct UnityProjectSource : Predicate<std::tuple<std::string, Fact<UnityPackage>, UnityAssemblyType, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "csharp.UnityProjectSource";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct UnityProjectSource
struct TypeParameter : Predicate<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Project>>> {
static const char* GLEAN_name() {
return "csharp.SourceFileToProject";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SourceFileToProject
struct SolutionToProject : Predicate<std::tuple<Fact<Solution>, Fact<Project>>> {
static const char* GLEAN_name() {
return "csharp.SolutionToProject";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SolutionToProject
struct Solution : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>>> {
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_<facebook::glean::cpp::schema::Csharp::RefKind> {
using Type = Enum<5>;
};
namespace schema {
namespace Csharp {
enum class RefKind { In, None_, Out, Ref, RefReadOnly };
struct ProjectToSourceFile : Predicate<std::tuple<Fact<Project>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "csharp.ProjectToSourceFile";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ProjectToSourceFile
struct ProjectToSolution : Predicate<std::tuple<Fact<Project>, Fact<Solution>>> {
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_<facebook::glean::cpp::schema::Csharp::ProjectSource> {
using Type = Sum<facebook::glean::cpp::schema::Csharp::UnityProjectSource, facebook::glean::cpp::schema::Csharp::MSBuildProjectSource>;
};
namespace schema {
namespace Csharp {
struct ProjectSource {
boost::variant<Alt<0, Fact<UnityProjectSource>>, Alt<1, Fact<MSBuildProjectSource>>> GLEAN_value;
static ProjectSource unityProjectSource(const Fact<UnityProjectSource>& a) {
return ProjectSource{Alt<0, Fact<UnityProjectSource>>(a)};
}
static ProjectSource msbuildProjectSource(const Fact<MSBuildProjectSource>& a) {
return ProjectSource{Alt<1, Fact<MSBuildProjectSource>>(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<Repr<ProjectSource>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ProjectSource
struct Project : Predicate<std::tuple<ProjectSource, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Namespace>>>>> {
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_<facebook::glean::cpp::schema::Csharp::NamedType> {
using Type = Sum<facebook::glean::cpp::schema::Csharp::Class, facebook::glean::cpp::schema::Csharp::Interface, facebook::glean::cpp::schema::Csharp::Record, facebook::glean::cpp::schema::Csharp::Struct>;
};
namespace schema {
namespace Csharp {
struct NamedType {
boost::variant<Alt<0, Fact<Class>>, Alt<1, Fact<Interface>>, Alt<2, Fact<Record>>, Alt<3, Fact<Struct>>> GLEAN_value;
static NamedType class_(const Fact<Class>& a) {
return NamedType{Alt<0, Fact<Class>>(a)};
}
static NamedType interface_(const Fact<Interface>& a) {
return NamedType{Alt<1, Fact<Interface>>(a)};
}
static NamedType record_(const Fact<Record>& a) {
return NamedType{Alt<2, Fact<Record>>(a)};
}
static NamedType struct_(const Fact<Struct>& a) {
return NamedType{Alt<3, Fact<Struct>>(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<Repr<NamedType>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct NamedType
struct NameLowerCase : Predicate<std::tuple<std::string, Fact<Name>>> {
static const char* GLEAN_name() {
return "csharp.NameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct NameLowerCase
struct Name : Predicate<std::string> {
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_<facebook::glean::cpp::schema::Csharp::MethodKind> {
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_<facebook::glean::cpp::schema::Csharp::MethodInvocationExpression> {
using Type = Tuple<facebook::glean::cpp::schema::Csharp::MemberAccessLocation>;
};
namespace schema {
namespace Csharp {
struct MethodInvocationExpression {
Fact<MemberAccessLocation> 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<Repr<MethodInvocationExpression>> out) const {
outputValue(out, std::make_tuple(memberAccess));
}
}; // struct MethodInvocationExpression
} // namespace Csharp
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Csharp::MemberAccessExpression> {
using Type = Sum<facebook::glean::cpp::schema::Csharp::Local, facebook::glean::cpp::schema::Csharp::Parameter, facebook::glean::cpp::schema::Csharp::Field, facebook::glean::cpp::schema::Csharp::Property, facebook::glean::cpp::schema::Csharp::Method>;
};
namespace schema {
namespace Csharp {
struct MemberAccessExpression {
boost::variant<Alt<0, Fact<Local>>, Alt<1, Fact<Parameter>>, Alt<2, Fact<Field>>, Alt<3, Fact<Property>>, Alt<4, Fact<Method>>> GLEAN_value;
static MemberAccessExpression local(const Fact<Local>& a) {
return MemberAccessExpression{Alt<0, Fact<Local>>(a)};
}
static MemberAccessExpression parameter(const Fact<Parameter>& a) {
return MemberAccessExpression{Alt<1, Fact<Parameter>>(a)};
}
static MemberAccessExpression field(const Fact<Field>& a) {
return MemberAccessExpression{Alt<2, Fact<Field>>(a)};
}
static MemberAccessExpression property(const Fact<Property>& a) {
return MemberAccessExpression{Alt<3, Fact<Property>>(a)};
}
static MemberAccessExpression method(const Fact<Method>& a) {
return MemberAccessExpression{Alt<4, Fact<Method>>(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<Repr<MemberAccessExpression>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct MemberAccessExpression
struct MSBuildProjectSource : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>>> {
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_<facebook::glean::cpp::schema::Csharp::Location> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Src::FileLocation>, facebook::glean::cpp::schema::Src::FileLines>;
};
namespace schema {
namespace Csharp {
struct Location {
facebook::glean::cpp::schema::Src::FileLocation fileLocation;
Fact<facebook::glean::cpp::schema::Src::FileLines> 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<Repr<Location>> out) const {
outputValue(out, std::make_tuple(fileLocation, fileLines));
}
}; // struct Location
struct MemberAccessLocation : Predicate<std::tuple<MemberAccessExpression, Location>> {
static const char* GLEAN_name() {
return "csharp.MemberAccessLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct MemberAccessLocation
struct MethodInvocationLocation : Predicate<std::tuple<Fact<Method>, Location, boost::variant<Alt<0, std::tuple<>>, Alt<1, MethodInvocationExpression>>>> {
static const char* GLEAN_name() {
return "csharp.MethodInvocationLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct MethodInvocationLocation
struct Implements : Predicate<std::tuple<NamedType, Fact<Interface>>> {
static const char* GLEAN_name() {
return "csharp.Implements";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Implements
struct FunctionPointerType : Predicate<std::tuple<Fact<FullName>, Fact<Method>>> {
static const char* GLEAN_name() {
return "csharp.FunctionPointerType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FunctionPointerType
struct FullName : Predicate<std::tuple<Fact<Name>, Fact<Namespace>>> {
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_<facebook::glean::cpp::schema::Csharp::Accessibility> {
using Type = Enum<10>;
};
namespace schema {
namespace Csharp {
enum class Accessibility { Friend, Internal, NotApplicable, Private, Protected, ProtectedAndFriend, ProtectedAndInternal, ProtectedOrFriend, ProtectedOrInternal, Public };
struct Class : Predicate<std::tuple<Fact<FullName>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Class>>>, std::vector<Fact<TypeParameter>>, boost::variant<Alt<0, std::tuple<>>, 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::tuple<Fact<FullName>, std::vector<Fact<TypeParameter>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<FullName>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Record>>>, std::vector<Fact<TypeParameter>>, boost::variant<Alt<0, std::tuple<>>, 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::tuple<Fact<FullName>, std::vector<Fact<TypeParameter>>, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Csharp::AType> {
using Type = Sum<facebook::glean::cpp::schema::Csharp::ArrayType, Repr<facebook::glean::cpp::schema::Csharp::NamedType>, 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<0, Fact<ArrayType>>, Alt<1, NamedType>, Alt<2, Fact<FunctionPointerType>>, Alt<3, Fact<PointerType>>, Alt<4, Fact<TypeParameter>>> GLEAN_value;
static AType arrayType(const Fact<ArrayType>& a) {
return AType{Alt<0, Fact<ArrayType>>(a)};
}
static AType namedType(const NamedType& a) {
return AType{Alt<1, NamedType>(a)};
}
static AType functionPointerType(const Fact<FunctionPointerType>& a) {
return AType{Alt<2, Fact<FunctionPointerType>>(a)};
}
static AType pointerType(const Fact<PointerType>& a) {
return AType{Alt<3, Fact<PointerType>>(a)};
}
static AType typeParameter(const Fact<TypeParameter>& a) {
return AType{Alt<4, Fact<TypeParameter>>(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<Repr<AType>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct AType
struct ArrayType : Predicate<std::tuple<AType, uint8_t>> {
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_<facebook::glean::cpp::schema::Csharp::Definition> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Csharp::AType>, 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<0, AType>, Alt<1, Fact<Method>>, Alt<2, Fact<Field>>, Alt<3, Fact<Parameter>>, Alt<4, Fact<TypeParameter>>, Alt<5, Fact<Local>>, Alt<6, Fact<Property>>> GLEAN_value;
static Definition type(const AType& a) {
return Definition{Alt<0, AType>(a)};
}
static Definition method(const Fact<Method>& a) {
return Definition{Alt<1, Fact<Method>>(a)};
}
static Definition field(const Fact<Field>& a) {
return Definition{Alt<2, Fact<Field>>(a)};
}
static Definition parameter(const Fact<Parameter>& a) {
return Definition{Alt<3, Fact<Parameter>>(a)};
}
static Definition typeParameter(const Fact<TypeParameter>& a) {
return Definition{Alt<4, Fact<TypeParameter>>(a)};
}
static Definition local(const Fact<Local>& a) {
return Definition{Alt<5, Fact<Local>>(a)};
}
static Definition property(const Fact<Property>& a) {
return Definition{Alt<6, Fact<Property>>(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<Repr<Definition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Definition
struct DefinitionLocation : Predicate<std::tuple<Definition, Location>> {
static const char* GLEAN_name() {
return "csharp.DefinitionLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionLocation
struct DefinitionLocationName : Predicate<std::tuple<Definition, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Definition>> {
static const char* GLEAN_name() {
return "csharp.FileDefinitions";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct FileDefinitions
struct FileEntityXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<Name>, Definition>> {
static const char* GLEAN_name() {
return "csharp.SearchByName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchByName
struct Field : Predicate<std::tuple<Fact<Name>, 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<std::tuple<Fact<Name>, AType, Fact<Method>, RefKind, bool>> {
static const char* GLEAN_name() {
return "csharp.Local";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Local
struct Method : Predicate<std::tuple<Fact<Name>, NamedType, std::vector<Fact<TypeParameter>>, std::vector<Fact<Parameter>>, bool, AType, Accessibility>> {
static const char* GLEAN_name() {
return "csharp.Method";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Method
struct ObjectCreationLocation : Predicate<std::tuple<AType, Fact<Method>, Location>> {
static const char* GLEAN_name() {
return "csharp.ObjectCreationLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ObjectCreationLocation
struct Parameter : Predicate<std::tuple<Fact<Name>, 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<std::tuple<AType>> {
static const char* GLEAN_name() {
return "csharp.PointerType";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct PointerType
struct Property : Predicate<std::tuple<Fact<Name>, NamedType, AType, std::vector<Fact<Parameter>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Method>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Method>>>, bool, bool>> {
static const char* GLEAN_name() {
return "csharp.Property";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Property
struct TypeLocation : Predicate<std::tuple<AType, Location>> {
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<Fact<facebook::glean::cpp::schema::Src::File>> {
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_<facebook::glean::cpp::schema::Codemarkup::Types::Visibility> {
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_<facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind> {
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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>, 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<Repr<SymbolInfo>> out) const {
outputValue(out, std::make_tuple(kind, isAbstract));
}
}; // struct SymbolInfo
} // namespace Types
} // namespace Codemarkup
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Src::ByteSpan>, Repr<facebook::glean::cpp::schema::Src::Range>>;
};
namespace schema {
namespace Codemarkup {
namespace Types {
struct RangeSpan {
boost::variant<Alt<0, facebook::glean::cpp::schema::Src::ByteSpan>, 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<Repr<RangeSpan>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct RangeSpan
struct RangeSpanContains : Predicate<std::tuple<RangeSpan, RangeSpan>> {
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_<facebook::glean::cpp::schema::Codemarkup::Types::Modifiers> {
using Type = Tuple<Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool>;
};
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<Repr<Modifiers>> 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_<facebook::glean::cpp::schema::Codemarkup::Types::Modifier> {
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_<facebook::glean::cpp::schema::Codemarkup::Types::Location> {
using Type = Tuple<String, facebook::glean::cpp::schema::Src::File, Repr<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan>, Maybe<Repr<facebook::glean::cpp::schema::Src::FileLocation>>>;
};
namespace schema {
namespace Codemarkup {
namespace Types {
struct Location {
std::string name;
Fact<facebook::glean::cpp::schema::Src::File> file;
RangeSpan location;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<Location>> out) const {
outputValue(out, std::make_tuple(name, file, location, destination));
}
}; // struct Location
} // namespace Types
} // namespace Codemarkup
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Codemarkup::Types::Location>, Repr<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan>>;
};
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<Repr<XRefLocation>> out) const {
outputValue(out, std::make_tuple(target, source));
}
}; // struct XRefLocation
} // namespace Types
} // namespace Codemarkup
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Codemarkup::Search::SearchCase> {
using Type = Enum<2>;
};
namespace schema {
namespace Codemarkup {
namespace Search {
enum class SearchCase { Sensitive, Insensitive };
} // namespace Search
namespace Scip {
struct LsifKindToKind : Predicate<std::tuple<facebook::glean::cpp::schema::Lsif::Types::SymbolKind, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.scip.LsifKindToKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct LsifKindToKind
struct FileXLangSymbolRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, Fact<facebook::glean::cpp::schema::Scip::Symbol>>> {
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<std::tuple<facebook::glean::cpp::schema::Python::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.python.NonImportPythonDeclarationKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct NonImportPythonDeclarationKind
struct NonImportPythonDeclarationInfo : Predicate<std::tuple<facebook::glean::cpp::schema::Python::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.python.NonImportPythonDeclarationInfo";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct NonImportPythonDeclarationInfo
struct ConvertLabel : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Python::Name>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::PPTrace>, facebook::glean::cpp::schema::Src::Range, Fact<facebook::glean::cpp::schema::Src::File>>> {
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<std::tuple<facebook::glean::cpp::schema::Lsif::Types::SymbolKind, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
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_<facebook::glean::cpp::schema::Codemarkup::Hack::RequiredRelation> {
using Type = Enum<3>;
};
namespace schema {
namespace Codemarkup {
namespace Hack {
enum class RequiredRelation { implements_, extends_, class_ };
struct HackInheritedEntities : Predicate<std::tuple<facebook::glean::cpp::schema::Hack::ContainerDeclaration, facebook::glean::cpp::schema::Hack::Declaration>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackInheritedEntities";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackInheritedEntities
struct HackEnumInheritedMembers : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Hack::MethodDeclaration>>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEnumInheritedMembers";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEnumInheritedMembers
struct FromHackVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Hack::Visibility, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Flow::Documentation>, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Flow::SomeDeclaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Cxx1::Access, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.FromCxxVisibility";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FromCxxVisibility
struct CxxFileEntityXMapVariableXRefDeclLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FileXRefs>, 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<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationModifiers";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationModifiers
struct CxxDeclVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclVisibility";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclVisibility
struct CxxDeclKind : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclKind";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclKind
struct CxxDeclInfo : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclInfo";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclInfo
struct CxxDataAvailable : Predicate<Fact<facebook::glean::cpp::schema::Src::File>> {
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_<facebook::glean::cpp::schema::Codemarkup::SearchStyle> {
using Type = Enum<2>;
};
namespace schema {
namespace Codemarkup {
enum class SearchStyle { ShowAll, HideUninteresting };
} // namespace Codemarkup
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Codemarkup::RelationType> {
using Type = Enum<7>;
};
namespace schema {
namespace Codemarkup {
enum class RelationType { ExtendsParentOfChild, ExtendsChildOfParent, ContainsChildOfParent, ContainsParentOfChild, RequireExtendsParentOfChild, RequireImplementsParentOfChild, RequireClassParentOfChild };
struct IndexedFile : Predicate<Fact<facebook::glean::cpp::schema::Src::File>> {
static const char* GLEAN_name() {
return "codemarkup.IndexedFile";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct IndexedFile
struct EntityDataAvailable : Predicate<Fact<facebook::glean::cpp::schema::Src::File>> {
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<facebook::glean::cpp::schema::Scip::Symbol>;
} // namespace Scip
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Scip::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>, Repr<facebook::glean::cpp::schema::Scip::SomeEntity>>;
};
namespace schema {
namespace Code {
namespace Scip {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Scip::SomeEntity>, 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Scip
} // namespace Code
namespace Codemarkup {
namespace Scip {
struct EntityInfo : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Scip::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.scip.EntityInfo";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct EntityInfo
struct ScipEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Scip::Entity, Fact<facebook::glean::cpp::schema::Scip::Documentation>>> {
static const char* GLEAN_name() {
return "codemarkup.scip.ScipEntityDocumentation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ScipEntityDocumentation
struct ScipEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Scip::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.scip.ScipEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ScipEntityLocation
struct ScipEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Scip::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Scip::Entity>> {
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_<facebook::glean::cpp::schema::Code::Python::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Python::Declaration>>;
};
namespace schema {
namespace Code {
namespace Python {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Python::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Python
} // namespace Code
namespace Codemarkup {
namespace Python {
struct PythonContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Code::Python::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonContainsChildEntity
struct PythonContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Code::Python::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonContainsParentEntity
struct PythonEntityComments : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonEntityInfo";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonEntityInfo
struct PythonEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonEntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonEntityKind
struct PythonEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonEntityLocation
struct PythonEntityModuleName : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, std::string>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonEntityModuleName";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonEntityModuleName
struct PythonEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Code::Python::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonExtendsChildEntity
struct PythonExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Code::Python::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonExtendsParentEntity
struct PythonFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonModifiers";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonModifiers
struct PythonResolveLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Python::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.python.PythonResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct PythonResolveLocation
struct PythonVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
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_<facebook::glean::cpp::schema::Code::Python::Annotations> {
using Type = Sum<Array<Repr<facebook::glean::cpp::schema::Python::Decorator>>>;
};
namespace schema {
namespace Code {
namespace Python {
struct Annotations {
boost::variant<Alt<0, std::vector<facebook::glean::cpp::schema::Python::Decorator>>> GLEAN_value;
static Annotations decorators(const std::vector<facebook::glean::cpp::schema::Python::Decorator>& a) {
return Annotations{Alt<0, std::vector<facebook::glean::cpp::schema::Python::Decorator>>(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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Python
} // namespace Code
namespace Codemarkup {
namespace Python {
struct PythonAnnotation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Python::Entity, facebook::glean::cpp::schema::Code::Python::Annotations>> {
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_<facebook::glean::cpp::schema::Code::Pp::Entity> {
using Type = Sum<facebook::glean::cpp::schema::Pp1::Define, facebook::glean::cpp::schema::Pp1::Undef, facebook::glean::cpp::schema::Src::File>;
};
namespace schema {
namespace Code {
namespace Pp {
struct Entity {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Pp1::Define>>, Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Undef>>, Alt<2, Fact<facebook::glean::cpp::schema::Src::File>>> GLEAN_value;
static Entity define(const Fact<facebook::glean::cpp::schema::Pp1::Define>& a) {
return Entity{Alt<0, Fact<facebook::glean::cpp::schema::Pp1::Define>>(a)};
}
static Entity undef(const Fact<facebook::glean::cpp::schema::Pp1::Undef>& a) {
return Entity{Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Undef>>(a)};
}
static Entity include_(const Fact<facebook::glean::cpp::schema::Src::File>& a) {
return Entity{Alt<2, Fact<facebook::glean::cpp::schema::Src::File>>(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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Pp
} // namespace Code
namespace Codemarkup {
namespace Pp {
struct PPEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Pp::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.pp.PPEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PPEntityLocation
struct PpEntityInfo : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Pp::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.pp.PpEntityInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PpEntityInfo
struct PpEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Pp::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.pp.PpEntityKind";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PpEntityKind
struct PpEntityTraceXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Trace>, 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<std::tuple<facebook::glean::cpp::schema::Code::Pp::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Pp::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.pp.PpResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct PpResolveLocation
struct PpResolveTraceLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Trace>, 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_<facebook::glean::cpp::schema::Code::Lsif::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>, Repr<facebook::glean::cpp::schema::Lsif::SomeEntity>>;
};
namespace schema {
namespace Code {
namespace Lsif {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Lsif::SomeEntity>, 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Lsif
} // namespace Code
namespace Codemarkup {
namespace Lsif {
struct EntityInfo : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Lsif::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.lsif.EntityInfo";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct EntityInfo
struct LsifEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Lsif::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.lsif.LsifEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct LsifEntityLocation
struct LsifEntityModuleName : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Lsif::Entity, std::string>> {
static const char* GLEAN_name() {
return "codemarkup.lsif.LsifEntityModuleName";
}
static constexpr size_t GLEAN_version() {
return 3;
}
}; // struct LsifEntityModuleName
struct LsifEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Lsif::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Lsif::Entity>> {
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_<facebook::glean::cpp::schema::Code::Kotlin::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>>;
};
namespace schema {
namespace Code {
namespace Kotlin {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Kotlin::Alpha::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Kotlin
} // namespace Code
namespace Codemarkup {
namespace Kotlin {
struct KotlinContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, facebook::glean::cpp::schema::Code::Kotlin::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.kotlin.KotlinContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct KotlinContainsChildEntity
struct KotlinContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, facebook::glean::cpp::schema::Code::Kotlin::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.kotlin.KotlinContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct KotlinContainsParentEntity
struct KotlinEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.kotlin.KotlinEntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct KotlinEntityKind
struct KotlinEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.kotlin.KotlinEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct KotlinEntityLocation
struct KotlinEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Kotlin::Entity, facebook::glean::cpp::schema::Code::Kotlin::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.kotlin.KotlinExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct KotlinExtendsParentEntity
struct KotlinFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Kotlin::Entity>> {
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_<facebook::glean::cpp::schema::Code::Java::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Java::Alpha::Declaration>>;
};
namespace schema {
namespace Code {
namespace Java {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Java::Alpha::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Java
} // namespace Code
namespace Codemarkup {
namespace Java {
struct JavaContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Code::Java::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaContainsChildEntity
struct JavaContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Code::Java::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaContainsParentEntity
struct JavaEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaEntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaEntityKind
struct JavaEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaEntityLocation
struct JavaEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Code::Java::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaExtendsChildEntity
struct JavaExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Code::Java::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaExtendsParentEntity
struct JavaModifiers : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaModifiers";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaModifiers
struct JavaResolveLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Java::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaResolveLocation
struct JavaVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
static const char* GLEAN_name() {
return "codemarkup.java.JavaVisibility";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct JavaVisibility
struct JavalFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Code::Java::Annotations> {
using Type = Sum<Array<facebook::glean::cpp::schema::Java::Alpha::Annotation>>;
};
namespace schema {
namespace Code {
namespace Java {
struct Annotations {
boost::variant<Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Java::Alpha::Annotation>>>> GLEAN_value;
static Annotations annotations(const std::vector<Fact<facebook::glean::cpp::schema::Java::Alpha::Annotation>>& a) {
return Annotations{Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Java::Alpha::Annotation>>>(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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Java
} // namespace Code
namespace Codemarkup {
namespace Java {
struct JavaAnnotation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Java::Entity, facebook::glean::cpp::schema::Code::Java::Annotations>> {
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_<facebook::glean::cpp::schema::Code::Hs::Entity> {
using Type = Sum<facebook::glean::cpp::schema::Hs::Name, facebook::glean::cpp::schema::Hs::Module>;
};
namespace schema {
namespace Code {
namespace Hs {
struct Entity {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Hs::Name>>, Alt<1, Fact<facebook::glean::cpp::schema::Hs::Module>>> GLEAN_value;
static Entity name(const Fact<facebook::glean::cpp::schema::Hs::Name>& a) {
return Entity{Alt<0, Fact<facebook::glean::cpp::schema::Hs::Name>>(a)};
}
static Entity mod(const Fact<facebook::glean::cpp::schema::Hs::Module>& a) {
return Entity{Alt<1, Fact<facebook::glean::cpp::schema::Hs::Module>>(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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Hs
} // namespace Code
namespace Codemarkup {
namespace Haskell {
struct HaskellContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hs::Entity, facebook::glean::cpp::schema::Code::Hs::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.haskell.HaskellContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HaskellContainsChildEntity
struct HaskellContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hs::Entity, facebook::glean::cpp::schema::Code::Hs::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.haskell.HaskellContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HaskellContainsParentEntity
struct HaskellEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hs::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.haskell.HaskellEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HaskellEntityLocation
struct HaskellEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hs::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Hs::Entity>> {
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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Hs::Entity>> {
static const char* GLEAN_name() {
return "search.hs.SearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 9;
}
}; // struct SearchByLowerCaseName
struct SearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Hs::Entity>> {
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_<facebook::glean::cpp::schema::Code::Hack::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Hack::Declaration>>;
};
namespace schema {
namespace Code {
namespace Hack {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Hack::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Hack
} // namespace Code
namespace Codemarkup {
namespace Hack {
struct EntityHasHideFromDocsAttr : Predicate<facebook::glean::cpp::schema::Code::Hack::Entity> {
static const char* GLEAN_name() {
return "codemarkup.hack.EntityHasHideFromDocsAttr";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct EntityHasHideFromDocsAttr
struct HackContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackContainsChildEntity
struct HackContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackContainsParentEntity
struct HackEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEntityInfo";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEntityInfo
struct HackEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEntityKind
struct HackEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEntityLocation
struct HackEntityModuleName : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, std::string>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEntityModuleName";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEntityModuleName
struct HackEntitySource : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackEntitySource";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackEntitySource
struct HackEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackExtendsChildEntity
struct HackExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackExtendsParentEntity
struct HackExtendsParentEntityConcise : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackExtendsParentEntityConcise";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackExtendsParentEntityConcise
struct HackFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackModifiers";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackModifiers
struct HackRequiredConstraint : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, RequiredRelation, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackRequiredConstraint";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackRequiredConstraint
struct HackResolveLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Hack::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.hack.HackResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct HackResolveLocation
struct HackVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
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_<facebook::glean::cpp::schema::Code::Hack::Annotations> {
using Type = Sum<Array<facebook::glean::cpp::schema::Hack::UserAttribute>>;
};
namespace schema {
namespace Code {
namespace Hack {
struct Annotations {
boost::variant<Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Hack::UserAttribute>>>> GLEAN_value;
static Annotations attributes(const std::vector<Fact<facebook::glean::cpp::schema::Hack::UserAttribute>>& a) {
return Annotations{Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Hack::UserAttribute>>>(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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Hack
} // namespace Code
namespace Codemarkup {
namespace Hack {
struct HackAnnotation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::Hack::Annotations>> {
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_<facebook::glean::cpp::schema::Code::Graphql::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Graphql::Declaration>>;
};
namespace schema {
namespace Code {
namespace Graphql {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Graphql::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Graphql
} // namespace Code
namespace Codemarkup {
namespace Graphql {
struct GraphQLEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Graphql::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.graphql.GraphQLEntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GraphQLEntityKind
struct GraphQLEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Graphql::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.graphql.GraphQLEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct GraphQLEntityLocation
struct GraphQLEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Graphql::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Graphql::Entity>> {
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_<facebook::glean::cpp::schema::Code::Flow::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Flow::SomeDeclaration>, facebook::glean::cpp::schema::Flow::Module>;
};
namespace schema {
namespace Code {
namespace Flow {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Flow::SomeDeclaration>, Alt<1, Fact<facebook::glean::cpp::schema::Flow::Module>>> 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<facebook::glean::cpp::schema::Flow::Module>& a) {
return Entity{Alt<1, Fact<facebook::glean::cpp::schema::Flow::Module>>(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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Flow
} // namespace Code
namespace Codemarkup {
namespace Flow {
struct FlowContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, facebook::glean::cpp::schema::Code::Flow::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.flow.FlowContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FlowContainsChildEntity
struct FlowContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, facebook::glean::cpp::schema::Code::Flow::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.flow.FlowContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FlowContainsParentEntity
struct FlowEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.flow.FlowEntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FlowEntityKind
struct FlowEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.flow.FlowEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FlowEntityLocation
struct FlowEntityModuleName : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, std::string>> {
static const char* GLEAN_name() {
return "codemarkup.flow.FlowEntityModuleName";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct FlowEntityModuleName
struct FlowEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Flow::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Flow::Entity>> {
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_<facebook::glean::cpp::schema::Code::Fbthrift::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Fbthrift::Declaration>>;
};
namespace schema {
namespace Code {
namespace Fbthrift {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Fbthrift::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Fbthrift
} // namespace Code
namespace Codemarkup {
namespace Fbthrift {
struct FbthriftEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftContainsChildEntity
struct ThriftContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftContainsParentEntity
struct ThriftEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftEntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftEntityKind
struct ThriftEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftEntityLocation
struct ThriftExtendsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftExtendsChildEntity
struct ThriftExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Fbthrift::Entity, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.fbthrift.ThriftExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct ThriftExtendsParentEntity
struct ThriftFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Fbthrift::Entity>> {
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_<facebook::glean::cpp::schema::Code::Fbthrift::Annotations> {
using Type = Sum<Array<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>;
};
namespace schema {
namespace Code {
namespace Fbthrift {
struct Annotations {
boost::variant<Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>>> GLEAN_value;
static Annotations annotations(const std::vector<Fact<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>& a) {
return Annotations{Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation>>>(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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Fbthrift
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Erlang::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Erlang::Declaration>>;
};
namespace schema {
namespace Code {
namespace Erlang {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Erlang::Declaration>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Erlang
} // namespace Code
namespace Codemarkup {
namespace Erlang {
struct ErlangEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Erlang::Entity, Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Erlang::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.erlang.ErlangEntityInfo";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ErlangEntityInfo
struct ErlangEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Erlang::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.erlang.ErlangEntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ErlangEntityKind
struct ErlangEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Erlang::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.erlang.ErlangEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ErlangEntityLocation
struct ErlangEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Erlang::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Erlang::Entity>> {
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<std::tuple<std::string, std::string, uint64_t, facebook::glean::cpp::schema::Code::Erlang::Entity>> {
static const char* GLEAN_name() {
return "search.erlang.SearchByFQN";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchByFQN
struct SearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Erlang::Entity>> {
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_<facebook::glean::cpp::schema::Code::Dataswarm::Entity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Dataswarm::Declaration>>;
};
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<Repr<Entity>> out) const {
outputValue(out, std::make_tuple(decl));
}
}; // struct Entity
} // namespace Dataswarm
} // namespace Code
namespace Codemarkup {
namespace Dataswarm {
struct DataswarmFileEntityXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Code::Cxx::ObjcMethodEntity> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration, facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>;
};
namespace schema {
namespace Code {
namespace Cxx {
struct ObjcMethodEntity {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>>> GLEAN_value;
static ObjcMethodEntity decl(const Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration>& a) {
return ObjcMethodEntity{Alt<0, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration>>(a)};
}
static ObjcMethodEntity defn(const Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>& a) {
return ObjcMethodEntity{Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>>(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<Repr<ObjcMethodEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ObjcMethodEntity
} // namespace Cxx
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Cxx::ObjcSelectorSlotEntity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Code::Cxx::ObjcMethodEntity>, 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<Repr<ObjcSelectorSlotEntity>> out) const {
outputValue(out, std::make_tuple(objcMethod, index));
}
}; // struct ObjcSelectorSlotEntity
} // namespace Cxx
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Cxx::Definition> {
using Type = Sum<facebook::glean::cpp::schema::Cxx1::RecordDefinition, facebook::glean::cpp::schema::Cxx1::FunctionDefinition, facebook::glean::cpp::schema::Cxx1::EnumDefinition, facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition, facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition, facebook::glean::cpp::schema::Cxx1::VariableDeclaration, facebook::glean::cpp::schema::Cxx1::NamespaceDefinition>;
};
namespace schema {
namespace Code {
namespace Cxx {
struct Definition {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Cxx1::RecordDefinition>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::FunctionDefinition>>, Alt<2, Fact<facebook::glean::cpp::schema::Cxx1::EnumDefinition>>, Alt<3, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>>, Alt<4, Fact<facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition>>, Alt<5, Fact<facebook::glean::cpp::schema::Cxx1::VariableDeclaration>>, Alt<6, Fact<facebook::glean::cpp::schema::Cxx1::NamespaceDefinition>>> GLEAN_value;
static Definition record_(const Fact<facebook::glean::cpp::schema::Cxx1::RecordDefinition>& a) {
return Definition{Alt<0, Fact<facebook::glean::cpp::schema::Cxx1::RecordDefinition>>(a)};
}
static Definition function_(const Fact<facebook::glean::cpp::schema::Cxx1::FunctionDefinition>& a) {
return Definition{Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::FunctionDefinition>>(a)};
}
static Definition enum_(const Fact<facebook::glean::cpp::schema::Cxx1::EnumDefinition>& a) {
return Definition{Alt<2, Fact<facebook::glean::cpp::schema::Cxx1::EnumDefinition>>(a)};
}
static Definition objcMethod(const Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>& a) {
return Definition{Alt<3, Fact<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition>>(a)};
}
static Definition objcContainer(const Fact<facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition>& a) {
return Definition{Alt<4, Fact<facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition>>(a)};
}
static Definition variable(const Fact<facebook::glean::cpp::schema::Cxx1::VariableDeclaration>& a) {
return Definition{Alt<5, Fact<facebook::glean::cpp::schema::Cxx1::VariableDeclaration>>(a)};
}
static Definition namespace_(const Fact<facebook::glean::cpp::schema::Cxx1::NamespaceDefinition>& a) {
return Definition{Alt<6, Fact<facebook::glean::cpp::schema::Cxx1::NamespaceDefinition>>(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<Repr<Definition>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Definition
} // namespace Cxx
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Cxx::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Cxx1::Declaration>, Repr<facebook::glean::cpp::schema::Code::Cxx::Definition>, facebook::glean::cpp::schema::Cxx1::Enumerator, Repr<facebook::glean::cpp::schema::Code::Cxx::ObjcSelectorSlotEntity>>;
};
namespace schema {
namespace Code {
namespace Cxx {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Cxx1::Declaration>, Alt<1, Definition>, Alt<2, Fact<facebook::glean::cpp::schema::Cxx1::Enumerator>>, 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<facebook::glean::cpp::schema::Cxx1::Enumerator>& a) {
return Entity{Alt<2, Fact<facebook::glean::cpp::schema::Cxx1::Enumerator>>(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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Cxx
} // namespace Code
namespace Codemarkup {
namespace Cxx {
struct CxxContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxContainsChildEntity
struct CxxContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxContainsParentEntity
struct CxxDeclToDefXRefTargetLocation : Predicate<std::tuple<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.CxxDeclToDefXRefTargetLocation";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclToDefXRefTargetLocation
struct CxxDeclarationContainsChild : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationContainsChild";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationContainsChild
struct CxxDeclarationContainsParent : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationContainsParent";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationContainsParent
struct CxxDeclarationExtendsChild : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationExtendsChild";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationExtendsChild
struct CxxDeclarationExtendsParent : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationExtendsParent";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationExtendsParent
struct CxxDeclarationSource : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDeclarationSource";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDeclarationSource
struct CxxDefToDeclFamilyXRefTargetLocation : Predicate<std::tuple<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.CxxDefToDeclFamilyXRefTargetLocation";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefToDeclFamilyXRefTargetLocation
struct CxxEntityDocumentation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntityInfo";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntityInfo
struct CxxEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntityKind";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntityKind
struct CxxEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntityLocation
struct CxxEntityMangledNameHash : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Cxx1::MangledNameHash>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntityMangledNameHash";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntityMangledNameHash
struct CxxEntitySource : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntitySource";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntitySource
struct CxxEntityUSR : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Cxx1::USR>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxEntityUSR";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxEntityUSR
struct CxxEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxExtendsChildEntity
struct CxxExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxExtendsParentEntity
struct CxxFileEntitySpellingXRefLocations : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<facebook::glean::cpp::schema::Cxx1::Trace>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FileXRefs>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FileXRefs>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxFindDefinitionOfEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxFindDefinitionOfEntity
struct CxxModifiers : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxModifiers";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxModifiers
struct CxxNamespaceDeclarationContainsChild : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration>, 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<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxResolveDeclarationToEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxResolveDeclarationToEntity
struct CxxResolveLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxResolveLocation
struct CxxResolveTraceLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Trace>, 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<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxVisibility";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxVisibility
struct CxxXRefTargetLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::XRefTarget, facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxXRefTargetLocation";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxXRefTargetLocation
struct EntityToXRefTarget : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Cxx1::XRefTarget>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.EntityToXRefTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct EntityToXRefTarget
struct SymbolToEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::SymbolId, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.SymbolToEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SymbolToEntity
struct XRefTargetToEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Cxx1::XRefTarget, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
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_<facebook::glean::cpp::schema::Glean::Test::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Code::Cxx::Entity>, facebook::glean::cpp::schema::Pp1::Define>;
};
namespace schema {
namespace Glean {
namespace Test {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Code::Cxx::Entity>, Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Define>>> 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<facebook::glean::cpp::schema::Pp1::Define>& a) {
return Entity{Alt<1, Fact<facebook::glean::cpp::schema::Pp1::Define>>(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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Test
} // namespace Glean
namespace Search {
namespace Code {
struct CxxPreferDefinitions : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
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<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "symbolid.cxx.DefinitionOfDecl";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DefinitionOfDecl
struct LookupNamespaceDefinition : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::Name>>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Cxx1::NamespaceQName>>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefinitionContainsChild";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefinitionContainsChild
struct CxxDefinitionContainsParent : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefinitionContainsParent";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefinitionContainsParent
struct CxxDefinitionExtendsChild : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefinitionExtendsChild";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefinitionExtendsChild
struct CxxDefinitionExtendsParent : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefinitionExtendsParent";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefinitionExtendsParent
struct CxxDefinitionModifiers : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefinitionModifiers";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefinitionModifiers
struct CxxDefnVisibility : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Codemarkup::Types::Visibility>> {
static const char* GLEAN_name() {
return "codemarkup.cxx.CxxDefnVisibility";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CxxDefnVisibility
struct CxxEntityDefinitionBase : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Definition, facebook::glean::cpp::schema::Cxx1::Declaration>> {
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<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, facebook::glean::cpp::schema::Code::Cxx::Definition>> {
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<std::tuple<facebook::glean::cpp::schema::Cxx1::Declaration, Definition>> {
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_<facebook::glean::cpp::schema::Code::Cxx::Annotations> {
using Type = Sum<Array<facebook::glean::cpp::schema::Cxx1::Attribute>>;
};
namespace schema {
namespace Code {
namespace Cxx {
struct Annotations {
boost::variant<Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Cxx1::Attribute>>>> GLEAN_value;
static Annotations attributes(const std::vector<Fact<facebook::glean::cpp::schema::Cxx1::Attribute>>& a) {
return Annotations{Alt<0, std::vector<Fact<facebook::glean::cpp::schema::Cxx1::Attribute>>>(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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Cxx
} // namespace Code
namespace Codemarkup {
namespace Cxx {
struct CxxAnnotation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::Cxx::Annotations>> {
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_<facebook::glean::cpp::schema::Code::Csharp::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Csharp::Definition>>;
};
namespace schema {
namespace Code {
namespace Csharp {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Csharp::Definition>> 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Csharp
} // namespace Code
namespace Codemarkup {
namespace Csharp {
struct CSharpEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Csharp::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.csharp.CSharpEntityKind";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct CSharpEntityKind
struct CSharpEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Csharp::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.csharp.CSharpEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct CSharpEntityLocation
struct CSharpEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Csharp::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Csharp::Entity>> {
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_<facebook::glean::cpp::schema::Code::Buck::Entity> {
using Type = Sum<facebook::glean::cpp::schema::Buck::Locator, facebook::glean::cpp::schema::Src::File, facebook::glean::cpp::schema::Buck::Definition>;
};
namespace schema {
namespace Code {
namespace Buck {
struct Entity {
boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Buck::Locator>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>, Alt<2, Fact<facebook::glean::cpp::schema::Buck::Definition>>> GLEAN_value;
static Entity locator(const Fact<facebook::glean::cpp::schema::Buck::Locator>& a) {
return Entity{Alt<0, Fact<facebook::glean::cpp::schema::Buck::Locator>>(a)};
}
static Entity file(const Fact<facebook::glean::cpp::schema::Src::File>& a) {
return Entity{Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>(a)};
}
static Entity definition(const Fact<facebook::glean::cpp::schema::Buck::Definition>& a) {
return Entity{Alt<2, Fact<facebook::glean::cpp::schema::Buck::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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Buck
} // namespace Code
namespace Codemarkup {
namespace Buck {
struct BuckEntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Buck::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.buck.BuckEntityKind";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct BuckEntityKind
struct BuckEntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Buck::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.buck.BuckEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct BuckEntityLocation
struct BuckEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Buck::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Buck::Entity>> {
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<std::tuple<boost::variant<Alt<0, std::tuple<>>, 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::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Code::SymbolId> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Code::Scip::SymbolId>, Repr<facebook::glean::cpp::schema::Code::Cxx::SymbolId>>;
};
namespace schema {
namespace Code {
struct SymbolId {
boost::variant<Alt<0, facebook::glean::cpp::schema::Code::Scip::SymbolId>, 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<Repr<SymbolId>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct SymbolId
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Language> {
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<std::tuple<facebook::glean::cpp::schema::Code::Scip::Entity, Language>> {
static const char* GLEAN_name() {
return "code.EntityLanguageSCIP";
}
static constexpr size_t GLEAN_version() {
return 24;
}
}; // struct EntityLanguageSCIP
struct EntityLanguageLSIF : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Lsif::Entity, Language>> {
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_<facebook::glean::cpp::schema::Code::Annotations> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Code::Cxx::Annotations>, Repr<facebook::glean::cpp::schema::Code::Java::Annotations>, Repr<facebook::glean::cpp::schema::Code::Python::Annotations>, Repr<facebook::glean::cpp::schema::Code::Hack::Annotations>, Repr<facebook::glean::cpp::schema::Code::Fbthrift::Annotations>>;
};
namespace schema {
namespace Code {
struct Annotations {
boost::variant<Alt<0, facebook::glean::cpp::schema::Code::Cxx::Annotations>, 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<Repr<Annotations>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Annotations
} // namespace Code
namespace Cxx1 {
struct FunctionName : Predicate<boost::variant<Alt<0, Fact<Name>>, Alt<1, Operator>, Alt<2, LiteralOperator>, Alt<3, std::tuple<>>, Alt<4, std::tuple<>>, Alt<5, Fact<Type>>>> {
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_<facebook::glean::cpp::schema::Cxx1::RecordKind> {
using Type = Sum<Unit, Unit, Unit>;
};
namespace schema {
namespace Cxx1 {
struct RecordKind {
boost::variant<Alt<0, std::tuple<>>, 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<Repr<RecordKind>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct RecordKind
struct RecordDeclaration : Predicate<std::tuple<Fact<QName>, 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_<facebook::glean::cpp::schema::Cxx1::Scope> {
using Type = Sum<Unit, facebook::glean::cpp::schema::Cxx1::NamespaceQName, Tuple<facebook::glean::cpp::schema::Cxx1::QName, Repr<facebook::glean::cpp::schema::Cxx1::Access>>, facebook::glean::cpp::schema::Cxx1::FunctionQName>;
};
namespace schema {
namespace Cxx1 {
struct Scope {
boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<NamespaceQName>>, Alt<2, std::tuple<Fact<QName>, Access>>, Alt<3, Fact<FunctionQName>>> GLEAN_value;
static Scope global_() {
return Scope{Alt<0, std::tuple<>>(std::make_tuple())};
}
static Scope namespace_(const Fact<NamespaceQName>& a) {
return Scope{Alt<1, Fact<NamespaceQName>>(a)};
}
static Scope recordWithAccess(const Fact<QName>& record, const Access& access) {
return Scope{Alt<2, std::tuple<Fact<QName>, Access>>(std::make_tuple(record, access))};
}
static Scope local(const Fact<FunctionQName>& a) {
return Scope{Alt<3, Fact<FunctionQName>>(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<Repr<Scope>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Scope
struct DeclarationScope : Predicate<std::tuple<Declaration, Scope>> {
static const char* GLEAN_name() {
return "cxx1.DeclarationScope";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct DeclarationScope
struct EnumDeclarationByName : Predicate<std::tuple<std::string, Scope, Fact<EnumDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.EnumDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct EnumDeclarationByName
struct FunctionDeclarationByNameScope : Predicate<std::tuple<std::string, Scope, Fact<FunctionDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.FunctionDeclarationByNameScope";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionDeclarationByNameScope
struct FunctionQName : Predicate<std::tuple<Fact<FunctionName>, Scope>> {
static const char* GLEAN_name() {
return "cxx1.FunctionQName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct FunctionQName
struct QName : Predicate<std::tuple<Fact<Name>, Scope>> {
static const char* GLEAN_name() {
return "cxx1.QName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct QName
struct RecordDeclarationClass : Predicate<std::tuple<std::string, Scope, Fact<RecordDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.RecordDeclarationClass";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordDeclarationClass
struct RecordDeclarationStruct : Predicate<std::tuple<std::string, Scope, Fact<RecordDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.RecordDeclarationStruct";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordDeclarationStruct
struct RecordDeclarationUnion : Predicate<std::tuple<std::string, Scope, Fact<RecordDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.RecordDeclarationUnion";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct RecordDeclarationUnion
struct TypeAliasDeclarationByName : Predicate<std::tuple<std::string, Scope, Fact<TypeAliasDeclaration>>> {
static const char* GLEAN_name() {
return "cxx1.TypeAliasDeclarationByName";
}
static constexpr size_t GLEAN_version() {
return 5;
}
}; // struct TypeAliasDeclarationByName
struct VariableDeclarationNonLocalByName : Predicate<std::tuple<std::string, Scope, Fact<VariableDeclaration>>> {
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<std::tuple<std::vector<std::string>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchClass";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchClass
struct SearchEnum : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchEnum";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchEnum
struct SearchEnumerator : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchEnumerator";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchEnumerator
struct SearchFunction : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchFunction";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchFunction
struct SearchNamespace : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchNamespace";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchNamespace
struct SearchStruct : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchStruct";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchStruct
struct SearchTypeAlias : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchTypeAlias";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchTypeAlias
struct SearchUnion : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
static const char* GLEAN_name() {
return "search.kind.cxx.SearchUnion";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct SearchUnion
struct SearchVariable : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, facebook::glean::cpp::schema::Code::Cxx::Entity>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Name>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Name>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::Name>, Fact<facebook::glean::cpp::schema::Cxx1::Name>, facebook::glean::cpp::schema::Cxx1::Scope, Fact<facebook::glean::cpp::schema::Cxx1::Enumerator>>> {
static const char* GLEAN_name() {
return "symbolid.cxx.LookupEnumerator";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct LookupEnumerator
struct LookupFunctionDeclaration : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, facebook::glean::cpp::schema::Cxx1::Scope, Fact<facebook::glean::cpp::schema::Cxx1::Signature>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, facebook::glean::cpp::schema::Cxx1::Scope, Fact<facebook::glean::cpp::schema::Cxx1::Signature>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, facebook::glean::cpp::schema::Cxx1::Scope, Fact<facebook::glean::cpp::schema::Cxx1::Signature>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FunctionName>, facebook::glean::cpp::schema::Cxx1::Scope, Fact<facebook::glean::cpp::schema::Cxx1::Signature>, boost::variant<Alt<0, std::tuple<>>, 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_<facebook::glean::cpp::schema::Fbthrift::ResultType> {
using Type = Sum<Unit, Unit, facebook::glean::cpp::schema::Fbthrift::TypeSpecification, Repr<facebook::glean::cpp::schema::Fbthrift::ResultStream>, facebook::glean::cpp::schema::Fbthrift::ServiceName, Repr<facebook::glean::cpp::schema::Fbthrift::ResultSink>>;
};
namespace schema {
namespace Fbthrift {
struct ResultType {
boost::variant<Alt<0, std::tuple<>>, Alt<1, std::tuple<>>, Alt<2, Fact<TypeSpecification>>, Alt<3, ResultStream>, Alt<4, Fact<ServiceName>>, 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<TypeSpecification>& a) {
return ResultType{Alt<2, Fact<TypeSpecification>>(a)};
}
static ResultType stream_(const ResultStream& a) {
return ResultType{Alt<3, ResultStream>(a)};
}
static ResultType service_(const Fact<ServiceName>& a) {
return ResultType{Alt<4, Fact<ServiceName>>(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<Repr<ResultType>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct ResultType
struct FunctionSpecification : Predicate<std::tuple<Fact<FunctionName>, ResultType, std::vector<UnqualField>, std::vector<ExceptionSpecification>, std::vector<Fact<StructuredAnnotation>>>> {
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_<facebook::glean::cpp::schema::Buck::XRefDestination> {
using Type = Sum<facebook::glean::cpp::schema::Buck::Locator, facebook::glean::cpp::schema::Src::File, facebook::glean::cpp::schema::Buck::Definition>;
};
namespace schema {
namespace Buck {
struct XRefDestination {
boost::variant<Alt<0, Fact<Locator>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>, Alt<2, Fact<Definition>>> GLEAN_value;
static XRefDestination locator(const Fact<Locator>& a) {
return XRefDestination{Alt<0, Fact<Locator>>(a)};
}
static XRefDestination file(const Fact<facebook::glean::cpp::schema::Src::File>& a) {
return XRefDestination{Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>(a)};
}
static XRefDestination definition(const Fact<Definition>& a) {
return XRefDestination{Alt<2, Fact<Definition>>(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<Repr<XRefDestination>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct XRefDestination
} // namespace Buck
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Buck::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Buck::XRefDestination>, Array<Repr<facebook::glean::cpp::schema::Src::ByteSpan>>>;
};
namespace schema {
namespace Buck {
struct XRef {
XRefDestination destination;
std::vector<facebook::glean::cpp::schema::Src::ByteSpan> 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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(destination, ranges));
}
}; // struct XRef
struct Type : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.Type";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Type
struct TranslationUnit : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Locator>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Platform>>>>> {
static const char* GLEAN_name() {
return "buck.TranslationUnit";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TranslationUnit
struct TargetUses : Predicate<std::tuple<Fact<Locator>, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
static const char* GLEAN_name() {
return "buck.TargetUses";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetUses
struct TargetSourcesBaseModule : Predicate<std::tuple<Fact<Target>, std::vector<Fact<File>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<AttributeValue>>>>> {
static const char* GLEAN_name() {
return "buck.TargetSourcesBaseModule";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetSourcesBaseModule
struct TargetSources : Predicate<std::tuple<Fact<Target>, std::vector<Fact<File>>, std::vector<Fact<File>>, std::vector<Fact<File>>>> {
static const char* GLEAN_name() {
return "buck.TargetSources";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetSources
struct TargetOuts : Predicate<std::tuple<Fact<Target>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<OutputLabel>>>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "buck.TargetOuts";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetOuts
struct TargetOut : Predicate<std::tuple<Fact<Target>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "buck.TargetOut";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetOut
struct TargetMode : Predicate<std::tuple<Fact<Target>, std::string>> {
static const char* GLEAN_name() {
return "buck.TargetMode";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetMode
struct TargetLocation : Predicate<std::tuple<Fact<Locator>, Fact<facebook::glean::cpp::schema::Src::File>, 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<Fact<Target>> {
static const char* GLEAN_name() {
return "buck.TargetLinkWhole";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetLinkWhole
struct TargetIndexerName : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.TargetIndexerName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetIndexerName
struct TargetIndexer : Predicate<std::tuple<Fact<TargetIndexerName>, Fact<Target>>> {
static const char* GLEAN_name() {
return "buck.TargetIndexer";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetIndexer
struct TargetHash : Predicate<std::tuple<Fact<Locator>, std::string>> {
static const char* GLEAN_name() {
return "buck.TargetHash";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetHash
struct TargetCallByCallExpr : Predicate<std::tuple<Fact<CallExpr>, Fact<TargetCall>>> {
static const char* GLEAN_name() {
return "buck.TargetCallByCallExpr";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetCallByCallExpr
struct TargetCall : Predicate<std::tuple<Fact<Locator>, std::vector<Fact<CallArgument>>, Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<CallExpr>>>>> {
static const char* GLEAN_name() {
return "buck.TargetCall";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetCall
struct TargetByType : Predicate<std::tuple<Fact<Type>, Fact<Target>>> {
static const char* GLEAN_name() {
return "buck.TargetByType";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetByType
struct TargetAttribute : Predicate<std::tuple<Fact<Target>, Fact<AttributeName>, Fact<AttributeValue>>> {
static const char* GLEAN_name() {
return "buck.TargetAttribute";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetAttribute
struct Target : Predicate<std::tuple<Fact<Locator>, Fact<Type>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Platform>>>, Fact<Labels>>> {
static const char* GLEAN_name() {
return "buck.Target";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Target
struct SourceFileLocation : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<LocalName>, XRefDestination>> {
static const char* GLEAN_name() {
return "buck.SearchByLocalName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct SearchByLocalName
struct RuleKey : Predicate<std::tuple<Fact<Locator>, std::string>> {
static const char* GLEAN_name() {
return "buck.RuleKey";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct RuleKey
struct Platform : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.Platform";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Platform
struct Owner : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<TargetSources>>> {
static const char* GLEAN_name() {
return "buck.Owner";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Owner
struct OutsTarget : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Target>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<OutputLabel>>>>> {
static const char* GLEAN_name() {
return "buck.OutsTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct OutsTarget
struct OutputLabel : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.OutputLabel";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct OutputLabel
struct OutTarget : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Target>>> {
static const char* GLEAN_name() {
return "buck.OutTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct OutTarget
struct LocatorWithLabel : Predicate<std::tuple<Fact<Locator>, Fact<OutputLabel>>> {
static const char* GLEAN_name() {
return "buck.LocatorWithLabel";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct LocatorWithLabel
struct LocatorReverseDeps : Predicate<std::tuple<Fact<Locator>, std::vector<Fact<Locator>>>> {
static const char* GLEAN_name() {
return "buck.LocatorReverseDeps";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct LocatorReverseDeps
struct LocatorReverseDep : Predicate<std::tuple<Fact<Locator>, Fact<Locator>>> {
static const char* GLEAN_name() {
return "buck.LocatorReverseDep";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct LocatorReverseDep
struct Locator : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, Fact<LocalName>>> {
static const char* GLEAN_name() {
return "buck.LocalNameLowerCase";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct LocalNameLowerCase
struct LocalName : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.LocalName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct LocalName
struct Labels : Predicate<std::vector<Fact<Label>>> {
static const char* GLEAN_name() {
return "buck.Labels";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Labels
struct Label : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.Label";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Label
struct IndexerName : Predicate<std::string> {
static const char* GLEAN_name() {
return "buck.IndexerName";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct IndexerName
struct FileXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRef>>> {
static const char* GLEAN_name() {
return "buck.FileXRefs";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileXRefs
struct FileToTarget : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Locator>>> {
static const char* GLEAN_name() {
return "buck.FileToTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileToTarget
struct FileTarget : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Locator>>> {
static const char* GLEAN_name() {
return "buck.FileTarget";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileTarget
struct FileResolved : Predicate<std::tuple<Fact<File>, Fact<facebook::glean::cpp::schema::Src::File>>> {
static const char* GLEAN_name() {
return "buck.FileResolved";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileResolved
struct FileEntity : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, XRefDestination>> {
static const char* GLEAN_name() {
return "buck.FileEntity";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileEntity
struct FileDefinition : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<Definition>>> {
static const char* GLEAN_name() {
return "buck.FileDefinition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct FileDefinition
struct File : Predicate<boost::variant<Alt<0, Fact<facebook::glean::cpp::schema::Src::File>>, Alt<1, Fact<Locator>>, Alt<2, Fact<LocatorWithLabel>>>> {
static const char* GLEAN_name() {
return "buck.File";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct File
struct FailureSources : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<IndexFailureX>>> {
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_<facebook::glean::cpp::schema::Buck::FailureReason> {
using Type = Enum<6>;
};
namespace schema {
namespace Buck {
enum class FailureReason { Skipped, Blocked, EmptyCdb, FailedCdb, QueryFailed, Unclassified };
struct IndexFailureX : Predicate<std::tuple<boost::variant<Alt<0, Fact<Locator>>, Alt<1, Fact<facebook::glean::cpp::schema::Src::File>>>, Fact<IndexerName>, FailureReason, std::string, boost::variant<Alt<0, std::tuple<>>, 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::tuple<XRefDestination, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
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_<facebook::glean::cpp::schema::Buck::Dependency> {
using Type = Tuple<facebook::glean::cpp::schema::Buck::Locator, Bool, Bool>;
};
namespace schema {
namespace Buck {
struct Dependency {
Fact<Locator> 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<Repr<Dependency>> out) const {
outputValue(out, std::make_tuple(target, explicit_, exported));
}
}; // struct Dependency
struct TargetDependencies : Predicate<std::tuple<Fact<Target>, std::vector<Dependency>>> {
static const char* GLEAN_name() {
return "buck.TargetDependencies";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct TargetDependencies
struct DefinitionLocation : Predicate<std::tuple<Fact<Definition>, Fact<facebook::glean::cpp::schema::Src::File>, 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::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::string>> {
static const char* GLEAN_name() {
return "buck.Definition";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct Definition
struct Consumer : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, Fact<TargetSources>>> {
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_<facebook::glean::cpp::schema::Buck::CallName> {
using Type = Sum<String, facebook::glean::cpp::schema::Buck::Definition>;
};
namespace schema {
namespace Buck {
struct CallName {
boost::variant<Alt<0, std::string>, Alt<1, Fact<Definition>>> GLEAN_value;
static CallName prim(const std::string& a) {
return CallName{Alt<0, std::string>(a)};
}
static CallName definition(const Fact<Definition>& a) {
return CallName{Alt<1, Fact<Definition>>(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<Repr<CallName>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct CallName
struct CallExpr : Predicate<boost::variant<Alt<0, CallName>, Alt<1, std::tuple<Fact<CallExpr>, std::string>>>> {
static const char* GLEAN_name() {
return "buck.CallExpr";
}
static constexpr size_t GLEAN_version() {
return 4;
}
}; // struct CallExpr
struct CallArgument : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>>, Fact<ArgumentValue>, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::string> {
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_<facebook::glean::cpp::schema::Buck::AttributeMapping> {
using Type = Tuple<String, facebook::glean::cpp::schema::Buck::AttributeValue>;
};
namespace schema {
namespace Buck {
struct AttributeMapping {
std::string key;
Fact<AttributeValue> 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<Repr<AttributeMapping>> out) const {
outputValue(out, std::make_tuple(key, value));
}
}; // struct AttributeMapping
struct AttributeValue : Predicate<boost::variant<Alt<0, std::string>, Alt<1, std::vector<Fact<AttributeValue>>>, Alt<2, std::vector<AttributeMapping>>>> {
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_<facebook::glean::cpp::schema::Buck::ArgumentMapping> {
using Type = Tuple<String, facebook::glean::cpp::schema::Buck::ArgumentValue>;
};
namespace schema {
namespace Buck {
struct ArgumentMapping {
std::string key;
Fact<ArgumentValue> 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<Repr<ArgumentMapping>> out) const {
outputValue(out, std::make_tuple(key, value));
}
}; // struct ArgumentMapping
struct ArgumentValue : Predicate<boost::variant<Alt<0, std::string>, Alt<1, std::vector<Fact<ArgumentValue>>>, Alt<2, std::vector<ArgumentMapping>>>> {
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<std::tuple<Fact<Name>, Fact<Type>>> {
static const char* GLEAN_name() {
return "anglelang.TypeDecl";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct TypeDecl
struct Name : Predicate<std::string> {
static const char* GLEAN_name() {
return "anglelang.Name";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Name
using ImportStmt = Fact<Name>;
} // namespace Anglelang
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Anglelang::Field> {
using Type = Tuple<facebook::glean::cpp::schema::Anglelang::Name, facebook::glean::cpp::schema::Anglelang::Type>;
};
namespace schema {
namespace Anglelang {
struct Field {
Fact<Name> name;
Fact<Type> 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<Repr<Field>> out) const {
outputValue(out, std::make_tuple(name, ty));
}
}; // struct Field
struct Type : Predicate<boost::variant<Alt<0, std::tuple<>>, Alt<1, std::tuple<>>, Alt<2, std::tuple<>>, Alt<3, std::tuple<>>, Alt<4, Fact<Type>>, Alt<5, Fact<Type>>, Alt<6, Fact<Type>>, Alt<7, std::vector<Field>>, Alt<8, std::vector<Field>>, Alt<9, Fact<Name>>, Alt<10, Fact<Name>>, Alt<11, std::vector<Fact<Name>>>>> {
static const char* GLEAN_name() {
return "anglelang.Type";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct Type
struct EvolveDecl : Predicate<std::tuple<Fact<Name>, Fact<Name>>> {
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_<facebook::glean::cpp::schema::Anglelang::DeriveInfo> {
using Type = Enum<4>;
};
namespace schema {
namespace Anglelang {
enum class DeriveInfo { NoDeriving, OnDemand, Stored, IfEmpty };
struct DerivingDecl : Predicate<std::tuple<Fact<Name>, DeriveInfo>> {
static const char* GLEAN_name() {
return "anglelang.DerivingDecl";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DerivingDecl
struct PredicateDecl : Predicate<std::tuple<Fact<Name>, Fact<Type>, Fact<Type>, 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_<facebook::glean::cpp::schema::Anglelang::Declaration> {
using Type = Sum<facebook::glean::cpp::schema::Anglelang::PredicateDecl, facebook::glean::cpp::schema::Anglelang::TypeDecl, facebook::glean::cpp::schema::Anglelang::SchemaDecl, Repr<facebook::glean::cpp::schema::Anglelang::ImportStmt>, facebook::glean::cpp::schema::Anglelang::EvolveDecl, facebook::glean::cpp::schema::Anglelang::DerivingDecl>;
};
namespace schema {
namespace Anglelang {
struct Declaration {
boost::variant<Alt<0, Fact<PredicateDecl>>, Alt<1, Fact<TypeDecl>>, Alt<2, Fact<SchemaDecl>>, Alt<3, ImportStmt>, Alt<4, Fact<EvolveDecl>>, Alt<5, Fact<DerivingDecl>>> GLEAN_value;
static Declaration pred(const Fact<PredicateDecl>& a) {
return Declaration{Alt<0, Fact<PredicateDecl>>(a)};
}
static Declaration ty(const Fact<TypeDecl>& a) {
return Declaration{Alt<1, Fact<TypeDecl>>(a)};
}
static Declaration schema(const Fact<SchemaDecl>& a) {
return Declaration{Alt<2, Fact<SchemaDecl>>(a)};
}
static Declaration imp(const ImportStmt& a) {
return Declaration{Alt<3, ImportStmt>(a)};
}
static Declaration evolve(const Fact<EvolveDecl>& a) {
return Declaration{Alt<4, Fact<EvolveDecl>>(a)};
}
static Declaration derive_(const Fact<DerivingDecl>& a) {
return Declaration{Alt<5, Fact<DerivingDecl>>(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<Repr<Declaration>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Declaration
struct DeclarationLocation : Predicate<std::tuple<Declaration, Fact<facebook::glean::cpp::schema::Src::File>, 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<Declaration, Fact<Name>> {
static const char* GLEAN_name() {
return "anglelang.DeclarationToName";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct DeclarationToName
struct SchemaDecl : Predicate<std::tuple<Fact<Name>, std::vector<Declaration>>> {
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_<facebook::glean::cpp::schema::Anglelang::XRefTarget> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Anglelang::Declaration>>;
};
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<Repr<XRefTarget>> out) const {
outputValue(out, std::make_tuple(ref));
}
}; // struct XRefTarget
struct TargetUses : Predicate<std::tuple<XRefTarget, Fact<facebook::glean::cpp::schema::Src::File>, std::vector<facebook::glean::cpp::schema::Src::ByteSpan>>> {
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_<facebook::glean::cpp::schema::Anglelang::XRef> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Anglelang::XRefTarget>, Array<Repr<facebook::glean::cpp::schema::Src::ByteSpan>>>;
};
namespace schema {
namespace Anglelang {
struct XRef {
XRefTarget target;
std::vector<facebook::glean::cpp::schema::Src::ByteSpan> 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<Repr<XRef>> out) const {
outputValue(out, std::make_tuple(target, span));
}
}; // struct XRef
struct FileXRefs : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, std::vector<XRef>>> {
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_<facebook::glean::cpp::schema::Code::Anglelang::Entity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Anglelang::Declaration>>;
};
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<Repr<Entity>> out) const {
outputValue(out, std::make_tuple(decl));
}
}; // struct Entity
} // namespace Anglelang
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Entity> {
using Type = Sum<Repr<facebook::glean::cpp::schema::Code::Cxx::Entity>, Repr<facebook::glean::cpp::schema::Code::Pp::Entity>, Repr<facebook::glean::cpp::schema::Code::Java::Entity>, Repr<facebook::glean::cpp::schema::Code::Kotlin::Entity>, Repr<facebook::glean::cpp::schema::Code::Hs::Entity>, Repr<facebook::glean::cpp::schema::Code::Python::Entity>, Repr<facebook::glean::cpp::schema::Code::Hack::Entity>, Repr<facebook::glean::cpp::schema::Code::Flow::Entity>, Repr<facebook::glean::cpp::schema::Code::Fbthrift::Entity>, Repr<facebook::glean::cpp::schema::Code::Buck::Entity>, Repr<facebook::glean::cpp::schema::Code::Erlang::Entity>, Repr<facebook::glean::cpp::schema::Code::Lsif::Entity>, Repr<facebook::glean::cpp::schema::Code::Scip::Entity>, Repr<facebook::glean::cpp::schema::Code::Csharp::Entity>, Repr<facebook::glean::cpp::schema::Code::Graphql::Entity>, Repr<facebook::glean::cpp::schema::Code::Dataswarm::Entity>, Repr<facebook::glean::cpp::schema::Code::Anglelang::Entity>>;
};
namespace schema {
namespace Code {
struct Entity {
boost::variant<Alt<0, facebook::glean::cpp::schema::Code::Cxx::Entity>, 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<Repr<Entity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Entity
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::Argument> {
using Type = Sum<String, Repr<facebook::glean::cpp::schema::Code::Entity>>;
};
namespace schema {
namespace Code {
struct Argument {
boost::variant<Alt<0, std::string>, 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<Repr<Argument>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct Argument
} // namespace Code
} // namespace schema
template<> struct Repr_<facebook::glean::cpp::schema::Code::CallArgument> {
using Type = Tuple<Maybe<String>, Repr<facebook::glean::cpp::schema::Src::ByteSpan>, Maybe<Repr<facebook::glean::cpp::schema::Code::Argument>>>;
};
namespace schema {
namespace Code {
struct CallArgument {
boost::variant<Alt<0, std::tuple<>>, Alt<1, std::string>> label;
facebook::glean::cpp::schema::Src::ByteSpan span;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<CallArgument>> out) const {
outputValue(out, std::make_tuple(label, span, argument));
}
}; // struct CallArgument
} // namespace Code
namespace Codemarkup {
namespace Hack {
struct ConvertCallArguments : Predicate<std::tuple<std::vector<facebook::glean::cpp::schema::Hack::CallArgument>, std::vector<facebook::glean::cpp::schema::Code::CallArgument>>> {
static const char* GLEAN_name() {
return "codemarkup.hack.ConvertCallArguments";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ConvertCallArguments
struct ConvertMaybeCallArguments : Predicate<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Hack::CallArgument>>, boost::variant<Alt<0, std::tuple<>>, 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::tuple<std::vector<facebook::glean::cpp::schema::Python::CallArgument>, std::vector<facebook::glean::cpp::schema::Code::CallArgument>>> {
static const char* GLEAN_name() {
return "codemarkup.python.ConvertCallArguments";
}
static constexpr size_t GLEAN_version() {
return 2;
}
}; // struct ConvertCallArguments
struct PythonFileCall : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, std::vector<facebook::glean::cpp::schema::Code::CallArgument>>> {
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<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Hack::Argument>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Python::Argument>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Entity, Language>> {
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_<facebook::glean::cpp::schema::Code::IdlEntity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Code::Language>, facebook::glean::cpp::schema::Src::File, Maybe<Repr<facebook::glean::cpp::schema::Code::Entity>>, Maybe<Repr<facebook::glean::cpp::schema::Src::Range>>>;
};
namespace schema {
namespace Code {
struct IdlEntity {
Language lang;
Fact<facebook::glean::cpp::schema::Src::File> file;
boost::variant<Alt<0, std::tuple<>>, Alt<1, Entity>> entity;
boost::variant<Alt<0, std::tuple<>>, 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<Repr<IdlEntity>> out) const {
outputValue(out, std::make_tuple(lang, file, entity, range));
}
}; // struct IdlEntity
} // namespace Code
namespace Codemarkup {
namespace Cxx {
struct CxxEntityIdl : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Cxx::Entity, facebook::glean::cpp::schema::Code::IdlEntity>> {
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<std::tuple<facebook::glean::cpp::schema::Code::Hack::Entity, facebook::glean::cpp::schema::Code::IdlEntity>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Codemarkup::ChildEntity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Code::Entity>, Repr<facebook::glean::cpp::schema::Codemarkup::Types::Location>>;
};
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<Repr<ChildEntity>> out) const {
outputValue(out, std::make_tuple(child, location));
}
}; // struct ChildEntity
struct ContainsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ContainsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ContainsChildEntity
struct ContainsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ContainsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ContainsParentEntity
struct EntityComments : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolInfo>> {
static const char* GLEAN_name() {
return "codemarkup.EntityInfo";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityInfo
struct EntityIsDefinition : Predicate<facebook::glean::cpp::schema::Code::Entity> {
static const char* GLEAN_name() {
return "codemarkup.EntityIsDefinition";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityIsDefinition
struct EntityKind : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::SymbolKind>> {
static const char* GLEAN_name() {
return "codemarkup.EntityKind";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityKind
struct EntityLocation : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.EntityLocation";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityLocation
struct EntityModifiers : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Modifiers>> {
static const char* GLEAN_name() {
return "codemarkup.EntityModifiers";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityModifiers
struct EntityModuleName : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, std::string>> {
static const char* GLEAN_name() {
return "codemarkup.EntityModuleName";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityModuleName
struct EntityReferences : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.EntitySource";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntitySource
struct EntityToAnnotations : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Annotations>> {
static const char* GLEAN_name() {
return "codemarkup.EntityToAnnotations";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityToAnnotations
struct EntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Visibility> {
static const char* GLEAN_name() {
return "codemarkup.EntityVisibility";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct EntityVisibility
struct ExtendsChildEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ExtendsChildEntity";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ExtendsChildEntity
struct ExtendsParentEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ExtendsParentEntity";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ExtendsParentEntity
struct ExtendsParentEntityConcise : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ExtendsParentEntityConcise";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ExtendsParentEntityConcise
struct FileCall : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, std::vector<facebook::glean::cpp::schema::Code::CallArgument>, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Code::CallArgument>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.FindEntityDefinition";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct FindEntityDefinition
struct GeneratedEntityToIdlEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::IdlEntity>> {
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_<facebook::glean::cpp::schema::Codemarkup::GenericEntity> {
using Type = Sum<Tuple<Repr<facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation>, Repr<facebook::glean::cpp::schema::Code::Entity>>, Tuple<Repr<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan>, Repr<facebook::glean::cpp::schema::Code::IdlEntity>>, Tuple<Repr<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan>, Repr<facebook::glean::cpp::schema::Code::SymbolId>>>;
};
namespace schema {
namespace Codemarkup {
struct GenericEntity {
boost::variant<Alt<0, std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Entity>>, Alt<1, std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::IdlEntity>>, Alt<2, std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::SymbolId>>> 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<facebook::glean::cpp::schema::Codemarkup::Types::XRefLocation, facebook::glean::cpp::schema::Code::Entity>>(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<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::IdlEntity>>(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<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpan, facebook::glean::cpp::schema::Code::SymbolId>>(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<Repr<GenericEntity>> out) const {
outputValue(out, GLEAN_value);
}
}; // struct GenericEntity
struct FileXRefsGenericEntities : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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_<facebook::glean::cpp::schema::Codemarkup::ParentEntity> {
using Type = Tuple<Repr<facebook::glean::cpp::schema::Code::Entity>, Repr<facebook::glean::cpp::schema::Codemarkup::Types::Location>>;
};
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<Repr<ParentEntity>> out) const {
outputValue(out, std::make_tuple(parent, location));
}
}; // struct ParentEntity
struct SearchRelatedEntities : Predicate<std::tuple<RelationType, ParentEntity, ChildEntity, SearchStyle>> {
static const char* GLEAN_name() {
return "codemarkup.SearchRelatedEntities";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct SearchRelatedEntities
struct ReferencingEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.ResolveLocation";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct ResolveLocation
struct SearchInheritedEntities : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Entity, ParentEntity, ChildEntity, SearchStyle>> {
static const char* GLEAN_name() {
return "codemarkup.SearchInheritedEntities";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct SearchInheritedEntities
struct SymbolToEntity : Predicate<std::tuple<facebook::glean::cpp::schema::Code::SymbolId, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "codemarkup.SymbolToEntity";
}
static constexpr size_t GLEAN_version() {
return 30;
}
}; // struct SymbolToEntity
namespace Cxx {
struct CxxFileEntityIdl : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Cxx1::FileXRefs>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Hack::XRefTarget>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Hack::XRefTarget>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Hack::Declaration>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, facebook::glean::cpp::schema::Src::ByteSpan, std::vector<facebook::glean::cpp::schema::Code::CallArgument>, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Code::Entity>>, boost::variant<Alt<0, std::tuple<>>, Alt<1, facebook::glean::cpp::schema::Code::CallArgument>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<SearchCase, std::string, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<SearchCase, std::string, std::vector<std::string>, facebook::glean::cpp::schema::Code::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<facebook::glean::cpp::schema::Code::Entity, Observer, Usage, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<Environment>>>>> {
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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.AngleSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct AngleSearchByLowerCaseName
struct AngleSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.AngleSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct AngleSearchByName
struct BuckSearchByLocalNameFact : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Buck::LocalName>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.BuckSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct BuckSearchByLowerCaseName
struct BuckSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.BuckSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct BuckSearchByName
struct CSharpSearchByLowerCaseName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.CSharpSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct CSharpSearchByLowerCaseName
struct CSharpSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.CSharpSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct CSharpSearchByName
struct CxxSearchByLowerCaseNameKindAndScopeFact : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Cxx1::Scope, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.ErlangSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct ErlangSearchByLowerCaseName
struct ErlangSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.ErlangSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct ErlangSearchByName
struct FbthriftSearchByNameFact : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Fbthrift::Identifier>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Flow::Module>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Flow::Module>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.GraphQLSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct GraphQLSearchByLowerCaseName
struct GraphQLSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.GraphQLSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct GraphQLSearchByName
struct HackSearchByLowerCaseNameAndKind : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, Fact<facebook::glean::cpp::schema::Hack::Name>, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Hack::NamespaceQName>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, bool, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.HsSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct HsSearchByLowerCaseName
struct HsSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.HsSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct HsSearchByName
struct JavaSearchByLowerCaseName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.JavaSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct JavaSearchByLowerCaseName
struct JavaSearchByLowerCaseScope : Predicate<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.JavaSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct JavaSearchByName
struct JavaSearchByNameWithFact : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, bool, std::vector<std::string>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.KotlinSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct KotlinSearchByLowerCaseName
struct KotlinSearchByLowerCaseScope : Predicate<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.KotlinSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct KotlinSearchByName
struct KotlinSearchByNameWithFact : Predicate<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::QName>, 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<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Javakotlin::Alpha::Name>, bool, std::vector<std::string>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.LsifSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct LsifSearchByLowerCaseName
struct LsifSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.LsifSearchByName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct LsifSearchByName
struct PpSearchByLowerCaseNameKind : Predicate<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Python::SName>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, Alt<1, Fact<facebook::glean::cpp::schema::Python::SName>>>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Language, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.SearchByLowerCaseNameAndLanguage";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct SearchByLowerCaseNameAndLanguage
struct SearchByLowerCaseNameKindAndLanguage : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Language, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<std::string, std::vector<std::string>, facebook::glean::cpp::schema::Code::Language, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Language, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.SearchByNameAndLanguage";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct SearchByNameAndLanguage
struct SearchByNameKindAndLanguage : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Language, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, std::vector<std::string>, 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<std::tuple<std::string, std::vector<std::string>, facebook::glean::cpp::schema::Code::Language, boost::variant<Alt<0, std::tuple<>>, 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<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
static const char* GLEAN_name() {
return "search.code.ThriftSearchByLowerCaseName";
}
static constexpr size_t GLEAN_version() {
return 16;
}
}; // struct ThriftSearchByLowerCaseName
struct ThriftSearchByName : Predicate<std::tuple<std::string, facebook::glean::cpp::schema::Code::Entity>> {
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<std::tuple<facebook::glean::cpp::schema::Code::Anglelang::Entity, facebook::glean::cpp::schema::Codemarkup::Types::Location>> {
static const char* GLEAN_name() {
return "codemarkup.anglelang.AngleEntityLocation";
}
static constexpr size_t GLEAN_version() {
return 1;
}
}; // struct AngleEntityLocation
struct AngleEntityUses : Predicate<std::tuple<facebook::glean::cpp::schema::Code::Anglelang::Entity, Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<Fact<facebook::glean::cpp::schema::Src::File>, 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<std::tuple<facebook::glean::cpp::schema::Codemarkup::Types::Location, facebook::glean::cpp::schema::Code::Anglelang::Entity>> {
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<std::tuple<Fact<facebook::glean::cpp::schema::Anglelang::Name>, 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<typename P> struct index;
static constexpr size_t count = 1157;
static constexpr char schemaId[] = "d90d0945fb0ce9e863db84e05c868ba3";
template<size_t i> struct predicate;
};
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Sys::Blob> { static constexpr size_t value = 0; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::RangeContains> { static constexpr size_t value = 1; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::IndexFailure> { static constexpr size_t value = 2; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::FileLines> { static constexpr size_t value = 3; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::FileLanguage> { static constexpr size_t value = 4; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::FileDigest> { static constexpr size_t value = 5; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::File> { static constexpr size_t value = 6; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Src::ByteSpanContains> { static constexpr size_t value = 7; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Python::QueryToScopeCase> { static constexpr size_t value = 8; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Python::PythonNameCase> { static constexpr size_t value = 9; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Pp::SearchByName> { static constexpr size_t value = 10; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Java::QueryToScopeCase> { static constexpr size_t value = 11; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Java::NameCase> { static constexpr size_t value = 12; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::QueryToScopeCase> { static constexpr size_t value = 13; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::HackNameCase> { static constexpr size_t value = 14; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::HackInAutoImportedNamespace> { static constexpr size_t value = 15; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Flow::TypeDeclarationAsDeclaration> { static constexpr size_t value = 16; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Flow::QueryToScopeCase> { static constexpr size_t value = 17; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Flow::FlowModuleNameCase> { static constexpr size_t value = 18; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::QueryToQNameCase> { static constexpr size_t value = 19; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::QueryToNSQNameCase> { static constexpr size_t value = 20; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::CxxRecordCase> { static constexpr size_t value = 21; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::CxxNamespaceCase> { static constexpr size_t value = 22; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Anglelang::NameLowerCase> { static constexpr size_t value = 23; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SymbolName> { static constexpr size_t value = 24; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SymbolDocumentation> { static constexpr size_t value = 25; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SymbolDisplayName> { static constexpr size_t value = 26; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::Symbol> { static constexpr size_t value = 27; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::ReferenceTarget> { static constexpr size_t value = 28; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::Reference> { static constexpr size_t value = 29; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::LocalName> { static constexpr size_t value = 30; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::IsImplemented> { static constexpr size_t value = 31; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::IsImplementation> { static constexpr size_t value = 32; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::EntityDefinition> { static constexpr size_t value = 33; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::EntityLocation> { static constexpr size_t value = 34; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::EntityUses> { static constexpr size_t value = 35; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::FileEntityXRefLocation> { static constexpr size_t value = 36; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::ResolveLocation> { static constexpr size_t value = 37; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SearchBySymbol> { static constexpr size_t value = 38; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::Documentation> { static constexpr size_t value = 39; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DisplayNameSymbol> { static constexpr size_t value = 40; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DisplayName> { static constexpr size_t value = 41; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DefinitionUses> { static constexpr size_t value = 42; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DefinitionName> { static constexpr size_t value = 43; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DefinitionDocumentation> { static constexpr size_t value = 44; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::Definition> { static constexpr size_t value = 45; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Branches::Root> { static constexpr size_t value = 46; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Branches::FileToRoot> { static constexpr size_t value = 47; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Branches::DirectXRefByFile> { static constexpr size_t value = 48; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::XRefsViaNameByTarget> { static constexpr size_t value = 49; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::XRefsViaName> { static constexpr size_t value = 50; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::XRefsViaNameByFile> { static constexpr size_t value = 51; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::VariableDeclaration> { static constexpr size_t value = 52; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::VariableBySName> { static constexpr size_t value = 53; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Type> { static constexpr size_t value = 54; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::StringLiteral> { static constexpr size_t value = 55; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchVariableByName> { static constexpr size_t value = 56; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchVariableByLowerCaseName> { static constexpr size_t value = 57; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchModuleByName> { static constexpr size_t value = 58; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchModuleByLowerCaseName> { static constexpr size_t value = 59; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchMethodByName> { static constexpr size_t value = 60; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchMethodByLowerCaseName> { static constexpr size_t value = 61; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchFunctionByName> { static constexpr size_t value = 62; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchFunctionByLowerCaseName> { static constexpr size_t value = 63; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchFieldByName> { static constexpr size_t value = 64; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchFieldByLowerCaseName> { static constexpr size_t value = 65; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchClassByName> { static constexpr size_t value = 66; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SearchClassByLowerCaseName> { static constexpr size_t value = 67; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SNameToName> { static constexpr size_t value = 68; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SName> { static constexpr size_t value = 69; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ResolveOriginalName> { static constexpr size_t value = 70; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::NameToSName> { static constexpr size_t value = 71; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Name> { static constexpr size_t value = 72; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ModuleDefinition> { static constexpr size_t value = 73; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ModuleBySName> { static constexpr size_t value = 74; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Module> { static constexpr size_t value = 75; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::MethodOverrides> { static constexpr size_t value = 76; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::MethodOverriden> { static constexpr size_t value = 77; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::MethodByLocalNameStr> { static constexpr size_t value = 78; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStatementByAsSName> { static constexpr size_t value = 79; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStatementByAsName> { static constexpr size_t value = 80; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStatement> { static constexpr size_t value = 81; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStarsByFile> { static constexpr size_t value = 82; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStarStatement> { static constexpr size_t value = 83; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ImportStarLocation> { static constexpr size_t value = 84; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::FunctionDeclaration> { static constexpr size_t value = 85; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::FunctionBySName> { static constexpr size_t value = 86; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DerivedClassToBase> { static constexpr size_t value = 87; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DefinitionLocation> { static constexpr size_t value = 88; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DefinitionsByFile> { static constexpr size_t value = 89; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::IsTopLevelDefinition> { static constexpr size_t value = 90; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::FunctionDefinition> { static constexpr size_t value = 91; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::VariableDefinition> { static constexpr size_t value = 92; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationDefinition> { static constexpr size_t value = 93; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationDocstring> { static constexpr size_t value = 94; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationLocation> { static constexpr size_t value = 95; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationReference> { static constexpr size_t value = 96; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationToName> { static constexpr size_t value = 97; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationUses> { static constexpr size_t value = 98; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationWithLocalName> { static constexpr size_t value = 99; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationWithName> { static constexpr size_t value = 100; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationWithSName> { static constexpr size_t value = 101; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DeclarationsByFile> { static constexpr size_t value = 102; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DefinitionDeclaration> { static constexpr size_t value = 103; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::DirectXRefsByFile> { static constexpr size_t value = 104; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::IsAbstract> { static constexpr size_t value = 105; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::IsTopLevelDeclaration> { static constexpr size_t value = 106; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::NonImportDeclaration> { static constexpr size_t value = 107; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::SNameWithDeclaration> { static constexpr size_t value = 108; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Yaml::XRefsByFile> { static constexpr size_t value = 109; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::Contains> { static constexpr size_t value = 110; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ContainingTopLevelDeclaration> { static constexpr size_t value = 111; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ContainedByTopLevelDeclaration> { static constexpr size_t value = 112; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ContainedBy> { static constexpr size_t value = 113; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ClassDefinition> { static constexpr size_t value = 114; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ClassDeclaration> { static constexpr size_t value = 115; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::ClassBySName> { static constexpr size_t value = 116; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::CalleeToCaller> { static constexpr size_t value = 117; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::BaseClassToDerived> { static constexpr size_t value = 118; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Python::FileCall> { static constexpr size_t value = 119; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::Use> { static constexpr size_t value = 120; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::Undef> { static constexpr size_t value = 121; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::Macro> { static constexpr size_t value = 122; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::Include> { static constexpr size_t value = 123; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::DefineUse> { static constexpr size_t value = 124; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::DefineLowerCase> { static constexpr size_t value = 125; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Pp1::Define> { static constexpr size_t value = 126; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::Metadata> { static constexpr size_t value = 127; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::EntityKind> { static constexpr size_t value = 128; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SearchByNameKind> { static constexpr size_t value = 129; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::SymbolKind> { static constexpr size_t value = 130; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Types::ToSrcRange> { static constexpr size_t value = 131; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::DefinitionLocation> { static constexpr size_t value = 132; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::FileRange> { static constexpr size_t value = 133; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::FileXLangSymbolRef> { static constexpr size_t value = 134; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::ReferenceLocation> { static constexpr size_t value = 135; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::FileLanguage> { static constexpr size_t value = 136; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Scip::TagDefinition> { static constexpr size_t value = 137; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Types::FromSrcRange> { static constexpr size_t value = 138; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Reference> { static constexpr size_t value = 139; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Range> { static constexpr size_t value = 140; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::ProjectDocument> { static constexpr size_t value = 141; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Project> { static constexpr size_t value = 142; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::PackageInformation> { static constexpr size_t value = 143; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::NameLowerCase> { static constexpr size_t value = 144; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::NameDefinition> { static constexpr size_t value = 145; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Name> { static constexpr size_t value = 146; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::MonikerSymbolKind> { static constexpr size_t value = 147; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::MonikerScheme> { static constexpr size_t value = 148; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::MonikerId> { static constexpr size_t value = 149; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::MonikerDefinition> { static constexpr size_t value = 150; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Moniker> { static constexpr size_t value = 151; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Metadata> { static constexpr size_t value = 152; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::HoverText> { static constexpr size_t value = 153; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::HoverContent> { static constexpr size_t value = 154; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::EntityDefinition> { static constexpr size_t value = 155; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::EntityKind> { static constexpr size_t value = 156; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::EntityLocation> { static constexpr size_t value = 157; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::EntityUses> { static constexpr size_t value = 158; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::FileEntityXRefLocation> { static constexpr size_t value = 159; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::ResolveLocation> { static constexpr size_t value = 160; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::SearchByExactLocation> { static constexpr size_t value = 161; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::SearchByExactLocationAndName> { static constexpr size_t value = 162; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::SearchByMoniker> { static constexpr size_t value = 163; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::SearchByName> { static constexpr size_t value = 164; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::SearchNonLocalByLocation> { static constexpr size_t value = 165; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::TagDefinition> { static constexpr size_t value = 166; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Document> { static constexpr size_t value = 167; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::DefinitionUse> { static constexpr size_t value = 168; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::DefinitionMoniker> { static constexpr size_t value = 169; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::DefinitionLocation> { static constexpr size_t value = 170; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::DefinitionKind> { static constexpr size_t value = 171; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::DefinitionHover> { static constexpr size_t value = 172; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Definition> { static constexpr size_t value = 173; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Lsif::Declaration> { static constexpr size_t value = 174; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::VariableParent> { static constexpr size_t value = 175; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::VariableDeclaration> { static constexpr size_t value = 176; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::TypeArg> { static constexpr size_t value = 177; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::Type> { static constexpr size_t value = 178; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::DeclarationLocation> { static constexpr size_t value = 179; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::DeclarationFileLocation> { static constexpr size_t value = 180; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::ExtendsDeclaration> { static constexpr size_t value = 181; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::FileDeclarations> { static constexpr size_t value = 182; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::MethodDeclaration> { static constexpr size_t value = 183; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::ParentDeclaration> { static constexpr size_t value = 184; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kotlin::SearchByQName> { static constexpr size_t value = 185; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Kotlin::LookupDeclaration> { static constexpr size_t value = 186; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Kotlin::LookupMethodDeclaration> { static constexpr size_t value = 187; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::ContainsDeclaration> { static constexpr size_t value = 188; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::ClassMember> { static constexpr size_t value = 189; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Kotlin::Alpha::ClassDeclaration> { static constexpr size_t value = 190; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::Type> { static constexpr size_t value = 191; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::QName> { static constexpr size_t value = 192; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::Path> { static constexpr size_t value = 193; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::NameLowerCase> { static constexpr size_t value = 194; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::Name> { static constexpr size_t value = 195; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Javakotlin::Alpha::MethodName> { static constexpr size_t value = 196; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::XRefFile> { static constexpr size_t value = 197; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::XRef> { static constexpr size_t value = 198; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::TypeVar> { static constexpr size_t value = 199; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::TypeParam> { static constexpr size_t value = 200; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::TypeOfTypeArgs> { static constexpr size_t value = 201; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::TypeArg> { static constexpr size_t value = 202; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::PrimitiveType> { static constexpr size_t value = 203; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::PackageDeclaration> { static constexpr size_t value = 204; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ObjectType> { static constexpr size_t value = 205; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ParameterDeclaration> { static constexpr size_t value = 206; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::InterfaceInheritance> { static constexpr size_t value = 207; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::Inheritance> { static constexpr size_t value = 208; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ImportDeclaration> { static constexpr size_t value = 209; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::FileXRefs> { static constexpr size_t value = 210; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ExecutableDefnLocation> { static constexpr size_t value = 211; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::LocalDeclaration> { static constexpr size_t value = 212; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DefinitionLocation> { static constexpr size_t value = 213; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::EnumDeclaration> { static constexpr size_t value = 214; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::FieldDeclaration> { static constexpr size_t value = 215; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::InterfaceDeclaration> { static constexpr size_t value = 216; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::MethodDeclaration> { static constexpr size_t value = 217; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationAnnotations> { static constexpr size_t value = 218; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationComment> { static constexpr size_t value = 219; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationLocation> { static constexpr size_t value = 220; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationType> { static constexpr size_t value = 221; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationUses> { static constexpr size_t value = 222; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclarationXRefTarget> { static constexpr size_t value = 223; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ExtendedByDeclaration> { static constexpr size_t value = 224; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ExtendsDeclaration> { static constexpr size_t value = 225; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::FileDeclarations> { static constexpr size_t value = 226; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ParentDeclaration> { static constexpr size_t value = 227; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::QNameToDefinition> { static constexpr size_t value = 228; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::XRefOfType> { static constexpr size_t value = 229; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::XRefTargetDeclaration> { static constexpr size_t value = 230; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Java::SearchByQName> { static constexpr size_t value = 231; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Java::LookupDeclaration> { static constexpr size_t value = 232; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Java::LookupMethodDeclaration> { static constexpr size_t value = 233; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclOfExecutableDefn> { static constexpr size_t value = 234; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::DeclOfDefn> { static constexpr size_t value = 235; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ContainsDeclaration> { static constexpr size_t value = 236; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ConstructorDeclaration> { static constexpr size_t value = 237; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ClassDeclaration> { static constexpr size_t value = 238; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::Type> { static constexpr size_t value = 239; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::ArrayType> { static constexpr size_t value = 240; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::Annotation> { static constexpr size_t value = 241; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Java::Alpha::AnnotatedClass> { static constexpr size_t value = 242; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Indexer::Config> { static constexpr size_t value = 243; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ValBind> { static constexpr size_t value = 244; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::UnitName> { static constexpr size_t value = 245; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::TypeSynDecl> { static constexpr size_t value = 246; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::TypeFamilyDecl> { static constexpr size_t value = 247; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::TyVarBind> { static constexpr size_t value = 248; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::TyCon> { static constexpr size_t value = 249; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::SourceModule> { static constexpr size_t value = 250; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::SigDecl> { static constexpr size_t value = 251; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::XRef> { static constexpr size_t value = 252; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::RecordFieldDecl> { static constexpr size_t value = 253; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::PatSynDecl> { static constexpr size_t value = 254; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::PatBind> { static constexpr size_t value = 255; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::OccNameLowerCase> { static constexpr size_t value = 256; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::OccName> { static constexpr size_t value = 257; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::Name> { static constexpr size_t value = 258; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ModuleSource> { static constexpr size_t value = 259; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ModuleName> { static constexpr size_t value = 260; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ModuleDeclarations> { static constexpr size_t value = 261; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::Module> { static constexpr size_t value = 262; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::MethDecl> { static constexpr size_t value = 263; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::LitType> { static constexpr size_t value = 264; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::InstanceDecl> { static constexpr size_t value = 265; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::InstanceBindToDecl> { static constexpr size_t value = 266; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::InstanceBind> { static constexpr size_t value = 267; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::FileXRefs> { static constexpr size_t value = 268; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::DeclarationLocation> { static constexpr size_t value = 269; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::DeclarationOfName> { static constexpr size_t value = 270; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::DeclarationSpan> { static constexpr size_t value = 271; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::DataDecl> { static constexpr size_t value = 272; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ConstrDecl> { static constexpr size_t value = 273; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::ClassDecl> { static constexpr size_t value = 274; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hs::Type> { static constexpr size_t value = 275; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::UserAttribute> { static constexpr size_t value = 276; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TypedefDeclaration> { static constexpr size_t value = 277; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TypeConstDefinition> { static constexpr size_t value = 278; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Type> { static constexpr size_t value = 279; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TraitDeclaration> { static constexpr size_t value = 280; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::StringLiteral> { static constexpr size_t value = 281; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTypedefByLowerCaseName> { static constexpr size_t value = 282; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTypeConstByLowerCaseName> { static constexpr size_t value = 283; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTraitByLowerCaseName> { static constexpr size_t value = 284; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchPropertyByLowerCaseName> { static constexpr size_t value = 285; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchNamespaceByLowerCaseName> { static constexpr size_t value = 286; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchModuleByLowerCaseName> { static constexpr size_t value = 287; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchMethodByLowerCaseName> { static constexpr size_t value = 288; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchInterfaceByLowerCaseName> { static constexpr size_t value = 289; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchGlobalConstByLowerCaseName> { static constexpr size_t value = 290; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchFunctionByLowerCaseName> { static constexpr size_t value = 291; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchEnumeratorByLowerCaseName> { static constexpr size_t value = 292; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchEnumByLowerCaseName> { static constexpr size_t value = 293; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchClassConstByLowerCaseName> { static constexpr size_t value = 294; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchClassByLowerCaseName> { static constexpr size_t value = 295; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::QName> { static constexpr size_t value = 296; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::PropertyDefinition> { static constexpr size_t value = 297; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Signature> { static constexpr size_t value = 298; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::NamespaceQName> { static constexpr size_t value = 299; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::NamespaceDeclaration> { static constexpr size_t value = 300; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::NameLowerCase> { static constexpr size_t value = 301; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Name> { static constexpr size_t value = 302; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ModuleDefinition> { static constexpr size_t value = 303; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ModuleDeclaration> { static constexpr size_t value = 304; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MethodOverrides> { static constexpr size_t value = 305; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MethodOverridden> { static constexpr size_t value = 306; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MethodOccurrence> { static constexpr size_t value = 307; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::InterfaceDeclaration> { static constexpr size_t value = 308; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::IndexerInputsHash> { static constexpr size_t value = 309; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::GlobalNamespaceAlias> { static constexpr size_t value = 310; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::GlobalConstDefinition> { static constexpr size_t value = 311; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::GlobalConstDeclaration> { static constexpr size_t value = 312; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::FunctionDeclaration> { static constexpr size_t value = 313; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Hint> { static constexpr size_t value = 314; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Enumerator> { static constexpr size_t value = 315; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::EnumDefinition> { static constexpr size_t value = 316; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::EnumDeclaration> { static constexpr size_t value = 317; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::Context_> { static constexpr size_t value = 318; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ContainerDeclarationQName> { static constexpr size_t value = 319; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ContainerParent> { static constexpr size_t value = 320; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationComment> { static constexpr size_t value = 321; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationLocation> { static constexpr size_t value = 322; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationName> { static constexpr size_t value = 323; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationNamespace> { static constexpr size_t value = 324; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationSource> { static constexpr size_t value = 325; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationSpan> { static constexpr size_t value = 326; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::DeclarationTarget> { static constexpr size_t value = 327; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::FileDeclarations> { static constexpr size_t value = 328; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MemberCluster> { static constexpr size_t value = 329; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ModuleChild> { static constexpr size_t value = 330; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ModuleParent> { static constexpr size_t value = 331; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::NamespaceMember> { static constexpr size_t value = 332; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchClassByName> { static constexpr size_t value = 333; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchClassConstByName> { static constexpr size_t value = 334; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchEnumByName> { static constexpr size_t value = 335; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchEnumeratorByName> { static constexpr size_t value = 336; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchFunctionByName> { static constexpr size_t value = 337; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchGlobalConstByName> { static constexpr size_t value = 338; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchInterfaceByName> { static constexpr size_t value = 339; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchMethodByName> { static constexpr size_t value = 340; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchModuleByName> { static constexpr size_t value = 341; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchNamespaceByName> { static constexpr size_t value = 342; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchPropertyByName> { static constexpr size_t value = 343; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTraitByName> { static constexpr size_t value = 344; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTypeConstByName> { static constexpr size_t value = 345; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::SearchTypedefByName> { static constexpr size_t value = 346; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TargetUses> { static constexpr size_t value = 347; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TargetUsesAbs> { static constexpr size_t value = 348; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::FileXRefs> { static constexpr size_t value = 349; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TypeInfo> { static constexpr size_t value = 350; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchByName> { static constexpr size_t value = 351; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchFunctionInNamespace> { static constexpr size_t value = 352; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchGlobalConstInNamespace> { static constexpr size_t value = 353; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInContainer> { static constexpr size_t value = 354; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInContainerNoProperty> { static constexpr size_t value = 355; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnum> { static constexpr size_t value = 356; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInContainerOrEnumNoProperty> { static constexpr size_t value = 357; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInEnum> { static constexpr size_t value = 358; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchInNamespace> { static constexpr size_t value = 359; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchModule> { static constexpr size_t value = 360; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchNamespace> { static constexpr size_t value = 361; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchNamespacedDecl> { static constexpr size_t value = 362; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchPropertyInContainer> { static constexpr size_t value = 363; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hack::SearchTypeInNamespace> { static constexpr size_t value = 364; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::InheritedMembers> { static constexpr size_t value = 365; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MethodDeclaration> { static constexpr size_t value = 366; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::PropertyDeclaration> { static constexpr size_t value = 367; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TypeConstDeclaration> { static constexpr size_t value = 368; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ContainerChild> { static constexpr size_t value = 369; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::FunctionDefinition> { static constexpr size_t value = 370; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::InterfaceDefinition> { static constexpr size_t value = 371; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::MethodDefinition> { static constexpr size_t value = 372; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TraitDefinition> { static constexpr size_t value = 373; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::TypedefDefinition> { static constexpr size_t value = 374; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ClassDefinition> { static constexpr size_t value = 375; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ClassDeclaration> { static constexpr size_t value = 376; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ClassConstDefinition> { static constexpr size_t value = 377; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ClassConstDeclaration> { static constexpr size_t value = 378; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::AttributeToDefinition> { static constexpr size_t value = 379; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::AttributeToDeclaration> { static constexpr size_t value = 380; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::AttributeHasParameter> { static constexpr size_t value = 381; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::FileCall> { static constexpr size_t value = 382; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::VariableDef> { static constexpr size_t value = 383; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Value> { static constexpr size_t value = 384; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::UnionTypeDef> { static constexpr size_t value = 385; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::ScalarTypeDef> { static constexpr size_t value = 386; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Operation> { static constexpr size_t value = 387; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::ObjectTypeDef> { static constexpr size_t value = 388; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::NameLowerCase> { static constexpr size_t value = 389; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::InterfaceTypeDef> { static constexpr size_t value = 390; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::InputValueDef> { static constexpr size_t value = 391; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::InputObjectTypeDef> { static constexpr size_t value = 392; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::InlineFragment> { static constexpr size_t value = 393; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::FragmentSpread> { static constexpr size_t value = 394; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Fragment> { static constexpr size_t value = 395; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::FieldDef> { static constexpr size_t value = 396; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Field> { static constexpr size_t value = 397; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::EnumTypeDef> { static constexpr size_t value = 398; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::DirectiveDef> { static constexpr size_t value = 399; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Directive> { static constexpr size_t value = 400; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::DeclarationLocation> { static constexpr size_t value = 401; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::DeclarationName> { static constexpr size_t value = 402; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::DeclarationUses> { static constexpr size_t value = 403; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::FileDeclarations> { static constexpr size_t value = 404; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::SearchByName> { static constexpr size_t value = 405; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::FileXRefs> { static constexpr size_t value = 406; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::DeclHasName> { static constexpr size_t value = 407; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::BelongToConfig> { static constexpr size_t value = 408; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Graphql::Argument> { static constexpr size_t value = 409; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::nothingTest> { static constexpr size_t value = 410; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::ViaStringPair> { static constexpr size_t value = 411; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Unbound2> { static constexpr size_t value = 412; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Unbound> { static constexpr size_t value = 413; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::TreeToTree> { static constexpr size_t value = 414; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Tree> { static constexpr size_t value = 415; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StringPairBox> { static constexpr size_t value = 416; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StringPair> { static constexpr size_t value = 417; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithRev> { static constexpr size_t value = 418; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairWithA> { static constexpr size_t value = 419; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StoredRevStringPairSum> { static constexpr size_t value = 420; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StoredRevStringPair> { static constexpr size_t value = 421; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::StoredDualStringPair> { static constexpr size_t value = 422; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::SkipRevEdge> { static constexpr size_t value = 423; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::SameString> { static constexpr size_t value = 424; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RevStringPairs> { static constexpr size_t value = 425; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RevStringPairRec> { static constexpr size_t value = 426; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RevStringPair> { static constexpr size_t value = 427; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RevRevStringPair> { static constexpr size_t value = 428; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RevEdge> { static constexpr size_t value = 429; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::ReflStringPair> { static constexpr size_t value = 430; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::RefRef> { static constexpr size_t value = 431; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Ref> { static constexpr size_t value = 432; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Qux> { static constexpr size_t value = 433; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Predicate_0> { static constexpr size_t value = 434; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::NodePair> { static constexpr size_t value = 435; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Node> { static constexpr size_t value = 436; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Name> { static constexpr size_t value = 437; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::MatchOneAlt> { static constexpr size_t value = 438; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::LeftOr2> { static constexpr size_t value = 439; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::LeftOr> { static constexpr size_t value = 440; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::KeyValue> { static constexpr size_t value = 441; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::IsThree> { static constexpr size_t value = 442; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::IsParent> { static constexpr size_t value = 443; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::IsGlean> { static constexpr size_t value = 444; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::FooToFoo> { static constexpr size_t value = 445; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Foo> { static constexpr size_t value = 446; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Expr> { static constexpr size_t value = 447; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::EmptyStoredStringPair> { static constexpr size_t value = 448; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::EmptyPred> { static constexpr size_t value = 449; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::EdgeWrapper> { static constexpr size_t value = 450; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::EdgeFromNotA> { static constexpr size_t value = 451; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Edge> { static constexpr size_t value = 452; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::DualStringPair> { static constexpr size_t value = 453; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue2> { static constexpr size_t value = 454; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::DerivedKeyValue> { static constexpr size_t value = 455; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Bar> { static constexpr size_t value = 456; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glean::Test::Predicate_> { static constexpr size_t value = 457; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Gencode::GenCodeSignature> { static constexpr size_t value = 458; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Gencode::GenCodeCommand> { static constexpr size_t value = 459; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Gencode::GenCodeClass> { static constexpr size_t value = 460; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Gencode::GenCodeBySource> { static constexpr size_t value = 461; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Gencode::GenCode> { static constexpr size_t value = 462; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::TypeImportDeclaration> { static constexpr size_t value = 463; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::TypeExport> { static constexpr size_t value = 464; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::TypeDeclarationReference> { static constexpr size_t value = 465; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::TypeDeclarationInfo> { static constexpr size_t value = 466; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::TypeDeclaration> { static constexpr size_t value = 467; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Type> { static constexpr size_t value = 468; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::StringToFileModule> { static constexpr size_t value = 469; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SourceOfTypeExport> { static constexpr size_t value = 470; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SourceOfExport> { static constexpr size_t value = 471; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Flow::FlowSearchByNameNonImport> { static constexpr size_t value = 472; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByName> { static constexpr size_t value = 473; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchTypeDeclarationByLowerCaseName> { static constexpr size_t value = 474; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchTypeByModuleExport> { static constexpr size_t value = 475; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchModuleByLowerCaseName> { static constexpr size_t value = 476; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByName> { static constexpr size_t value = 477; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchMemberDeclarationByLowerCaseName> { static constexpr size_t value = 478; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchDeclarationByName> { static constexpr size_t value = 479; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchDeclarationByLowerCaseName> { static constexpr size_t value = 480; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchByNameModule> { static constexpr size_t value = 481; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchByName> { static constexpr size_t value = 482; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchByModuleName> { static constexpr size_t value = 483; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchByModule> { static constexpr size_t value = 484; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::SearchByFileModule> { static constexpr size_t value = 485; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Range> { static constexpr size_t value = 486; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Name> { static constexpr size_t value = 487; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleTypeExport> { static constexpr size_t value = 488; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleNameLowerCase> { static constexpr size_t value = 489; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleLocationByFile> { static constexpr size_t value = 490; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleLocation> { static constexpr size_t value = 491; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleExport> { static constexpr size_t value = 492; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleDoc> { static constexpr size_t value = 493; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleContains> { static constexpr size_t value = 494; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ModuleComments> { static constexpr size_t value = 495; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Module> { static constexpr size_t value = 496; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::MemberDeclarationReference> { static constexpr size_t value = 497; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::MemberDeclarationInfo> { static constexpr size_t value = 498; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::MemberDeclaration> { static constexpr size_t value = 499; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::LocalDeclarationReference> { static constexpr size_t value = 500; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::ImportDeclaration> { static constexpr size_t value = 501; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowXRefDeclInfo> { static constexpr size_t value = 502; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowTypeImportXRef> { static constexpr size_t value = 503; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowTypeExportLocation> { static constexpr size_t value = 504; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowTypeEntityImportUses> { static constexpr size_t value = 505; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowSameModule> { static constexpr size_t value = 506; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowModuleNamespaceXRef> { static constexpr size_t value = 507; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowImportXRef> { static constexpr size_t value = 508; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowExportLocation> { static constexpr size_t value = 509; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowEntityUsesAll> { static constexpr size_t value = 510; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowEntityImportUses> { static constexpr size_t value = 511; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FlowCompatibleExport> { static constexpr size_t value = 512; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FileXRef> { static constexpr size_t value = 513; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FileOfStringModule> { static constexpr size_t value = 514; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::FileDeclaration> { static constexpr size_t value = 515; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Export> { static constexpr size_t value = 516; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Documentation> { static constexpr size_t value = 517; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::DeclarationUses> { static constexpr size_t value = 518; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::DeclarationSignature> { static constexpr size_t value = 519; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::DeclarationNameSpan> { static constexpr size_t value = 520; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::DeclarationLocation> { static constexpr size_t value = 521; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::DeclarationInfo> { static constexpr size_t value = 522; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Flow::Declaration> { static constexpr size_t value = 523; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::UnionVal> { static constexpr size_t value = 524; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::TypeDefType> { static constexpr size_t value = 525; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::StructuredAnnotation> { static constexpr size_t value = 526; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::StructVal> { static constexpr size_t value = 527; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ServiceParent> { static constexpr size_t value = 528; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ServiceName> { static constexpr size_t value = 529; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ServiceInteractionFunctions> { static constexpr size_t value = 530; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ServiceDefinition> { static constexpr size_t value = 531; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ServiceChild> { static constexpr size_t value = 532; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::SearchByName> { static constexpr size_t value = 533; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::QualName> { static constexpr size_t value = 534; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::PackageName> { static constexpr size_t value = 535; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::Package> { static constexpr size_t value = 536; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::NamespaceValue> { static constexpr size_t value = 537; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::NamespaceName> { static constexpr size_t value = 538; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::Namespace> { static constexpr size_t value = 539; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::NamedDecl> { static constexpr size_t value = 540; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::NameLowerCase> { static constexpr size_t value = 541; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::InteractionName> { static constexpr size_t value = 542; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::InteractionDefinition> { static constexpr size_t value = 543; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::Identifier> { static constexpr size_t value = 544; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FunctionName> { static constexpr size_t value = 545; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::Literal> { static constexpr size_t value = 546; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FileXRefs> { static constexpr size_t value = 547; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::File> { static constexpr size_t value = 548; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::StructType> { static constexpr size_t value = 549; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::UnionType> { static constexpr size_t value = 550; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FieldDecl> { static constexpr size_t value = 551; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ExceptionVal> { static constexpr size_t value = 552; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ExceptionType> { static constexpr size_t value = 553; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::TypeDefException> { static constexpr size_t value = 554; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ExceptionName> { static constexpr size_t value = 555; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::EnumerationType> { static constexpr size_t value = 556; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::EnumValueDef> { static constexpr size_t value = 557; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::EnumValue> { static constexpr size_t value = 558; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::EnumVal> { static constexpr size_t value = 559; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationComment> { static constexpr size_t value = 560; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationFile> { static constexpr size_t value = 561; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationMember> { static constexpr size_t value = 562; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationName> { static constexpr size_t value = 563; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationNameSpan> { static constexpr size_t value = 564; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::DeclarationUses> { static constexpr size_t value = 565; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FileDeclaration> { static constexpr size_t value = 566; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FunctionDeclarationName> { static constexpr size_t value = 567; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::HackToThrift> { static constexpr size_t value = 568; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Hack::ThriftToHack> { static constexpr size_t value = 569; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::TypeSpecification> { static constexpr size_t value = 570; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::ConstantDefinition> { static constexpr size_t value = 571; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::Constant> { static constexpr size_t value = 572; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::NameLowerCase> { static constexpr size_t value = 573; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::FunctionDeclaration> { static constexpr size_t value = 574; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::XRefsViaFqnByFile> { static constexpr size_t value = 575; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationComment> { static constexpr size_t value = 576; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationLocation> { static constexpr size_t value = 577; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationReference> { static constexpr size_t value = 578; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationToFqn> { static constexpr size_t value = 579; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationUses> { static constexpr size_t value = 580; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationWithFqn> { static constexpr size_t value = 581; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::DeclarationsByFile> { static constexpr size_t value = 582; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Erlang::SearchByName> { static constexpr size_t value = 583; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dyn::ObserverIdentifier> { static constexpr size_t value = 584; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dyn::Environment> { static constexpr size_t value = 585; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dyn::EntityDynamicReference> { static constexpr size_t value = 586; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Digest::FileDigest> { static constexpr size_t value = 587; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Glass::FileInfo> { static constexpr size_t value = 588; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::TableDeclaration> { static constexpr size_t value = 589; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::TableColumnDeclaration> { static constexpr size_t value = 590; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::SubqueryDeclaration> { static constexpr size_t value = 591; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::SubqueryColumnDeclaration> { static constexpr size_t value = 592; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::MacroDeclaration> { static constexpr size_t value = 593; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::DeclarationLocation> { static constexpr size_t value = 594; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::DeclarationName> { static constexpr size_t value = 595; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dataswarm::XRefsByFile> { static constexpr size_t value = 596; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::VariableLowerCase> { static constexpr size_t value = 597; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::UsingDirective> { static constexpr size_t value = 598; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::UsingDeclaration> { static constexpr size_t value = 599; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TypeAliasLowerCase> { static constexpr size_t value = 600; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TypeAliasDeclaration> { static constexpr size_t value = 601; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Type> { static constexpr size_t value = 602; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TranslationUnitXRefs> { static constexpr size_t value = 603; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TranslationUnitTrace> { static constexpr size_t value = 604; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TranslationUnitIncludeTree> { static constexpr size_t value = 605; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Trace> { static constexpr size_t value = 606; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordUnionLowerCase> { static constexpr size_t value = 607; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordStructLowerCase> { static constexpr size_t value = 608; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDerived> { static constexpr size_t value = 609; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordClassLowerCase> { static constexpr size_t value = 610; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Signature> { static constexpr size_t value = 611; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::PPDefineLocation> { static constexpr size_t value = 612; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcSelector> { static constexpr size_t value = 613; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcPropertyImplementation> { static constexpr size_t value = 614; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcPropertyIVar> { static constexpr size_t value = 615; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcMethodDefinition> { static constexpr size_t value = 616; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclarationName> { static constexpr size_t value = 617; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcInterfaceToImplementation> { static constexpr size_t value = 618; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcImplements> { static constexpr size_t value = 619; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerInterfaceLowerCase> { static constexpr size_t value = 620; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerInheritance> { static constexpr size_t value = 621; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerDefinition> { static constexpr size_t value = 622; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclarationInterface> { static constexpr size_t value = 623; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerBase> { static constexpr size_t value = 624; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcContainerDeclaration> { static constexpr size_t value = 625; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcMethodDeclaration> { static constexpr size_t value = 626; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjcPropertyDeclaration> { static constexpr size_t value = 627; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ObjContainerIdName> { static constexpr size_t value = 628; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceQName> { static constexpr size_t value = 629; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceLowerCase> { static constexpr size_t value = 630; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceDefinition> { static constexpr size_t value = 631; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationName> { static constexpr size_t value = 632; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceDeclarationByName> { static constexpr size_t value = 633; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceDeclaration> { static constexpr size_t value = 634; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::NamespaceAliasDeclaration> { static constexpr size_t value = 635; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Name> { static constexpr size_t value = 636; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::MethodOverrides> { static constexpr size_t value = 637; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::MethodOverridden> { static constexpr size_t value = 638; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::IncludeTreeTranslationUnit> { static constexpr size_t value = 639; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::IncludeTreeParent> { static constexpr size_t value = 640; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::IncludeTree> { static constexpr size_t value = 641; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::PPTrace> { static constexpr size_t value = 642; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionLowerCase> { static constexpr size_t value = 643; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDefinition> { static constexpr size_t value = 644; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDeclarationNameString> { static constexpr size_t value = 645; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDeclarationName> { static constexpr size_t value = 646; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDeclaration> { static constexpr size_t value = 647; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDeclAttribute> { static constexpr size_t value = 648; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionAttribute> { static constexpr size_t value = 649; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FileXRefs> { static constexpr size_t value = 650; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FilePPUseXRefs> { static constexpr size_t value = 651; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FilePPUseTraceXRefs> { static constexpr size_t value = 652; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FilePPTraceXRefs> { static constexpr size_t value = 653; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::VariableDeclaration> { static constexpr size_t value = 654; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumeratorLowerCase> { static constexpr size_t value = 655; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumeratorInEnum> { static constexpr size_t value = 656; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumeratorByName> { static constexpr size_t value = 657; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Enumerator> { static constexpr size_t value = 658; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumLowerCase> { static constexpr size_t value = 659; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumDefinition> { static constexpr size_t value = 660; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumDeclaration> { static constexpr size_t value = 661; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DefnInRecord> { static constexpr size_t value = 662; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationComment> { static constexpr size_t value = 663; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationInTrace> { static constexpr size_t value = 664; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationLocationName> { static constexpr size_t value = 665; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationLocationNameSpan> { static constexpr size_t value = 666; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationNameSpan> { static constexpr size_t value = 667; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationSources> { static constexpr size_t value = 668; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationSrcRange> { static constexpr size_t value = 669; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationTargets> { static constexpr size_t value = 670; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationToUSR> { static constexpr size_t value = 671; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Declarations> { static constexpr size_t value = 672; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DefToBaseDecl> { static constexpr size_t value = 673; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::MangledNameHashToDeclaration> { static constexpr size_t value = 674; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Same> { static constexpr size_t value = 675; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::USRToDeclaration> { static constexpr size_t value = 676; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FileXRefMap> { static constexpr size_t value = 677; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::SpellingXRef> { static constexpr size_t value = 678; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TargetUses> { static constexpr size_t value = 679; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::ThriftToCxx> { static constexpr size_t value = 680; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::XRefIndirectTarget> { static constexpr size_t value = 681; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::XRefTargets> { static constexpr size_t value = 682; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDeclaration> { static constexpr size_t value = 683; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclToFamily> { static constexpr size_t value = 684; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclInRecord> { static constexpr size_t value = 685; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclInObjcContainer> { static constexpr size_t value = 686; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclFamilyOf> { static constexpr size_t value = 687; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclFamily> { static constexpr size_t value = 688; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::CxxToThrift> { static constexpr size_t value = 689; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::Attribute> { static constexpr size_t value = 690; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDefinition> { static constexpr size_t value = 691; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::UnityPackageToProject> { static constexpr size_t value = 692; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::UnityPackage> { static constexpr size_t value = 693; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::UnityProjectSource> { static constexpr size_t value = 694; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::TypeParameter> { static constexpr size_t value = 695; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::SourceFileToProject> { static constexpr size_t value = 696; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::SolutionToProject> { static constexpr size_t value = 697; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Solution> { static constexpr size_t value = 698; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::ProjectToSourceFile> { static constexpr size_t value = 699; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::ProjectToSolution> { static constexpr size_t value = 700; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Project> { static constexpr size_t value = 701; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Namespace> { static constexpr size_t value = 702; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::NameLowerCase> { static constexpr size_t value = 703; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Name> { static constexpr size_t value = 704; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::MSBuildProjectSource> { static constexpr size_t value = 705; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::MemberAccessLocation> { static constexpr size_t value = 706; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::MethodInvocationLocation> { static constexpr size_t value = 707; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Implements> { static constexpr size_t value = 708; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::FunctionPointerType> { static constexpr size_t value = 709; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::FullName> { static constexpr size_t value = 710; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Class> { static constexpr size_t value = 711; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Interface> { static constexpr size_t value = 712; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Record> { static constexpr size_t value = 713; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Struct> { static constexpr size_t value = 714; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::ArrayType> { static constexpr size_t value = 715; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::DefinitionLocation> { static constexpr size_t value = 716; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::DefinitionLocationName> { static constexpr size_t value = 717; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::FileDefinitions> { static constexpr size_t value = 718; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::FileEntityXRefs> { static constexpr size_t value = 719; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::SearchByName> { static constexpr size_t value = 720; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Field> { static constexpr size_t value = 721; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Local> { static constexpr size_t value = 722; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Method> { static constexpr size_t value = 723; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::ObjectCreationLocation> { static constexpr size_t value = 724; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Parameter> { static constexpr size_t value = 725; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::PointerType> { static constexpr size_t value = 726; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::Property> { static constexpr size_t value = 727; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Csharp::TypeLocation> { static constexpr size_t value = 728; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Yaml::YamlDataAvailable> { static constexpr size_t value = 729; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxNameLowerCase> { static constexpr size_t value = 730; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FlowNameLowerCase> { static constexpr size_t value = 731; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackNameLowerCase> { static constexpr size_t value = 732; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PythonNameLowerCase> { static constexpr size_t value = 733; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Types::RangeSpanContains> { static constexpr size_t value = 734; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::LsifKindToKind> { static constexpr size_t value = 735; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::FileXLangSymbolRefs> { static constexpr size_t value = 736; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::NonImportPythonDeclarationKind> { static constexpr size_t value = 737; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::NonImportPythonDeclarationInfo> { static constexpr size_t value = 738; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::ConvertLabel> { static constexpr size_t value = 739; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpIncludeXRefLocations> { static constexpr size_t value = 740; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifKindToKind> { static constexpr size_t value = 741; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackInheritedEntities> { static constexpr size_t value = 742; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEnumInheritedMembers> { static constexpr size_t value = 743; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::FromHackVisibility> { static constexpr size_t value = 744; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowDocumentationSpan> { static constexpr size_t value = 745; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowDeclarationDocumentation> { static constexpr size_t value = 746; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::FromCxxVisibility> { static constexpr size_t value = 747; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapVariableXRefDeclLocations> { static constexpr size_t value = 748; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationModifiers> { static constexpr size_t value = 749; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclVisibility> { static constexpr size_t value = 750; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclKind> { static constexpr size_t value = 751; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclInfo> { static constexpr size_t value = 752; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDataAvailable> { static constexpr size_t value = 753; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::IndexedFile> { static constexpr size_t value = 754; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityDataAvailable> { static constexpr size_t value = 755; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::EntityInfo> { static constexpr size_t value = 756; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityDocumentation> { static constexpr size_t value = 757; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityLocation> { static constexpr size_t value = 758; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::ScipEntityUses> { static constexpr size_t value = 759; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::ScipFileEntityXRefLocations> { static constexpr size_t value = 760; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Scip::ScipResolveLocation> { static constexpr size_t value = 761; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonContainsChildEntity> { static constexpr size_t value = 762; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonContainsParentEntity> { static constexpr size_t value = 763; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityComments> { static constexpr size_t value = 764; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityInfo> { static constexpr size_t value = 765; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityKind> { static constexpr size_t value = 766; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityLocation> { static constexpr size_t value = 767; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityModuleName> { static constexpr size_t value = 768; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonEntityUses> { static constexpr size_t value = 769; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonExtendsChildEntity> { static constexpr size_t value = 770; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonExtendsParentEntity> { static constexpr size_t value = 771; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonFileEntityXRefLocations> { static constexpr size_t value = 772; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonModifiers> { static constexpr size_t value = 773; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonResolveLocation> { static constexpr size_t value = 774; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonVisibility> { static constexpr size_t value = 775; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonAnnotation> { static constexpr size_t value = 776; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PPEntityLocation> { static constexpr size_t value = 777; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityInfo> { static constexpr size_t value = 778; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityKind> { static constexpr size_t value = 779; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityTraceXRefLocations> { static constexpr size_t value = 780; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpEntityUses> { static constexpr size_t value = 781; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpFileEntityXRefLocations> { static constexpr size_t value = 782; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpResolveLocation> { static constexpr size_t value = 783; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Pp::PpResolveTraceLocation> { static constexpr size_t value = 784; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::EntityInfo> { static constexpr size_t value = 785; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityLocation> { static constexpr size_t value = 786; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityModuleName> { static constexpr size_t value = 787; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifEntityUses> { static constexpr size_t value = 788; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifFileEntityXRefLocations> { static constexpr size_t value = 789; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Lsif::LsifResolveLocation> { static constexpr size_t value = 790; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinContainsChildEntity> { static constexpr size_t value = 791; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinContainsParentEntity> { static constexpr size_t value = 792; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityKind> { static constexpr size_t value = 793; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityLocation> { static constexpr size_t value = 794; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinEntityUses> { static constexpr size_t value = 795; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinExtendsParentEntity> { static constexpr size_t value = 796; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinFileEntityXRefLocations> { static constexpr size_t value = 797; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Kotlin::KotlinResolveLocation> { static constexpr size_t value = 798; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaContainsChildEntity> { static constexpr size_t value = 799; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaContainsParentEntity> { static constexpr size_t value = 800; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityDocumentation> { static constexpr size_t value = 801; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityKind> { static constexpr size_t value = 802; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityLocation> { static constexpr size_t value = 803; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaEntityUses> { static constexpr size_t value = 804; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaExtendsChildEntity> { static constexpr size_t value = 805; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaExtendsParentEntity> { static constexpr size_t value = 806; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaModifiers> { static constexpr size_t value = 807; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaResolveLocation> { static constexpr size_t value = 808; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaVisibility> { static constexpr size_t value = 809; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavalFileEntityXRefLocations> { static constexpr size_t value = 810; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Java::JavaAnnotation> { static constexpr size_t value = 811; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellContainsChildEntity> { static constexpr size_t value = 812; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellContainsParentEntity> { static constexpr size_t value = 813; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellEntityLocation> { static constexpr size_t value = 814; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellEntityUses> { static constexpr size_t value = 815; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellFileEntityXRefLocations> { static constexpr size_t value = 816; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Haskell::HaskellResolveLocation> { static constexpr size_t value = 817; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hs::SearchByLowerCaseName> { static constexpr size_t value = 818; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Hs::SearchByName> { static constexpr size_t value = 819; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::EntityHasHideFromDocsAttr> { static constexpr size_t value = 820; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackContainsChildEntity> { static constexpr size_t value = 821; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackContainsParentEntity> { static constexpr size_t value = 822; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityDocumentation> { static constexpr size_t value = 823; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityInfo> { static constexpr size_t value = 824; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityKind> { static constexpr size_t value = 825; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityLocation> { static constexpr size_t value = 826; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityModuleName> { static constexpr size_t value = 827; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntitySource> { static constexpr size_t value = 828; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityUses> { static constexpr size_t value = 829; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsChildEntity> { static constexpr size_t value = 830; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsParentEntity> { static constexpr size_t value = 831; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackExtendsParentEntityConcise> { static constexpr size_t value = 832; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackFileEntityXRefLocations> { static constexpr size_t value = 833; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackFileEntityXRefSpans> { static constexpr size_t value = 834; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackModifiers> { static constexpr size_t value = 835; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackRequiredConstraint> { static constexpr size_t value = 836; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackResolveLocation> { static constexpr size_t value = 837; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackVisibility> { static constexpr size_t value = 838; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackAnnotation> { static constexpr size_t value = 839; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityKind> { static constexpr size_t value = 840; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityLocation> { static constexpr size_t value = 841; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLEntityUses> { static constexpr size_t value = 842; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLFileEntityXRefLocations> { static constexpr size_t value = 843; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Graphql::GraphQLResolveLocation> { static constexpr size_t value = 844; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowContainsChildEntity> { static constexpr size_t value = 845; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowContainsParentEntity> { static constexpr size_t value = 846; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityDocumentation> { static constexpr size_t value = 847; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityKind> { static constexpr size_t value = 848; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityLocation> { static constexpr size_t value = 849; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityModuleName> { static constexpr size_t value = 850; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowEntityUses> { static constexpr size_t value = 851; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileEntityXRefLocations> { static constexpr size_t value = 852; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileImportDeclEntityXRefLocations> { static constexpr size_t value = 853; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowFileReferenceEntityXRefLocations> { static constexpr size_t value = 854; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Flow::FlowResolveLocation> { static constexpr size_t value = 855; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::FbthriftEntityDocumentation> { static constexpr size_t value = 856; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::FbthriftEntityUses> { static constexpr size_t value = 857; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftContainsChildEntity> { static constexpr size_t value = 858; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftContainsParentEntity> { static constexpr size_t value = 859; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftEntityKind> { static constexpr size_t value = 860; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftEntityLocation> { static constexpr size_t value = 861; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftExtendsChildEntity> { static constexpr size_t value = 862; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftExtendsParentEntity> { static constexpr size_t value = 863; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftFileEntityXRefLocations> { static constexpr size_t value = 864; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Fbthrift::ThriftResolveLocation> { static constexpr size_t value = 865; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityDocumentation> { static constexpr size_t value = 866; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityInfo> { static constexpr size_t value = 867; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityKind> { static constexpr size_t value = 868; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityLocation> { static constexpr size_t value = 869; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangEntityUses> { static constexpr size_t value = 870; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangFileEntityXRefLocations> { static constexpr size_t value = 871; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Erlang::ErlangResolveLocation> { static constexpr size_t value = 872; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Erlang::SearchByFQN> { static constexpr size_t value = 873; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Erlang::SearchByName> { static constexpr size_t value = 874; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Dataswarm::DataswarmFileEntityXRefLocations> { static constexpr size_t value = 875; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxContainsChildEntity> { static constexpr size_t value = 876; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxContainsParentEntity> { static constexpr size_t value = 877; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclToDefXRefTargetLocation> { static constexpr size_t value = 878; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationContainsChild> { static constexpr size_t value = 879; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationContainsParent> { static constexpr size_t value = 880; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationExtendsChild> { static constexpr size_t value = 881; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationExtendsParent> { static constexpr size_t value = 882; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDeclarationSource> { static constexpr size_t value = 883; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefToDeclFamilyXRefTargetLocation> { static constexpr size_t value = 884; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityDocumentation> { static constexpr size_t value = 885; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityInfo> { static constexpr size_t value = 886; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityKind> { static constexpr size_t value = 887; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityLocation> { static constexpr size_t value = 888; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityMangledNameHash> { static constexpr size_t value = 889; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntitySource> { static constexpr size_t value = 890; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityUSR> { static constexpr size_t value = 891; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityUses> { static constexpr size_t value = 892; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxExtendsChildEntity> { static constexpr size_t value = 893; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxExtendsParentEntity> { static constexpr size_t value = 894; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntitySpellingXRefLocations> { static constexpr size_t value = 895; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityTraceDeclToDefXRefLocations> { static constexpr size_t value = 896; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapFixedXRefLocations> { static constexpr size_t value = 897; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXMapVariableXRefDeclToDefs> { static constexpr size_t value = 898; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityXRefLocations> { static constexpr size_t value = 899; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFindDefinitionOfEntity> { static constexpr size_t value = 900; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxModifiers> { static constexpr size_t value = 901; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxNamespaceDeclarationContainsChild> { static constexpr size_t value = 902; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveDeclarationToEntity> { static constexpr size_t value = 903; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveLocation> { static constexpr size_t value = 904; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxResolveTraceLocation> { static constexpr size_t value = 905; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxVisibility> { static constexpr size_t value = 906; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxXRefTargetLocation> { static constexpr size_t value = 907; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::EntityToXRefTarget> { static constexpr size_t value = 908; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::SymbolToEntity> { static constexpr size_t value = 909; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::XRefTargetToEntity> { static constexpr size_t value = 910; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxPreferDefinitions> { static constexpr size_t value = 911; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchObjcInterface> { static constexpr size_t value = 912; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::DefinitionOfDecl> { static constexpr size_t value = 913; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupNamespaceDefinition> { static constexpr size_t value = 914; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionContainsChild> { static constexpr size_t value = 915; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionContainsParent> { static constexpr size_t value = 916; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionExtendsChild> { static constexpr size_t value = 917; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionExtendsParent> { static constexpr size_t value = 918; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefinitionModifiers> { static constexpr size_t value = 919; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxDefnVisibility> { static constexpr size_t value = 920; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityDefinitionBase> { static constexpr size_t value = 921; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::DeclIsDefn> { static constexpr size_t value = 922; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Code::Cxx::DeclToDef> { static constexpr size_t value = 923; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxAnnotation> { static constexpr size_t value = 924; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityKind> { static constexpr size_t value = 925; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityLocation> { static constexpr size_t value = 926; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpEntityUses> { static constexpr size_t value = 927; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpFileEntityXRefLocations> { static constexpr size_t value = 928; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Csharp::CSharpResolveLocation> { static constexpr size_t value = 929; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityKind> { static constexpr size_t value = 930; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityLocation> { static constexpr size_t value = 931; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Buck::BuckEntityUses> { static constexpr size_t value = 932; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Buck::BuckFileEntityXRefLocations> { static constexpr size_t value = 933; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Buck::BuckResolveLocation> { static constexpr size_t value = 934; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Buck::SearchByFQN> { static constexpr size_t value = 935; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Buck::SearchDefinition> { static constexpr size_t value = 936; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Buck::SearchFile> { static constexpr size_t value = 937; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Code::EntityLanguageSCIP> { static constexpr size_t value = 938; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Code::EntityLanguageLSIF> { static constexpr size_t value = 939; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionName> { static constexpr size_t value = 940; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDeclaration> { static constexpr size_t value = 941; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::DeclarationScope> { static constexpr size_t value = 942; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::EnumDeclarationByName> { static constexpr size_t value = 943; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionDeclarationByNameScope> { static constexpr size_t value = 944; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::FunctionQName> { static constexpr size_t value = 945; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::QName> { static constexpr size_t value = 946; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDeclarationClass> { static constexpr size_t value = 947; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDeclarationStruct> { static constexpr size_t value = 948; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::RecordDeclarationUnion> { static constexpr size_t value = 949; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::TypeAliasDeclarationByName> { static constexpr size_t value = 950; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Cxx1::VariableDeclarationNonLocalByName> { static constexpr size_t value = 951; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Cxx::QueryToScopeCase> { static constexpr size_t value = 952; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchClass> { static constexpr size_t value = 953; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnum> { static constexpr size_t value = 954; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchEnumerator> { static constexpr size_t value = 955; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchFunction> { static constexpr size_t value = 956; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchNamespace> { static constexpr size_t value = 957; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchStruct> { static constexpr size_t value = 958; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchTypeAlias> { static constexpr size_t value = 959; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchUnion> { static constexpr size_t value = 960; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Kind::Cxx::SearchVariable> { static constexpr size_t value = 961; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupDeclaration> { static constexpr size_t value = 962; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupDefinition> { static constexpr size_t value = 963; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupEnumerator> { static constexpr size_t value = 964; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDeclaration> { static constexpr size_t value = 965; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionDefinition> { static constexpr size_t value = 966; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDeclaration> { static constexpr size_t value = 967; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureDefinition> { static constexpr size_t value = 968; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDeclaration> { static constexpr size_t value = 969; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Symbolid::Cxx::LookupFunctionSignatureQualifierDefinition> { static constexpr size_t value = 970; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Fbthrift::FunctionSpecification> { static constexpr size_t value = 971; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Type> { static constexpr size_t value = 972; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TranslationUnit> { static constexpr size_t value = 973; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetUses> { static constexpr size_t value = 974; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetSourcesBaseModule> { static constexpr size_t value = 975; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetSources> { static constexpr size_t value = 976; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetOuts> { static constexpr size_t value = 977; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetOut> { static constexpr size_t value = 978; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetMode> { static constexpr size_t value = 979; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetLocation> { static constexpr size_t value = 980; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetLinkWhole> { static constexpr size_t value = 981; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetIndexerName> { static constexpr size_t value = 982; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetIndexer> { static constexpr size_t value = 983; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetHash> { static constexpr size_t value = 984; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetCallByCallExpr> { static constexpr size_t value = 985; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetCall> { static constexpr size_t value = 986; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetByType> { static constexpr size_t value = 987; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetAttribute> { static constexpr size_t value = 988; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Target> { static constexpr size_t value = 989; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::SourceFileLocation> { static constexpr size_t value = 990; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::SearchByLocalName> { static constexpr size_t value = 991; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::RuleKey> { static constexpr size_t value = 992; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Platform> { static constexpr size_t value = 993; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Owner> { static constexpr size_t value = 994; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::OutsTarget> { static constexpr size_t value = 995; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::OutputLabel> { static constexpr size_t value = 996; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::OutTarget> { static constexpr size_t value = 997; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::LocatorWithLabel> { static constexpr size_t value = 998; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::LocatorReverseDeps> { static constexpr size_t value = 999; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::LocatorReverseDep> { static constexpr size_t value = 1000; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Locator> { static constexpr size_t value = 1001; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::LocalNameLowerCase> { static constexpr size_t value = 1002; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::LocalName> { static constexpr size_t value = 1003; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Labels> { static constexpr size_t value = 1004; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Label> { static constexpr size_t value = 1005; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::IndexerName> { static constexpr size_t value = 1006; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileXRefs> { static constexpr size_t value = 1007; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileToTarget> { static constexpr size_t value = 1008; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileTarget> { static constexpr size_t value = 1009; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileResolved> { static constexpr size_t value = 1010; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileEntity> { static constexpr size_t value = 1011; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FileDefinition> { static constexpr size_t value = 1012; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::File> { static constexpr size_t value = 1013; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::FailureSources> { static constexpr size_t value = 1014; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::IndexFailureX> { static constexpr size_t value = 1015; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::DestinationUses> { static constexpr size_t value = 1016; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::TargetDependencies> { static constexpr size_t value = 1017; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::DefinitionLocation> { static constexpr size_t value = 1018; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Definition> { static constexpr size_t value = 1019; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::Consumer> { static constexpr size_t value = 1020; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::CallExpr> { static constexpr size_t value = 1021; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::CallArgument> { static constexpr size_t value = 1022; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::AttributeName> { static constexpr size_t value = 1023; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::AttributeValue> { static constexpr size_t value = 1024; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Buck::ArgumentValue> { static constexpr size_t value = 1025; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::TypeDecl> { static constexpr size_t value = 1026; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::Name> { static constexpr size_t value = 1027; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::Type> { static constexpr size_t value = 1028; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::EvolveDecl> { static constexpr size_t value = 1029; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::DerivingDecl> { static constexpr size_t value = 1030; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::PredicateDecl> { static constexpr size_t value = 1031; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::DeclarationLocation> { static constexpr size_t value = 1032; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::DeclarationToName> { static constexpr size_t value = 1033; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::SchemaDecl> { static constexpr size_t value = 1034; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::TargetUses> { static constexpr size_t value = 1035; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Anglelang::FileXRefs> { static constexpr size_t value = 1036; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallArguments> { static constexpr size_t value = 1037; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertMaybeCallArguments> { static constexpr size_t value = 1038; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::ConvertCallArguments> { static constexpr size_t value = 1039; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::PythonFileCall> { static constexpr size_t value = 1040; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertArgument> { static constexpr size_t value = 1041; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Python::ConvertArgument> { static constexpr size_t value = 1042; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Code::EntityLanguage> { static constexpr size_t value = 1043; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxEntityIdl> { static constexpr size_t value = 1044; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackEntityIdl> { static constexpr size_t value = 1045; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Yaml::YamlFileEntityXLangXRefLocations> { static constexpr size_t value = 1046; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ContainsChildEntity> { static constexpr size_t value = 1047; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ContainsParentEntity> { static constexpr size_t value = 1048; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityComments> { static constexpr size_t value = 1049; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityInfo> { static constexpr size_t value = 1050; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityIsDefinition> { static constexpr size_t value = 1051; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityKind> { static constexpr size_t value = 1052; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityLocation> { static constexpr size_t value = 1053; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityModifiers> { static constexpr size_t value = 1054; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityModuleName> { static constexpr size_t value = 1055; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityReferences> { static constexpr size_t value = 1056; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntitySource> { static constexpr size_t value = 1057; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityToAnnotations> { static constexpr size_t value = 1058; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityUses> { static constexpr size_t value = 1059; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::EntityVisibility> { static constexpr size_t value = 1060; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ExtendsChildEntity> { static constexpr size_t value = 1061; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ExtendsParentEntity> { static constexpr size_t value = 1062; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ExtendsParentEntityConcise> { static constexpr size_t value = 1063; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileCall> { static constexpr size_t value = 1064; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityDigest> { static constexpr size_t value = 1065; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityInfos> { static constexpr size_t value = 1066; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityKinds> { static constexpr size_t value = 1067; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityLocations> { static constexpr size_t value = 1068; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityXRefInfos> { static constexpr size_t value = 1069; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityXRefKinds> { static constexpr size_t value = 1070; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityXRefLocations> { static constexpr size_t value = 1071; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileEntityXRefRangeSpans> { static constexpr size_t value = 1072; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FindEntityDefinition> { static constexpr size_t value = 1073; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::GeneratedEntityToIdlEntity> { static constexpr size_t value = 1074; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::FileXRefsGenericEntities> { static constexpr size_t value = 1075; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::SearchRelatedEntities> { static constexpr size_t value = 1076; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ReferencingEntity> { static constexpr size_t value = 1077; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::ResolveLocation> { static constexpr size_t value = 1078; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::SearchInheritedEntities> { static constexpr size_t value = 1079; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::SymbolToEntity> { static constexpr size_t value = 1080; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxFileEntityIdl> { static constexpr size_t value = 1081; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Cxx::CxxIdlEntityUses> { static constexpr size_t value = 1082; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCallee> { static constexpr size_t value = 1083; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertCalleeForFileCall> { static constexpr size_t value = 1084; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::ConvertStaticType> { static constexpr size_t value = 1085; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackFileCall> { static constexpr size_t value = 1086; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Hack::HackIdlEntityUses> { static constexpr size_t value = 1087; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Search::EntityLocationAndKind> { static constexpr size_t value = 1088; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Search::SearchByName> { static constexpr size_t value = 1089; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Search::SearchByScope> { static constexpr size_t value = 1090; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Dyn::EntityUsage> { static constexpr size_t value = 1091; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::AngleSearchByLowerCaseName> { static constexpr size_t value = 1092; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::AngleSearchByName> { static constexpr size_t value = 1093; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::BuckSearchByLocalNameFact> { static constexpr size_t value = 1094; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::BuckSearchByLowerCaseName> { static constexpr size_t value = 1095; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::BuckSearchByName> { static constexpr size_t value = 1096; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CSharpSearchByLowerCaseName> { static constexpr size_t value = 1097; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CSharpSearchByName> { static constexpr size_t value = 1098; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseNameKindAndScopeFact> { static constexpr size_t value = 1099; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxSearchByLowerCaseScopeAndKind> { static constexpr size_t value = 1100; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxSearchByNameKindAndScopeFact> { static constexpr size_t value = 1101; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::CxxSearchByScopeAndKind> { static constexpr size_t value = 1102; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::ErlangSearchByLowerCaseName> { static constexpr size_t value = 1103; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::ErlangSearchByName> { static constexpr size_t value = 1104; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FbthriftSearchByNameFact> { static constexpr size_t value = 1105; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FlowSearchByLowerCaseNameKindAndScopeFact> { static constexpr size_t value = 1106; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FlowSearchByLowerCaseScopeAndKind> { static constexpr size_t value = 1107; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FlowSearchByNameKindAndScopeFact> { static constexpr size_t value = 1108; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::FlowSearchByScopeAndKind> { static constexpr size_t value = 1109; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::GraphQLSearchByLowerCaseName> { static constexpr size_t value = 1110; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::GraphQLSearchByName> { static constexpr size_t value = 1111; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseNameAndKind> { static constexpr size_t value = 1112; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByLowerCaseScopeAndKind> { static constexpr size_t value = 1113; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByNameAndKind> { static constexpr size_t value = 1114; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithNamespace> { static constexpr size_t value = 1115; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByNameKindWithQName> { static constexpr size_t value = 1116; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByScopeAndKind> { static constexpr size_t value = 1117; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HackSearchByScopeWithNameKinds> { static constexpr size_t value = 1118; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HsSearchByLowerCaseName> { static constexpr size_t value = 1119; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::HsSearchByName> { static constexpr size_t value = 1120; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseName> { static constexpr size_t value = 1121; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByLowerCaseScope> { static constexpr size_t value = 1122; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByName> { static constexpr size_t value = 1123; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByNameWithFact> { static constexpr size_t value = 1124; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByScope> { static constexpr size_t value = 1125; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::JavaSearchByScopeWithName> { static constexpr size_t value = 1126; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseName> { static constexpr size_t value = 1127; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByLowerCaseScope> { static constexpr size_t value = 1128; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByName> { static constexpr size_t value = 1129; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByNameWithFact> { static constexpr size_t value = 1130; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByScope> { static constexpr size_t value = 1131; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::KotlinSearchByScopeWithName> { static constexpr size_t value = 1132; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::LsifSearchByLowerCaseName> { static constexpr size_t value = 1133; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::LsifSearchByName> { static constexpr size_t value = 1134; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PpSearchByLowerCaseNameKind> { static constexpr size_t value = 1135; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PpSearchByNameKind> { static constexpr size_t value = 1136; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseNameKindAndScopeFact> { static constexpr size_t value = 1137; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PythonSearchByLowerCaseScopeAndKind> { static constexpr size_t value = 1138; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PythonSearchByNameKindAndScopeFact> { static constexpr size_t value = 1139; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::PythonSearchByScopeAndKind> { static constexpr size_t value = 1140; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::RustSearchByNameAndKind> { static constexpr size_t value = 1141; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameAndLanguage> { static constexpr size_t value = 1142; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseNameKindAndLanguage> { static constexpr size_t value = 1143; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScope> { static constexpr size_t value = 1144; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByLowerCaseScopeAndKind> { static constexpr size_t value = 1145; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByNameAndLanguage> { static constexpr size_t value = 1146; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByNameKindAndLanguage> { static constexpr size_t value = 1147; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByScope> { static constexpr size_t value = 1148; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::SearchByScopeAndKind> { static constexpr size_t value = 1149; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::ThriftSearchByLowerCaseName> { static constexpr size_t value = 1150; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Code::ThriftSearchByName> { static constexpr size_t value = 1151; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleEntityLocation> { static constexpr size_t value = 1152; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleEntityUses> { static constexpr size_t value = 1153; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleFileEntityXRefLocations> { static constexpr size_t value = 1154; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Codemarkup::Anglelang::AngleResolveLocation> { static constexpr size_t value = 1155; };
template<> struct SCHEMA::index<facebook::glean::cpp::schema::Search::Anglelang::SearchByName> { 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