Files
clice/include/Index/schema.fbs
2025-10-19 21:53:57 +08:00

104 lines
1.5 KiB
Plaintext

namespace clice.index.binary;
struct Range {
begin: uint;
end: uint;
}
struct Occurrence {
range: Range;
target: ulong;
}
struct Relation {
kind: uint;
padding: uint;
range: Range;
target_symbol: ulong;
}
table CacheEntry {
sha256: string;
canonical_id: uint;
}
struct IncludeContext {
include_id: uint;
canonical_id: uint;
}
table HeaderContextEntry {
path_id: uint;
version: uint;
includes: [IncludeContext];
}
struct IncludeLocation {
path_id: uint;
line: uint;
include_id: uint;
}
table CompilationContextEntry {
path_id: uint;
version: uint;
canonical_id: uint;
build_at: ulong;
include_locations: [IncludeLocation];
}
table OccurrenceEntry {
occurrence: Occurrence;
context: [ubyte];
}
table RelationEntry {
relation: Relation;
context: [ubyte];
}
table SymbolRelationsEntry {
symbol: ulong;
relations: [RelationEntry];
}
table Symbol {
kind: ubyte;
refs: [ubyte];
}
table SymbolEntry {
symbol_id: ulong;
symbol: Symbol;
}
table MergedIndex {
max_canonical_id: uint;
canonical_cache: [CacheEntry];
header_contexts: [HeaderContextEntry];
compilation_contexts: [CompilationContextEntry];
occurrences: [OccurrenceEntry];
relations: [SymbolRelationsEntry];
}
table PathEntry {
path: string;
id: uint;
}
struct PathMapEntry {
source: uint;
index: uint;
}
table ProjectIndex {
paths: [PathEntry];
indices: [PathMapEntry];
symbols: [SymbolEntry];
}