forked from alecthomas/go_serialization_benchmarks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
structdefxdr_generated.go
94 lines (81 loc) · 3.02 KB
/
structdefxdr_generated.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// ************************************************************
// This file is automatically generated by genxdr. Do not edit.
// ************************************************************
package goserbench
import (
"github.com/calmh/xdr"
)
/*
XDRA Structure:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ Name (length + padded data) \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Birth Day (64 bits) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ Phone (length + padded data) \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ int Structure \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Spouse (V=0 or 1) |V|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Money (64 bits) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
struct XDRA {
string Name<>;
hyper BirthDay;
string Phone<>;
int Siblings;
bool Spouse;
unsigned hyper Money;
}
*/
func (o XDRA) XDRSize() int {
return 4 + len(o.Name) + xdr.Padding(len(o.Name)) + 8 +
4 + len(o.Phone) + xdr.Padding(len(o.Phone)) + 8 + 4 + 8
}
func (o XDRA) MarshalXDR() ([]byte, error) {
buf := make([]byte, o.XDRSize())
m := &xdr.Marshaller{Data: buf}
return buf, o.MarshalXDRInto(m)
}
func (o XDRA) MustMarshalXDR() []byte {
bs, err := o.MarshalXDR()
if err != nil {
panic(err)
}
return bs
}
func (o XDRA) MarshalXDRInto(m *xdr.Marshaller) error {
m.MarshalString(o.Name)
m.MarshalUint64(uint64(o.BirthDay))
m.MarshalString(o.Phone)
m.MarshalUint64(uint64(o.Siblings))
m.MarshalBool(o.Spouse)
m.MarshalUint64(o.Money)
return m.Error
}
func (o *XDRA) UnmarshalXDR(bs []byte) error {
u := &xdr.Unmarshaller{Data: bs}
return o.UnmarshalXDRFrom(u)
}
func (o *XDRA) UnmarshalXDRFrom(u *xdr.Unmarshaller) error {
o.Name = u.UnmarshalString()
o.BirthDay = int64(u.UnmarshalUint64())
o.Phone = u.UnmarshalString()
o.Siblings = int(u.UnmarshalUint64())
o.Spouse = u.UnmarshalBool()
o.Money = u.UnmarshalUint64()
return u.Error
}