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

Commit e5b2c17

Browse files
author
Hendrik van Antwerpen
committed
Delete old serialization code
1 parent ca834c7 commit e5b2c17

File tree

1 file changed

+2
-272
lines changed

1 file changed

+2
-272
lines changed

stack-graphs/src/json.rs

Lines changed: 2 additions & 272 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
// Please see the LICENSE-APACHE or LICENSE-MIT files in this distribution for license details.
66
// ------------------------------------------------------------------------------------------------
77

8-
use lsp_positions::Offset;
9-
use lsp_positions::Position;
10-
use lsp_positions::Span;
118
use serde::ser::Serialize;
129
use serde::ser::SerializeSeq;
1310
use serde::ser::SerializeStruct;
@@ -17,13 +14,8 @@ use std::ops::Index;
1714
use thiserror::Error;
1815

1916
use crate::arena::Handle;
20-
use crate::graph::DebugEntry;
21-
use crate::graph::DebugInfo;
22-
use crate::graph::Edge;
2317
use crate::graph::File;
24-
use crate::graph::Node;
2518
use crate::graph::NodeID;
26-
use crate::graph::SourceInfo;
2719
use crate::graph::StackGraph;
2820
use crate::partial::PartialPath;
2921
use crate::partial::PartialPathEdge;
@@ -34,8 +26,9 @@ use crate::partial::PartialScopedSymbol;
3426
use crate::partial::PartialSymbolStack;
3527
use crate::partial::ScopeStackVariable;
3628
use crate::partial::SymbolStackVariable;
29+
pub use crate::serde::Filter;
3730
use crate::serde::ImplicationFilter;
38-
pub use crate::serde::{Filter, NoFilter};
31+
pub use crate::serde::NoFilter;
3932
use crate::stitching::Database;
4033

4134
#[derive(Debug, Error)]
@@ -63,24 +56,6 @@ impl<'a, T> InStackGraph<'a, T> {
6356
//-----------------------------------------------------------------------------
6457
// Files
6558

66-
struct Files;
67-
68-
impl<'a> Serialize for InStackGraph<'a, &Files> {
69-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
70-
where
71-
S: Serializer,
72-
{
73-
let graph = self.0;
74-
let filter = self.2;
75-
76-
let mut ser = serializer.serialize_seq(None)?;
77-
for file in graph.iter_files().filter(|f| filter.include_file(graph, f)) {
78-
ser.serialize_element(&self.with_idx(file))?;
79-
}
80-
ser.end()
81-
}
82-
}
83-
8459
impl Serialize for InStackGraph<'_, (Handle<File>, &File)> {
8560
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
8661
where
@@ -94,111 +69,6 @@ impl Serialize for InStackGraph<'_, (Handle<File>, &File)> {
9469
//-----------------------------------------------------------------------------
9570
// Nodes
9671

97-
struct Nodes;
98-
99-
impl Serialize for InStackGraph<'_, &Nodes> {
100-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
101-
where
102-
S: Serializer,
103-
{
104-
let graph = self.0;
105-
let filter = self.2;
106-
107-
let mut nodes = serializer.serialize_seq(None)?;
108-
for node in graph
109-
.iter_nodes()
110-
.filter(|n| filter.include_node(graph, &n))
111-
{
112-
nodes.serialize_element(&self.with_idx(node))?;
113-
}
114-
nodes.end()
115-
}
116-
}
117-
118-
impl Serialize for InStackGraph<'_, (Handle<Node>, &Node)> {
119-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
120-
where
121-
S: Serializer,
122-
{
123-
let graph = self.0;
124-
let handle = self.1 .0;
125-
let node = self.1 .1;
126-
let source_info = graph.source_info(handle);
127-
let debug_info = graph.debug_info(handle);
128-
129-
let mut len = 2;
130-
if source_info.is_some() {
131-
len += 1;
132-
}
133-
if debug_info.is_some() {
134-
len += 1;
135-
}
136-
137-
let mut ser = match node {
138-
Node::DropScopes(_node) => {
139-
let mut ser = serializer.serialize_struct("node", len + 1)?;
140-
ser.serialize_field("type", "drop_scopes")?;
141-
ser
142-
}
143-
Node::JumpTo(_node) => {
144-
let mut ser = serializer.serialize_struct("node", len + 1)?;
145-
ser.serialize_field("type", "jump_to_scope")?;
146-
ser
147-
}
148-
Node::PopScopedSymbol(node) => {
149-
let mut ser = serializer.serialize_struct("node", len + 3)?;
150-
ser.serialize_field("type", "pop_scoped_symbol")?;
151-
ser.serialize_field("symbol", &graph[node.symbol])?;
152-
ser.serialize_field("is_definition", &node.is_definition)?;
153-
ser
154-
}
155-
Node::PopSymbol(node) => {
156-
let mut ser = serializer.serialize_struct("node", len + 3)?;
157-
ser.serialize_field("type", "pop_symbol")?;
158-
ser.serialize_field("symbol", &graph[node.symbol])?;
159-
ser.serialize_field("is_definition", &node.is_definition)?;
160-
ser
161-
}
162-
Node::PushScopedSymbol(node) => {
163-
let mut ser = serializer.serialize_struct("node", len + 4)?;
164-
ser.serialize_field("type", "push_scoped_symbol")?;
165-
ser.serialize_field("symbol", &graph[node.symbol])?;
166-
ser.serialize_field("scope", &self.with(&node.scope))?;
167-
ser.serialize_field("is_reference", &node.is_reference)?;
168-
ser
169-
}
170-
Node::PushSymbol(node) => {
171-
let mut ser = serializer.serialize_struct("node", len + 3)?;
172-
ser.serialize_field("type", "push_symbol")?;
173-
ser.serialize_field("symbol", &graph[node.symbol])?;
174-
ser.serialize_field("is_reference", &node.is_reference)?;
175-
ser
176-
}
177-
Node::Root(_node) => {
178-
let mut ser = serializer.serialize_struct("node", len + 1)?;
179-
ser.serialize_field("type", "root")?;
180-
ser
181-
}
182-
Node::Scope(node) => {
183-
let mut ser = serializer.serialize_struct("node", len + 2)?;
184-
ser.serialize_field("type", "scope")?;
185-
ser.serialize_field("is_exported", &node.is_exported)?;
186-
ser
187-
}
188-
};
189-
190-
ser.serialize_field("id", &self.with(&node.id()))?;
191-
if let Some(source_info) = source_info {
192-
ser.serialize_field("source_info", &self.with(source_info))?;
193-
}
194-
if let Some(debug_info) = debug_info {
195-
ser.serialize_field("debug_info", &self.with(debug_info))?;
196-
}
197-
198-
ser.end()
199-
}
200-
}
201-
20272
impl Serialize for InStackGraph<'_, &Vec<NodeID>> {
20373
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
20474
where
@@ -231,146 +101,6 @@ impl Serialize for InStackGraph<'_, &NodeID> {
231101
}
232102
}
233103

234-
impl Serialize for InStackGraph<'_, &SourceInfo> {
235-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
236-
where
237-
S: Serializer,
238-
{
239-
let graph = self.0;
240-
let source_info = self.1;
241-
242-
let mut len = 1;
243-
if source_info.syntax_type.is_some() {
244-
len += 1;
245-
}
246-
247-
let mut ser = serializer.serialize_struct("source_info", len)?;
248-
ser.serialize_field("span", &self.with(&source_info.span))?;
249-
if let Some(syntax_type) = source_info.syntax_type {
250-
ser.serialize_field("syntax_type", &graph[syntax_type])?;
251-
}
252-
ser.end()
253-
}
254-
}
255-
256-
impl Serialize for InStackGraph<'_, &DebugInfo> {
257-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
258-
where
259-
S: Serializer,
260-
{
261-
let debug_info = self.1;
262-
263-
let mut ser = serializer.serialize_seq(None)?;
264-
for entry in debug_info.iter() {
265-
ser.serialize_element(&self.with(entry))?;
266-
}
267-
ser.end()
268-
}
269-
}
270-
271-
impl Serialize for InStackGraph<'_, &DebugEntry> {
272-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
273-
where
274-
S: Serializer,
275-
{
276-
let graph = self.0;
277-
let debug_entry = self.1;
278-
279-
let mut ser = serializer.serialize_struct("debug_entry", 2)?;
280-
ser.serialize_field("key", &graph[debug_entry.key])?;
281-
ser.serialize_field("value", &graph[debug_entry.value])?;
282-
ser.end()
283-
}
284-
}
285-
286-
//-----------------------------------------------------------------------------
287-
// Edges
288-
289-
struct Edges;
290-
291-
impl Serialize for InStackGraph<'_, &Edges> {
292-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
293-
where
294-
S: Serializer,
295-
{
296-
let graph = self.0;
297-
let filter = self.2;
298-
299-
let mut ser = serializer.serialize_seq(None)?;
300-
for source in graph.iter_nodes() {
301-
for edge in graph
302-
.outgoing_edges(source)
303-
.filter(|e| filter.include_edge(graph, &e.source, &e.sink))
304-
{
305-
ser.serialize_element(&self.with(&edge))?;
306-
}
307-
}
308-
ser.end()
309-
}
310-
}
311-
312-
impl Serialize for InStackGraph<'_, &Edge> {
313-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
314-
where
315-
S: Serializer,
316-
{
317-
let graph = self.0;
318-
let edge = self.1;
319-
320-
let mut ser = serializer.serialize_struct("edge", 3)?;
321-
ser.serialize_field("source", &self.with(&graph[edge.source].id()))?;
322-
ser.serialize_field("sink", &self.with(&graph[edge.sink].id()))?;
323-
ser.serialize_field("precedence", &edge.precedence)?;
324-
ser.end()
325-
}
326-
}
327-
328-
//-----------------------------------------------------------------------------
329-
// Span, Position, Offset
330-
331-
impl Serialize for InStackGraph<'_, &Span> {
332-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
333-
where
334-
S: Serializer,
335-
{
336-
let span = self.1;
337-
338-
let mut ser = serializer.serialize_struct("span", 2)?;
339-
ser.serialize_field("start", &self.with(&span.start))?;
340-
ser.serialize_field("end", &self.with(&span.end))?;
341-
ser.end()
342-
}
343-
}
344-
345-
impl Serialize for InStackGraph<'_, &Position> {
346-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
347-
where
348-
S: Serializer,
349-
{
350-
let position = self.1;
351-
352-
let mut ser = serializer.serialize_struct("position", 2)?;
353-
ser.serialize_field("line", &position.line)?;
354-
ser.serialize_field("column", &self.with(&position.column))?;
355-
ser.end()
356-
}
357-
}
358-
359-
impl Serialize for InStackGraph<'_, &Offset> {
360-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
361-
where
362-
S: Serializer,
363-
{
364-
let offset = self.1;
365-
366-
let mut ser = serializer.serialize_struct("offset", 3)?;
367-
ser.serialize_field("utf8_offset", &offset.utf8_offset)?;
368-
ser.serialize_field("utf16_offset", &offset.utf16_offset)?;
369-
ser.serialize_field("grapheme_offset", &offset.grapheme_offset)?;
370-
ser.end()
371-
}
372-
}
373-
374104
//-----------------------------------------------------------------------------
375105
// Database
376106

0 commit comments

Comments
 (0)