mirror of
https://github.com/gonum/gonum.git
synced 2025-10-05 07:06:54 +08:00
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
// Copyright ©2017 The gonum Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package encoding provides a common graph encoding API.
|
|
package encoding // import "gonum.org/v1/gonum/graph/encoding"
|
|
|
|
import "gonum.org/v1/gonum/graph"
|
|
|
|
// Builder is a graph that can have user-defined nodes and edges added.
|
|
type Builder interface {
|
|
graph.Graph
|
|
graph.Builder
|
|
// NewEdge adds a new edge from the source to the destination node to the
|
|
// graph, or returns the existing edge if already present.
|
|
NewEdge(from, to graph.Node) graph.Edge
|
|
}
|
|
|
|
// AttributeSetter is implemented by types that can set an encoded graph
|
|
// attribute.
|
|
type AttributeSetter interface {
|
|
SetAttribute(Attribute) error
|
|
}
|
|
|
|
// Attributer defines graph.Node or graph.Edge values that can
|
|
// specify graph attributes.
|
|
type Attributer interface {
|
|
Attributes() []Attribute
|
|
}
|
|
|
|
// Attribute is an encoded key value attribute pair use in graph encoding.
|
|
type Attribute struct {
|
|
Key, Value string
|
|
}
|