1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
// Copyright ©2020 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.
//go:build debug
// +build debug
package rdf
import (
"fmt"
"os"
"slices"
"strings"
"text/tabwriter"
)
type debugger bool
const debug debugger = true
func (d debugger) log(depth int, args ...interface{}) {
if !d {
return
}
fmt.Fprint(os.Stderr, strings.Repeat("\t", depth))
fmt.Fprintln(os.Stderr, args...)
}
func (d debugger) logf(depth int, format string, args ...interface{}) {
if !d {
return
}
fmt.Fprint(os.Stderr, strings.Repeat("\t", depth))
fmt.Fprintf(os.Stderr, format, args...)
}
func (d debugger) logHashes(depth int, hashes map[string][]byte, size int) {
if !d {
return
}
prefix := strings.Repeat("\t", depth)
if len(hashes) != 0 {
keys := make([]string, len(hashes))
i := 0
for k := range hashes {
keys[i] = k
i++
}
slices.Sort(keys)
w := tabwriter.NewWriter(os.Stderr, 0, 4, 8, ' ', 0)
for _, k := range keys {
fmt.Fprintf(w, prefix+"%s\t%0*x\n", k, 2*size, hashes[k])
}
w.Flush()
} else {
fmt.Fprintln(os.Stderr, prefix+"none")
}
fmt.Fprintln(os.Stderr)
}
func (d debugger) logParts(depth int, parts byLengthHash) {
if !d {
return
}
prefix := strings.Repeat("\t", depth)
if parts.Len() != 0 {
w := tabwriter.NewWriter(os.Stderr, 0, 4, 8, ' ', 0)
for i, p := range parts.nodes {
fmt.Fprintf(w, prefix+"%v\t%x\n", p, parts.hashes[i])
}
w.Flush()
} else {
fmt.Fprintln(os.Stderr, prefix+"none")
}
fmt.Fprintln(os.Stderr)
}
|