From 1f40ff9c552f87598377bedc4b094389ab64f6a4 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Tue, 17 Sep 2024 12:23:05 +0300 Subject: [PATCH] update to latest micro, optimize flatten Signed-off-by: Vasiliy Tolstov --- codec_test.go | 14 +------------- go.mod | 8 ++++---- go.sum | 8 ++++++++ toml.go | 50 ++++++++------------------------------------------ 4 files changed, 21 insertions(+), 59 deletions(-) diff --git a/codec_test.go b/codec_test.go index b621df0..d0ee6e1 100644 --- a/codec_test.go +++ b/codec_test.go @@ -28,7 +28,7 @@ func TestFrameFlatten(t *testing.T) { Name: &codec.Frame{Data: []byte("test")}, } - buf, err := NewCodec().Marshal(s) + buf, err := NewCodec(codec.Flatten(true)).Marshal(s) if err != nil { t.Fatal(err) } @@ -36,15 +36,3 @@ func TestFrameFlatten(t *testing.T) { t.Fatalf("bytes not equal %s != %s", buf, `test`) } } - -func TestReadBody(t *testing.T) { - s := &struct { - Name string - }{} - c := NewCodec() - b := bytes.NewReader(nil) - err := c.ReadBody(b, s) - if err != nil { - t.Fatal(err) - } -} diff --git a/go.mod b/go.mod index f0f0b3d..97dbb74 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module go.unistack.org/micro-codec-toml/v3 go 1.19 require ( - github.com/BurntSushi/toml v1.2.1 - go.unistack.org/micro-proto/v3 v3.3.1 - go.unistack.org/micro/v3 v3.10.14 + github.com/BurntSushi/toml v1.4.0 + go.unistack.org/micro-proto/v3 v3.4.1 + go.unistack.org/micro/v3 v3.10.88 ) -require google.golang.org/protobuf v1.28.1 // indirect +require google.golang.org/protobuf v1.34.2 // indirect diff --git a/go.sum b/go.sum index 0e47009..6bdbf90 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= @@ -68,8 +70,12 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.unistack.org/micro-proto/v3 v3.3.1 h1:nQ0MtWvP2G3QrpOgawVOPhpZZYkq6umTGDqs8FxJYIo= go.unistack.org/micro-proto/v3 v3.3.1/go.mod h1:cwRyv8uInM2I7EbU7O8Fx2Ls3N90Uw9UCCcq4olOdfE= +go.unistack.org/micro-proto/v3 v3.4.1 h1:UTjLSRz2YZuaHk9iSlVqqsA50JQNAEK2ZFboGqtEa9Q= +go.unistack.org/micro-proto/v3 v3.4.1/go.mod h1:okx/cnOhzuCX0ggl/vToatbCupi0O44diiiLLsZ93Zo= go.unistack.org/micro/v3 v3.10.14 h1:7fgLpwGlCN67twhwtngJDEQvrMkUBDSA5vzZqxIDqNE= go.unistack.org/micro/v3 v3.10.14/go.mod h1:uMAc0U/x7dmtICCrblGf0ZLgYegu3VwQAquu+OFCw1Q= +go.unistack.org/micro/v3 v3.10.88 h1:MxlzP+77Y6Kphb3lzHxROL4XfE/WdCQMQpnPv4D9Z8U= +go.unistack.org/micro/v3 v3.10.88/go.mod h1:erMgt3Bl7vQQ0e9UpQyR5NlLiZ9pKeEJ9+1tfYFaqUg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -140,6 +146,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/toml.go b/toml.go index a8707c9..08ef36a 100644 --- a/toml.go +++ b/toml.go @@ -3,7 +3,6 @@ package toml // import "go.unistack.org/micro-codec-toml/v3" import ( "bytes" - "io" "github.com/BurntSushi/toml" pb "go.unistack.org/micro-proto/v3/codec" @@ -17,10 +16,6 @@ type tomlCodec struct { var _ codec.Codec = &tomlCodec{} -const ( - flattenTag = "flatten" -) - func (c *tomlCodec) Marshal(v interface{}, opts ...codec.Option) ([]byte, error) { if v == nil { return nil, nil @@ -31,8 +26,10 @@ func (c *tomlCodec) Marshal(v interface{}, opts ...codec.Option) ([]byte, error) o(&options) } - if nv, nerr := rutil.StructFieldByTag(v, options.TagName, flattenTag); nerr == nil { - v = nv + if options.Flatten { + if nv, nerr := rutil.StructFieldByTag(v, options.TagName, "flatten"); nerr == nil { + v = nv + } } switch m := v.(type) { @@ -61,8 +58,10 @@ func (c *tomlCodec) Unmarshal(d []byte, v interface{}, opts ...codec.Option) err o(&options) } - if nv, nerr := rutil.StructFieldByTag(v, options.TagName, flattenTag); nerr == nil { - v = nv + if options.Flatten { + if nv, nerr := rutil.StructFieldByTag(v, options.TagName, "flatten"); nerr == nil { + v = nv + } } switch m := v.(type) { @@ -77,39 +76,6 @@ func (c *tomlCodec) Unmarshal(d []byte, v interface{}, opts ...codec.Option) err return toml.Unmarshal(d, v) } -func (c *tomlCodec) ReadHeader(conn io.Reader, m *codec.Message, t codec.MessageType) error { - return nil -} - -func (c *tomlCodec) ReadBody(conn io.Reader, v interface{}) error { - if v == nil { - return nil - } - - buf, err := io.ReadAll(conn) - if err != nil { - return err - } else if len(buf) == 0 { - return nil - } - return c.Unmarshal(buf, v) -} - -func (c *tomlCodec) Write(conn io.Writer, m *codec.Message, v interface{}) error { - if v == nil { - return nil - } - buf, err := c.Marshal(v) - if err != nil { - return err - } else if len(buf) == 0 { - return codec.ErrInvalidMessage - } - - _, err = conn.Write(buf) - return err -} - func (c *tomlCodec) String() string { return "toml" }