Skip to content

Commit ee3bd71

Browse files
committed
fix: make msgpack work
1 parent d454568 commit ee3bd71

1 file changed

Lines changed: 21 additions & 18 deletions

File tree

encode.v

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,50 +28,50 @@ pub fn (e &Encoder) bytes() []u8 {
2828
}
2929

3030
pub fn (mut e Encoder) encode[T](data T) []u8 {
31-
$if T.typ is string {
31+
$if T is string {
3232
e.encode_string(data)
33-
} $else $if T.typ is bool {
33+
} $else $if T is bool {
3434
e.encode_bool(data)
3535
}
3636
// TODO: if int encode_int, if uint encode_uint
3737
// instead of needing to check each type, also
3838
// then we will be using the smallest storage
39-
$else $if T.typ is i8 {
39+
$else $if T is i8 {
4040
e.encode_i8(data)
41-
} $else $if T.typ is i16 {
41+
} $else $if T is i16 {
4242
e.encode_i16(data)
43-
} $else $if T.typ is int {
43+
} $else $if T is int {
4444
e.encode_i32(data)
45-
} $else $if T.typ is i64 {
45+
} $else $if T is i64 {
4646
e.encode_i64(data)
47-
} $else $if T.typ is u8 {
47+
} $else $if T is u8 {
4848
e.encode_u8(data)
49-
} $else $if T.typ is u16 {
49+
} $else $if T is u16 {
5050
e.encode_u16(data)
51-
} $else $if T.typ is u32 {
51+
} $else $if T is u32 {
5252
e.encode_u32(data)
53-
} $else $if T.typ is u64 {
53+
} $else $if T is u64 {
5454
e.encode_u64(data)
55-
} $else $if T.typ is f32 {
55+
} $else $if T is f32 {
5656
e.encode_f32(data)
57-
} $else $if T.typ is f64 {
57+
} $else $if T is f64 {
5858
e.encode_f64(data)
59-
} $else $if T.typ is time.Time {
59+
} $else $if T is time.Time {
6060
e.encode_time(data)
61-
} $else $if T.typ is []u8 {
61+
} $else $if T is []u8 {
6262
e.encode_string_bytes_raw(data)
63-
} $else $if T is $Array {
63+
} $else $if T is $array {
6464
e.write_array_start(data.len)
6565
for value in data {
6666
e.encode(value)
6767
}
68-
} $else $if T is $Map {
68+
} $else $if T is $map {
6969
e.write_map_start(data.len)
7070
for key, value in data {
7171
e.encode(key)
7272
e.encode(value)
7373
}
74-
} $else $if T is $Struct {
74+
} $else $if T is $struct {
7575
// TODO: is there currently a way to get T.fields.len? if not, add it.
7676
mut fields_len := 0
7777
$for _ in T.fields {
@@ -84,6 +84,7 @@ pub fn (mut e Encoder) encode[T](data T) []u8 {
8484
e.write_map_start(fields_len)
8585
}
8686
$for field in T.fields {
87+
value := data.$(field.name)
8788
mut codec_attr := ''
8889
for attr in field.attrs {
8990
if attr.starts_with('codec:') {
@@ -97,7 +98,9 @@ pub fn (mut e Encoder) encode[T](data T) []u8 {
9798
} else {
9899
e.encode_string(field.name)
99100
}
100-
e.encode(data.$(field.name))
101+
102+
// e.encode(data.$(field.name)) // FIXME - not work - bug
103+
e.encode(value)
101104
}
102105
}
103106
return e.buffer

0 commit comments

Comments
 (0)