Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

Commit e335b50

Browse files
oppiliappanHendrik van Antwerpen
authored andcommitted
wip: add structures to hold filtered stack graphs
1 parent ba57851 commit e335b50

File tree

3 files changed

+64
-1
lines changed

3 files changed

+64
-1
lines changed

stack-graphs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ fxhash = "0.2"
2929
itertools = "0.10"
3030
libc = "0.2"
3131
lsp-positions = { version="0.3", path="../lsp-positions" }
32-
serde = { version="1.0", optional=true }
32+
serde = { version="1.0", optional=true, features = ["derive"] }
3333
serde_json = { version="1.0", optional=true }
3434
smallvec = { version="1.6", features=["union"] }
3535
thiserror = { version="1.0" }
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
use serde::Deserialize;
2+
use serde::Serialize;
3+
4+
pub struct FilteredStackGraph {
5+
files: FilteredFiles,
6+
nodes: FilteredNodes,
7+
// edges: FilteredEdges,
8+
}
9+
10+
#[derive(Serialize, Deserialize)]
11+
#[serde(transparent)]
12+
pub struct FilteredFiles {
13+
data: Vec<String>,
14+
}
15+
16+
#[derive(Serialize, Deserialize)]
17+
#[serde(transparent)]
18+
pub struct FilteredNodes {
19+
data: Vec<FilteredNode>,
20+
}
21+
22+
#[derive(Serialize, Deserialize)]
23+
#[serde(tag = "type")]
24+
pub enum FilteredNode {
25+
#[serde(rename = "drop_scopes")]
26+
DropScopes(FilteredDropScopesNode),
27+
// #[serde(rename = "jump_to")]
28+
// JumpTo(FilteredJumpToNode),
29+
30+
// #[serde(rename = "pop_scoped_symbol")]
31+
// PopScopedSymbol(FilteredPopScopedSymbolNode),
32+
33+
// #[serde(rename = "pop_symbol")]
34+
// PopSymbol(FilteredPopSymbolNode),
35+
36+
// #[serde(rename = "push_scoped_symbol")]
37+
// PushScopedSymbol(FilteredPushScopedSymbolNode),
38+
39+
// #[serde(rename = "push_symbol")]
40+
// PushSymbol(FilteredPushSymbolNode),
41+
42+
// #[serde(rename = "root")]
43+
// Root(FilteredRootNode),
44+
45+
// #[serde(rename = "scope")]
46+
// Scope(FilteredScopeNode),
47+
}
48+
49+
#[derive(Serialize, Deserialize)]
50+
pub struct FilteredNodeID {
51+
file: String,
52+
local_id: u32,
53+
}
54+
55+
#[derive(Serialize, Deserialize)]
56+
pub struct FilteredDropScopesNode {
57+
id: FilteredNodeID,
58+
// source_info: FilteredSourceInfo
59+
// debug_info: FilteredDebugInfo
60+
}

stack-graphs/src/json.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ use crate::partial::ScopeStackVariable;
3737
use crate::partial::SymbolStackVariable;
3838
use crate::stitching::Database;
3939

40+
#[path = "filtered_stack_graph.rs"]
41+
mod filtered_stack_graph;
42+
4043
#[derive(Debug, Error)]
4144
#[error(transparent)]
4245
pub struct JsonError(#[from] serde_json::error::Error);

0 commit comments

Comments
 (0)