From 68088ceb3f9ddf6a5cfb03b7a2248c36edd8a9d0 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Tue, 19 Nov 2019 21:04:21 -0800 Subject: [PATCH] Move code to non _test.go file. --- src/vec3.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ src/vec3_test.go | 50 +-------------------------------------------- 2 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 src/vec3.go diff --git a/src/vec3.go b/src/vec3.go new file mode 100644 index 0000000..0c5168e --- /dev/null +++ b/src/vec3.go @@ -0,0 +1,53 @@ +package vec3 + +import ( + "strconv" + + "github.com/francoispqt/gojay" +) + +type Vec3 struct { + X float32 `json:"x"` + Y float32 `json:"y"` + Z float32 `json:"z"` +} + +func (v *Vec3) MarshalJSONObject(enc *gojay.Encoder) { + enc.FloatKey("x", float64(v.X)) + enc.FloatKey("y", float64(v.Y)) + enc.FloatKey("z", float64(v.Z)) +} + +func (v *Vec3) IsNil() bool { + return v == nil +} +func HandRolled(vs []Vec3) ([]byte, error) { + buf := []byte("[") + for i, v := range vs { + if i > 0 { + buf = append(buf, []byte(`,{"x":`)...) + } else { + buf = append(buf, []byte(`{"x":`)...) + } + buf = strconv.AppendFloat(buf, float64(v.X), 'f', -1, 32) + buf = append(buf, []byte(`,"y":`)...) + buf = strconv.AppendFloat(buf, float64(v.Y), 'f', -1, 32) + buf = append(buf, []byte(`,"z":`)...) + buf = strconv.AppendFloat(buf, float64(v.Z), 'f', -1, 32) + buf = append(buf, []byte("}")...) + } + buf = append(buf, ']') + return buf, nil +} + +type Vec3Slice []*Vec3 + +func (vs *Vec3Slice) MarshalJSONArray(enc *gojay.Encoder) { + for _, e := range *vs { + enc.AddObject(e) + } +} + +func (vs Vec3Slice) IsNil() bool { + return vs == nil +} diff --git a/src/vec3_test.go b/src/vec3_test.go index ab7a42e..4b1f584 100644 --- a/src/vec3_test.go +++ b/src/vec3_test.go @@ -1,9 +1,8 @@ -package main +package vec3 import ( "encoding/json" "reflect" - "strconv" "testing" "github.com/francoispqt/gojay" @@ -11,53 +10,6 @@ import ( "github.com/pquerna/ffjson/ffjson" ) -func HandRolled(vs []Vec3) ([]byte, error) { - buf := []byte("[") - for i, v := range vs { - if i > 0 { - buf = append(buf, []byte(`,{"x":`)...) - } else { - buf = append(buf, []byte(`{"x":`)...) - } - buf = strconv.AppendFloat(buf, float64(v.X), 'f', -1, 32) - buf = append(buf, []byte(`,"y":`)...) - buf = strconv.AppendFloat(buf, float64(v.Y), 'f', -1, 32) - buf = append(buf, []byte(`,"z":`)...) - buf = strconv.AppendFloat(buf, float64(v.Z), 'f', -1, 32) - buf = append(buf, []byte("}")...) - } - buf = append(buf, ']') - return buf, nil -} - -type Vec3 struct { - X float32 `json:"x"` - Y float32 `json:"y"` - Z float32 `json:"z"` -} - -func (v *Vec3) MarshalJSONObject(enc *gojay.Encoder) { - enc.FloatKey("x", float64(v.X)) - enc.FloatKey("y", float64(v.Y)) - enc.FloatKey("z", float64(v.Z)) -} - -func (v *Vec3) IsNil() bool { - return v == nil -} - -type Vec3Slice []*Vec3 - -func (vs *Vec3Slice) MarshalJSONArray(enc *gojay.Encoder) { - for _, e := range *vs { - enc.AddObject(e) - } -} - -func (vs Vec3Slice) IsNil() bool { - return vs == nil -} - type testFunc struct { name string f func([]Vec3) ([]byte, error)