graph/encoding/dot: refactor quoting docs (#797)

This commit is contained in:
Dan Kortschak
2019-01-14 22:41:29 +10:30
committed by Robin Eklind
parent 24f0d081ca
commit bb6edb12aa
4 changed files with 11 additions and 17 deletions

View File

@@ -44,9 +44,7 @@ type PortSetter interface {
// If the number of graphs encoded in data is not one, an error is returned and // If the number of graphs encoded in data is not one, an error is returned and
// dst will hold the first graph in data. // dst will hold the first graph in data.
// //
// Attributes and IDs are quoted if needed during marshalling, to conform with // Attributes and IDs are unquoted during unmarshalling if appropriate.
// valid DOT syntax. Quoted IDs and attributes are unquoted during unmarshaling,
// so the data is kept in raw form.
func Unmarshal(data []byte, dst encoding.Builder) error { func Unmarshal(data []byte, dst encoding.Builder) error {
file, err := dot.ParseBytes(data) file, err := dot.ParseBytes(data)
if err != nil { if err != nil {
@@ -64,9 +62,7 @@ func Unmarshal(data []byte, dst encoding.Builder) error {
// If the number of graphs encoded in data is not one, an error is returned and // If the number of graphs encoded in data is not one, an error is returned and
// dst will hold the first graph in data. // dst will hold the first graph in data.
// //
// Attributes and IDs are quoted if needed during marshalling, to conform with // Attributes and IDs are unquoted during unmarshalling if appropriate.
// valid DOT syntax. Quoted IDs and attributes are unquoted during unmarshaling,
// so the data is kept in raw form.
func UnmarshalMulti(data []byte, dst encoding.MultiBuilder) error { func UnmarshalMulti(data []byte, dst encoding.MultiBuilder) error {
file, err := dot.ParseBytes(data) file, err := dot.ParseBytes(data)
if err != nil { if err != nil {

View File

@@ -11,4 +11,11 @@
// //
// DOT grammar: http://www.graphviz.org/doc/info/lang.html // DOT grammar: http://www.graphviz.org/doc/info/lang.html
// //
// Attribute quoting
//
// Attributes and IDs are quoted if needed during marshalling, to conform with
// valid DOT syntax. Quoted IDs and attributes are unquoted during unmarshaling,
// so the data is kept in raw form. As an exception, quoted text with a leading
// `"<` and a trailing `>"` is not unquoted to ensure preservation of the string
// during a round-trip.
package dot // import "gonum.org/v1/gonum/graph/encoding/dot" package dot // import "gonum.org/v1/gonum/graph/encoding/dot"

View File

@@ -1,5 +0,0 @@
// Copyright ©2015 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 dot

View File

@@ -93,9 +93,7 @@ type MultiSubgrapher interface {
// implementation of the Node, Attributer, Porter, Attributers, Structurer, // implementation of the Node, Attributer, Porter, Attributers, Structurer,
// Subgrapher and Graph interfaces. // Subgrapher and Graph interfaces.
// //
// Attributes and IDs are quoted if needed during marshalling, to conform with // Attributes and IDs are quoted if needed during marshalling.
// valid DOT syntax. Quoted IDs and attributes are unquoted during unmarshaling,
// so the data is kept in raw form.
func Marshal(g graph.Graph, name, prefix, indent string) ([]byte, error) { func Marshal(g graph.Graph, name, prefix, indent string) ([]byte, error) {
var p simpleGraphPrinter var p simpleGraphPrinter
p.indent = indent p.indent = indent
@@ -118,9 +116,7 @@ func Marshal(g graph.Graph, name, prefix, indent string) ([]byte, error) {
// implementation of the Node, Attributer, Porter, Attributers, Structurer, // implementation of the Node, Attributer, Porter, Attributers, Structurer,
// MultiSubgrapher and Multigraph interfaces. // MultiSubgrapher and Multigraph interfaces.
// //
// Attributes and IDs are quoted if needed during marshalling, to conform with // Attributes and IDs are quoted if needed during marshalling.
// valid DOT syntax. Quoted IDs and attributes are unquoted during unmarshaling,
// so the data is kept in raw form.
func MarshalMulti(g graph.Multigraph, name, prefix, indent string) ([]byte, error) { func MarshalMulti(g graph.Multigraph, name, prefix, indent string) ([]byte, error) {
var p multiGraphPrinter var p multiGraphPrinter
p.indent = indent p.indent = indent