Unverified Commit 6a3894a6 authored by Jakub Sztandera's avatar Jakub Sztandera Committed by GitHub

Merge pull request #30 from whyrusleeping/fix/named-string

Fix named string issue
parents 13e2891f ad13f0f2
......@@ -202,7 +202,7 @@ func emitCborMarshalStringField(w io.Writer, f Field) error {
}
{{ MajorType "w" "cbg.MajTextString" (print "len(" .Name ")") }}
if _, err := io.WriteString(w, {{ .Name }}); err != nil {
if _, err := io.WriteString(w, string({{ .Name }})); err != nil {
return err
}
`)
......
......@@ -95,7 +95,7 @@ func (t *SignedArray) UnmarshalCBOR(r io.Reader) error {
return nil
}
var lengthBufSimpleTypeOne = []byte{132}
var lengthBufSimpleTypeOne = []byte{133}
func (t *SimpleTypeOne) MarshalCBOR(w io.Writer) error {
if t == nil {
......@@ -116,7 +116,7 @@ func (t *SimpleTypeOne) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len(t.Foo))); err != nil {
return err
}
if _, err := io.WriteString(w, t.Foo); err != nil {
if _, err := io.WriteString(w, string(t.Foo)); err != nil {
return err
}
......@@ -149,6 +149,18 @@ func (t *SimpleTypeOne) MarshalCBOR(w io.Writer) error {
return err
}
}
// t.NString (testing.NamedString) (string)
if len(t.NString) > cbg.MaxLength {
return xerrors.Errorf("Value in field t.NString was too long")
}
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len(t.NString))); err != nil {
return err
}
if _, err := io.WriteString(w, string(t.NString)); err != nil {
return err
}
return nil
}
......@@ -166,7 +178,7 @@ func (t *SimpleTypeOne) UnmarshalCBOR(r io.Reader) error {
return fmt.Errorf("cbor input should be of type array")
}
if extra != 4 {
if extra != 5 {
return fmt.Errorf("cbor input had wrong number of fields")
}
......@@ -240,6 +252,16 @@ func (t *SimpleTypeOne) UnmarshalCBOR(r io.Reader) error {
t.Signed = int64(extraI)
}
// t.NString (testing.NamedString) (string)
{
sval, err := cbg.ReadStringBuf(br, scratch)
if err != nil {
return err
}
t.NString = NamedString(sval)
}
return nil
}
......@@ -325,11 +347,11 @@ func (t *SimpleTypeTwo) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len(t.Dog))); err != nil {
return err
}
if _, err := io.WriteString(w, t.Dog); err != nil {
if _, err := io.WriteString(w, string(t.Dog)); err != nil {
return err
}
// t.Numbers ([]testing.NaturalNumber) (slice)
// t.Numbers ([]testing.NamedNumber) (slice)
if len(t.Numbers) > cbg.MaxLength {
return xerrors.Errorf("Slice value in field t.Numbers was too long")
}
......@@ -355,7 +377,7 @@ func (t *SimpleTypeTwo) MarshalCBOR(w io.Writer) error {
}
}
// t.PointyPizza (testing.NaturalNumber) (uint64)
// t.PointyPizza (testing.NamedNumber) (uint64)
if t.PointyPizza == nil {
if _, err := w.Write(cbg.CborNull); err != nil {
......@@ -558,7 +580,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
t.Dog = string(sval)
}
// t.Numbers ([]testing.NaturalNumber) (slice)
// t.Numbers ([]testing.NamedNumber) (slice)
maj, extra, err = cbg.CborReadHeaderBuf(br, scratch)
if err != nil {
......@@ -574,7 +596,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
}
if extra > 0 {
t.Numbers = make([]NaturalNumber, extra)
t.Numbers = make([]NamedNumber, extra)
}
for i := 0; i < int(extra); i++ {
......@@ -588,7 +610,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
return xerrors.Errorf("value read for array t.Numbers was not a uint, instead got %d", maj)
}
t.Numbers[i] = NaturalNumber(val)
t.Numbers[i] = NamedNumber(val)
}
// t.Pizza (uint64) (uint64)
......@@ -617,7 +639,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
}
}
// t.PointyPizza (testing.NaturalNumber) (uint64)
// t.PointyPizza (testing.NamedNumber) (uint64)
{
......@@ -638,7 +660,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
if maj != cbg.MajUnsignedInt {
return fmt.Errorf("wrong type for uint64 field")
}
typed := NaturalNumber(extra)
typed := NamedNumber(extra)
t.PointyPizza = &typed
}
......
......@@ -31,7 +31,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("Stuff"))); err != nil {
return err
}
if _, err := io.WriteString(w, "Stuff"); err != nil {
if _, err := io.WriteString(w, string("Stuff")); err != nil {
return err
}
......@@ -47,7 +47,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("Stufff"))); err != nil {
return err
}
if _, err := io.WriteString(w, "Stufff"); err != nil {
if _, err := io.WriteString(w, string("Stufff")); err != nil {
return err
}
......@@ -63,7 +63,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("Others"))); err != nil {
return err
}
if _, err := io.WriteString(w, "Others"); err != nil {
if _, err := io.WriteString(w, string("Others")); err != nil {
return err
}
......@@ -88,7 +88,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("Test"))); err != nil {
return err
}
if _, err := io.WriteString(w, "Test"); err != nil {
if _, err := io.WriteString(w, string("Test")); err != nil {
return err
}
......@@ -121,7 +121,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("Dog"))); err != nil {
return err
}
if _, err := io.WriteString(w, "Dog"); err != nil {
if _, err := io.WriteString(w, string("Dog")); err != nil {
return err
}
......@@ -132,7 +132,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len(t.Dog))); err != nil {
return err
}
if _, err := io.WriteString(w, t.Dog); err != nil {
if _, err := io.WriteString(w, string(t.Dog)); err != nil {
return err
}
......@@ -144,7 +144,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("SixtyThreeBitIntegerWithASignBit"))); err != nil {
return err
}
if _, err := io.WriteString(w, "SixtyThreeBitIntegerWithASignBit"); err != nil {
if _, err := io.WriteString(w, string("SixtyThreeBitIntegerWithASignBit")); err != nil {
return err
}
......@@ -166,7 +166,7 @@ func (t *SimpleTypeTree) MarshalCBOR(w io.Writer) error {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajTextString, uint64(len("NotPizza"))); err != nil {
return err
}
if _, err := io.WriteString(w, "NotPizza"); err != nil {
if _, err := io.WriteString(w, string("NotPizza")); err != nil {
return err
}
......
......@@ -6,17 +6,19 @@ import (
const Thingc = 3
type NaturalNumber uint64
type NamedNumber uint64
type NamedString string
type SignedArray struct {
Signed []uint64
}
type SimpleTypeOne struct {
Foo string
Value uint64
Binary []byte
Signed int64
Foo string
Value uint64
Binary []byte
Signed int64
NString NamedString
}
type SimpleTypeTwo struct {
......@@ -25,9 +27,9 @@ type SimpleTypeTwo struct {
SignedOthers []int64
Test [][]byte
Dog string
Numbers []NaturalNumber
Numbers []NamedNumber
Pizza *uint64
PointyPizza *NaturalNumber
PointyPizza *NamedNumber
Arrrrrghay [Thingc]SimpleTypeOne
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment