1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package litter
- import (
- "io"
- "math"
- "strconv"
- )
- func printBool(w io.Writer, value bool) {
- if value {
- w.Write([]byte("true"))
- return
- }
- w.Write([]byte("false"))
- }
- func printInt(w io.Writer, val int64, base int) {
- w.Write([]byte(strconv.FormatInt(val, base)))
- }
- func printUint(w io.Writer, val uint64, base int) {
- w.Write([]byte(strconv.FormatUint(val, base)))
- }
- func printFloat(w io.Writer, val float64, precision int) {
- if math.Trunc(val) == val {
- // Ensure that floats like 1.0 are always printed with a decimal point
- w.Write([]byte(strconv.FormatFloat(val, 'f', 1, precision)))
- } else {
- w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))
- }
- }
- func printComplex(w io.Writer, c complex128, floatPrecision int) {
- w.Write([]byte("complex"))
- printInt(w, int64(floatPrecision*2), 10)
- r := real(c)
- w.Write([]byte("("))
- w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))
- i := imag(c)
- if i >= 0 {
- w.Write([]byte("+"))
- }
- w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))
- w.Write([]byte("i)"))
- }
- func printNil(w io.Writer) {
- w.Write([]byte("nil"))
- }
|