   5| package fmt
   7| import (
   8| 	"internal/fmtsort"
   9| 	"io"
  10| 	"os"
  11| 	"reflect"
  12| 	"strconv"
  13| 	"sync"
  14| 	"unicode/utf8"
  15| )
  19| const (
  20| 	commaSpaceString  = ", "
  21| 	nilAngleString    = "<nil>"
  22| 	nilParenString    = "(nil)"
  23| 	nilString         = "nil"
  24| 	mapString         = "map["
  25| 	percentBangString = "%!"
  26| 	missingString     = "(MISSING)"
  27| 	badIndexString    = "(BADINDEX)"
  28| 	panicString       = "(PANIC="
  29| 	extraString       = "%!(EXTRA "
  30| 	badWidthString    = "%!(BADWIDTH)"
  31| 	badPrecString     = "%!(BADPREC)"
  32| 	noVerbString      = "%!(NOVERB)"
  33| 	invReflectString  = "<invalid reflect.Value>"
  34| )
  39| type State interface {
  41| 	Write(b []byte) (n int, err error)
  43| 	Width() (wid int, ok bool)
  45| 	Precision() (prec int, ok bool)
  48| 	Flag(c int) bool
  49| }
  54| type Formatter interface {
  55| 	Format(f State, verb rune)
  56| }
  63| type Stringer interface {
  64| 	String() string
  65| }
  71| type GoStringer interface {
  72| 	GoString() string
  73| }
  81| func FormatString(state State, verb rune) string {
 101| type buffer []byte
 103| func (b *buffer) write(p []byte) {
 107| func (b *buffer) writeString(s string) {
 111| func (b *buffer) writeByte(c byte) {
 115| func (b *buffer) writeRune(r rune) {
 120| type pp struct {
 121| 	buf buffer
 124| 	fmt fmt
 127| 	reordered bool
 129| 	goodArgNum bool
 131| 	panicking bool
 133| 	erroring bool
 135| 	wrapErrs bool
 137| 	wrappedErrs []int
 138| }
 140| var ppFree = sync.Pool{
 141| 	New: func() any { return new(pp) },
 142| }
 145| func newPrinter() *pp {
 155| func (p *pp) free() {
 176| func (p *pp) Width() (wid int, ok bool) { return p.fmt.wid, p.fmt.widPres

... [truncated 1785 chars] ...

unc (p *pp) fmtPointer(arg any, value reflect.Value, verb rune) {
 580| func (p *pp) catchPanic(arg any, verb rune, method string) {
 614| func (p *pp) handleMethods(arg any, value reflect.Value, verb rune) (handled bool) {
 674| func (p *pp) printArg(arg any, verb rune) {
 756| func (p *pp) printValue(value reflect.Value, verb rune, depth int) {
 922| func intFromArg(a []any, argNum int) (num int, isInt bool, newArgNum int) {
 960| func parseArgNumber(format string) (index int, wid int, ok bool) {
 982| func (p *pp) argNumber(argNum int, format string, i int, numArgs int) (newArgNum, newi int, found bool) {
 995| func (p *pp) badArgNum(verb rune) {
1001| func (p *pp) missingArg(verb rune) {
1007| func (p *pp) doPrintf(format string, a []any) {
1185| func (p *pp) doPrint(a []any) {
1200| func (p *pp) doPrintln(a []any) {