func (c *codec) Encoder(w io.Writer) mc.Encoder { return &encoder{ w: w, mc: c.mc, enc: cbor.NewEncoder(w), } }
func RoundTripTest(t *testing.T, o1, o2 interface{}) bool { var buf1 bytes.Buffer var buf2 bytes.Buffer var buf3 bytes.Buffer enc1 := cbor.NewEncoder(&buf1) enc2 := cbor.NewEncoder(&buf2) dec := cbor.NewDecoder(&buf3) if err := enc1.Encode(o1); err != nil { t.Error(err) return false } m1 := buf1.Bytes() if _, err := buf3.Write(m1); err != nil { t.Error(err) return false } if err := dec.Decode(o2); err != nil { t.Error(err) return false } if err := enc2.Encode(o2); err != nil { t.Error(err) return false } m2 := buf2.Bytes() if !bytes.Equal(m1, m2) { t.Error("marshalled values not equal") t.Log(m1) t.Log(m2) t.Log(string(m1)) t.Log(string(m2)) return false } return true }
func main() { in := flag.String("i", "-", "JSON file") out := flag.String("o", "-", "CBOR file") flag.Parse() var i io.ReadCloser var o io.WriteCloser var err error var object interface{} if *in == "-" { i = os.Stdin } else { i, err = os.Open(*in) if err != nil { log.Fatal(err) } defer i.Close() } if *out == "-" { o = os.Stdout } else { o, err = os.Open(*out) if err != nil { log.Fatal(err) } defer o.Close() } err = json.NewDecoder(i).Decode(&object) if err != nil { log.Fatal(err) } err = cbor.NewEncoder(o).Encode(object) if err != nil { log.Fatal(err) } }