pretty

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

README

pretty

A Pretty-printer for Go data structures

Installation

$ go get github.com/gobs/pretty

Documentation

http://godoc.org/github.com/gobs/pretty

Example

package main

import "github.com/gobs/pretty"

func main() {
    stuff := map[string]interface{} {
      "a": 1,
      "b": "due",
      "c": []int { 1, 2, 3 },
      "d": false,
    }

    pretty.PrettyPrint(stuff)
}

Documentation

Overview

Example (TabPrint)
tp := NewTabPrinter(8)

for i := range 33 {
	tp.Print(i)
}

tp.Println()

for _, v := range []string{"one", "two", "three", "four", "five", "six"} {
	tp.Print(v)
}

tp.Println()
Output:
0	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
one	two	three	four	five	six
Example (TabPrintTwoFullLines)
tp := NewTabPrinter(4)

for _, v := range []string{"one", "two", "three", "four", "five", "six", "seven", "eight"} {
	tp.Print(v)
}

tp.Println()
Output:
one	two	three	four
five	six	seven	eight
Example (TabPrintWider)
tp := NewTabPrinter(2)
tp.TabWidth(10)

for _, v := range []string{"one", "two", "three", "four", "five", "six", "seven", "eight", "larger", "largest", "even more", "enough"} {
	tp.Print(v)
}

tp.Println()
Output:
one       two
three     four
five      six
seven     eight
larger    largest
even more enough

Index

Examples

Constants

View Source
const (
	DEFAULT_INDENT = "  "
	DEFAULT_NIL    = "nil"
)

Variables

This section is empty.

Functions

func Bool2Integer added in v0.1.2

func Bool2Integer[T Integer](b bool) T

func DumpHex added in v0.1.2

func DumpHex[T []byte | *bytes.Buffer](buf T) (dump string)

func Format

func Format(i any) string

func FormatInteger added in v0.1.2

func FormatInteger[T Integer](data T) string

func FormatIntegerHex added in v0.1.2

func FormatIntegerHex[T Integer](data T) string

func FormatIntegerHex0x added in v0.1.2

func FormatIntegerHex0x[T Integer](data T) string

func Integer2Bool added in v0.1.2

func Integer2Bool[T Integer](value T) bool

func IsASCIIDigit added in v0.1.2

func IsASCIIDigit(s string) bool

func IsIncludeLine added in v0.1.2

func IsIncludeLine(s string) bool

func Print

func Print(i any)

func PrintTo

func PrintTo(out io.Writer, i any, nl bool)

func ValueIsBytesType added in v0.1.2

func ValueIsBytesType(v reflect.Value) bool

Types

type Complex added in v0.1.2

type Complex interface {
	~complex64 | ~complex128
}

type Float added in v0.1.2

type Float interface {
	~float32 | ~float64
}

type Integer added in v0.1.2

type Integer interface {
	Signed | Unsigned
}

type Ordered added in v0.1.2

type Ordered interface {
	Integer | Float | ~string
}

type Pretty

type Pretty struct {
	// indent string
	Indent string
	// output recipient
	Out io.Writer
	// string for nil
	NilString string
	// compact empty array and struct
	Compact bool
	// Maximum nesting level
	MaxLevel int
}

func (*Pretty) Print

func (p *Pretty) Print(i any)

func (*Pretty) PrintValue

func (p *Pretty) PrintValue(val r.Value, level int)

func (*Pretty) Println

func (p *Pretty) Println(i any)

type Signed added in v0.1.2

type Signed interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64
}

type TabPrinter

type TabPrinter struct {
	// contains filtered or unexported fields
}

A TabPrinter is an object that allows printing tab-aligned words on multiple lines, up to a maximum number per line

func NewTabPrinter

func NewTabPrinter(max int) *TabPrinter

create a TabPrinter max specifies the maximum number of 'words' per line

func (*TabPrinter) Print

func (tp *TabPrinter) Print(arg any)

print a 'word' when the maximum number of words per lines is reached, this will print the formatted line

func (*TabPrinter) Println

func (tp *TabPrinter) Println()

print current line terminate current line and print - call this after all words have been printed

func (*TabPrinter) TabWidth

func (tp *TabPrinter) TabWidth(n int)

update tab width (minimal space between words)

type Unsigned added in v0.1.2

type Unsigned interface {
	~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL