go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/projects/nodes/pkg/types/graph.go (about)

     1  /*
     2  
     3  Copyright (c) 2023 - Present. Will Charczuk. All rights reserved.
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository.
     5  
     6  */
     7  
     8  package types
     9  
    10  import "github.com/wcharczuk/go-incr"
    11  
    12  // GraphFromIncr returns a db graph from an incremental graph object.
    13  func GraphFromIncr(g *incr.Graph) *Graph {
    14  	eg := incr.ExpertGraph(g)
    15  	meta, _ := g.Metadata().(*GraphMetadata)
    16  	return &Graph{
    17  		ID:               g.ID(),
    18  		Label:            g.Label(),
    19  		StabilizationNum: eg.StabilizationNum(),
    20  		Metadata:         *meta,
    21  	}
    22  }
    23  
    24  type Graph struct {
    25  	ID               incr.Identifier `json:"id"`
    26  	Label            string          `json:"label"`
    27  	StabilizationNum uint64          `json:"stabilization_num"`
    28  	Metadata         GraphMetadata   `json:"metadata"`
    29  }