From b3ef7cd9aad56a1040c8a4650ef7bb878e5406d3 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Mon, 25 Sep 2023 15:13:46 -0700 Subject: [PATCH] include graph root level in serialization --- d2graph/serde.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/d2graph/serde.go b/d2graph/serde.go index 61aa17e4e..2cc484111 100644 --- a/d2graph/serde.go +++ b/d2graph/serde.go @@ -10,9 +10,10 @@ import ( ) type SerializedGraph struct { - Root SerializedObject `json:"root"` - Edges []SerializedEdge `json:"edges"` - Objects []SerializedObject `json:"objects"` + Root SerializedObject `json:"root"` + Edges []SerializedEdge `json:"edges"` + Objects []SerializedObject `json:"objects"` + RootLevel int `json:"rootLevel"` } type SerializedObject map[string]interface{} @@ -30,6 +31,7 @@ func DeserializeGraph(bytes []byte, g *Graph) error { convert(sg.Root, &root) g.Root = &root root.Graph = g + g.RootLevel = sg.RootLevel idToObj := make(map[string]*Object) idToObj[""] = g.Root @@ -91,6 +93,7 @@ func SerializeGraph(g *Graph) ([]byte, error) { return nil, err } sg.Root = root + sg.RootLevel = g.RootLevel var sobjects []SerializedObject for _, o := range g.Objects {