Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
cbor-gen
Commits
6a3894a6
Unverified
Commit
6a3894a6
authored
Jul 23, 2020
by
Jakub Sztandera
Committed by
GitHub
Jul 23, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #30 from whyrusleeping/fix/named-string
Fix named string issue
parents
13e2891f
ad13f0f2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
27 deletions
+51
-27
gen.go
gen.go
+1
-1
testing/cbor_gen.go
testing/cbor_gen.go
+33
-11
testing/cbor_map_gen.go
testing/cbor_map_gen.go
+8
-8
testing/types.go
testing/types.go
+9
-7
No files found.
gen.go
View file @
6a3894a6
...
...
@@ -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
}
`
)
...
...
testing/cbor_gen.go
View file @
6a3894a6
...
...
@@ -95,7 +95,7 @@ func (t *SignedArray) UnmarshalCBOR(r io.Reader) error {
return
nil
}
var
lengthBufSimpleTypeOne
=
[]
byte
{
13
2
}
var
lengthBufSimpleTypeOne
=
[]
byte
{
13
3
}
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.Na
tural
Number) (slice)
// t.Numbers ([]testing.Na
med
Number) (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.Na
tural
Number) (uint64)
// t.PointyPizza (testing.Na
med
Number) (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.Na
tural
Number) (slice)
// t.Numbers ([]testing.Na
med
Number) (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
([]
Na
tural
Number
,
extra
)
t
.
Numbers
=
make
([]
Na
med
Number
,
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
]
=
Na
tural
Number
(
val
)
t
.
Numbers
[
i
]
=
Na
med
Number
(
val
)
}
// t.Pizza (uint64) (uint64)
...
...
@@ -617,7 +639,7 @@ func (t *SimpleTypeTwo) UnmarshalCBOR(r io.Reader) error {
}
}
// t.PointyPizza (testing.Na
tural
Number) (uint64)
// t.PointyPizza (testing.Na
med
Number) (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
:=
Na
tural
Number
(
extra
)
typed
:=
Na
med
Number
(
extra
)
t
.
PointyPizza
=
&
typed
}
...
...
testing/cbor_map_gen.go
View file @
6a3894a6
...
...
@@ -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
}
...
...
testing/types.go
View file @
6a3894a6
...
...
@@ -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
[]
Na
tural
Number
Numbers
[]
Na
med
Number
Pizza
*
uint64
PointyPizza
*
Na
tural
Number
PointyPizza
*
Na
med
Number
Arrrrrghay
[
Thingc
]
SimpleTypeOne
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment