From 1f755f90aa40cb6412cf78b03c52633e3bd7de62 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Sun, 24 May 2015 12:41:11 -0400 Subject: [PATCH] emit complex numbers --- emit.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/emit.go b/emit.go index 397d78d..3ee2cda 100644 --- a/emit.go +++ b/emit.go @@ -74,6 +74,8 @@ func typeEncoder(t reflect.Type) encodeFn { return encodeFloat32 case reflect.Float64: return encodeFloat64 + case reflect.Complex128: + return encodeComplex128 case reflect.String: return encodeString case reflect.Struct: @@ -222,3 +224,9 @@ func marshalerEncoder(e *encoder, v reflect.Value) { } e.Write(b) } + +func encodeComplex128(e *encoder, v reflect.Value) { + c := v.Complex() + r, i := real(c), imag(c) + fmt.Fprintf(e, "%v+%vi", r, i) +}