Source File
repr_helpers.go
Belonging Package
src.elv.sh/pkg/eval/vals
package valsimport ()// ListReprBuilder helps to build Repr of list-like Values.type ListReprBuilder struct {indent intbuf bytes.Buffer}// NewListReprBuilder makes a new ListReprBuilder.func ( int) *ListReprBuilder {return &ListReprBuilder{indent: }}// WriteElem writes a new element.func ( *ListReprBuilder) ( string) {if .buf.Len() == 0 {.buf.WriteByte('[')}if .indent >= 0 {// Pretty-printing: Add a newline and indent+1 spaces..buf.WriteString("\n" + strings.Repeat(" ", .indent+1))} else if .buf.Len() > 1 {.buf.WriteByte(' ')}.buf.WriteString()}// String returns the representation that has been built. After it is called,// the ListReprBuilder may no longer be used.func ( *ListReprBuilder) () string {if .buf.Len() == 0 {return "[]"}if .indent >= 0 {.buf.WriteString("\n" + strings.Repeat(" ", .indent))}.buf.WriteByte(']')return .buf.String()}// MapReprBuilder helps building the Repr of a Map. It is also useful for// implementing other Map-like values. The zero value of a MapReprBuilder is// ready to use.type MapReprBuilder struct {inner ListReprBuilder}// NewMapReprBuilder makes a new MapReprBuilder.func ( int) *MapReprBuilder {return &MapReprBuilder{ListReprBuilder{indent: }}}// WritePair writes a new pair.func ( *MapReprBuilder) ( string, int, string) {if > 0 {.inner.WriteElem("&" + + "=\t" + )} else {.inner.WriteElem("&" + + "=" + )}}// String returns the representation that has been built. After it is called,// the MapReprBuilder should no longer be used.func ( *MapReprBuilder) () string {:= .inner.String()if == "[]" {return "[&]"}return}
The pages are generated with Golds v0.2.8-preview. (GOOS=darwin GOARCH=arm64)