2222 output []u8 = []u8 {cap: 2048 }
2323}
2424
25- @[inline]
26- fn workaround_cast [T](val voidptr ) T {
27- return * (& T (val))
28- }
29-
3025// encode is a generic function that encodes a type into a JSON string.
3126pub fn encode [T](val T, config EncoderOptions) string {
3227 mut encoder := Encoder{
@@ -40,33 +35,33 @@ pub fn encode[T](val T, config EncoderOptions) string {
4035
4136fn (mut encoder Encoder) encode_value [T](val T) {
4237 $if T.unaliased_typ is string {
43- encoder.encode_string (workaround_cast[ string ]( & val))
38+ encoder.encode_string (string ( val))
4439 } $else $if T.unaliased_typ is bool {
45- encoder.encode_boolean (workaround_cast[ bool ]( & val))
40+ encoder.encode_boolean (bool ( val))
4641 } $else $if T.unaliased_typ is u8 {
47- encoder.encode_number (workaround_cast[ u8 ]( & val))
42+ encoder.encode_number (u8 ( val))
4843 } $else $if T.unaliased_typ is u16 {
49- encoder.encode_number (workaround_cast[ u16 ]( & val))
44+ encoder.encode_number (u16 ( val))
5045 } $else $if T.unaliased_typ is u32 {
51- encoder.encode_number (workaround_cast[ u32 ]( & val))
46+ encoder.encode_number (u32 ( val))
5247 } $else $if T.unaliased_typ is u64 {
53- encoder.encode_number (workaround_cast[ u64 ]( & val))
48+ encoder.encode_number (u64 ( val))
5449 } $else $if T.unaliased_typ is i8 {
55- encoder.encode_number (workaround_cast[ i8 ]( & val))
50+ encoder.encode_number (i8 ( val))
5651 } $else $if T.unaliased_typ is i16 {
57- encoder.encode_number (workaround_cast[ i16 ]( & val))
52+ encoder.encode_number (i16 ( val))
5853 } $else $if T.unaliased_typ is int || T.unaliased_typ is i32 {
59- encoder.encode_number (workaround_cast[ int ]( & val))
54+ encoder.encode_number (i32 ( val))
6055 } $else $if T.unaliased_typ is i64 {
61- encoder.encode_number (workaround_cast[ i64 ]( & val))
56+ encoder.encode_number (i64 ( val))
6257 } $else $if T.unaliased_typ is usize {
63- encoder.encode_number (workaround_cast[ usize]( & val))
58+ encoder.encode_number (usize ( val))
6459 } $else $if T.unaliased_typ is isize {
65- encoder.encode_number (workaround_cast[ isize]( & val))
60+ encoder.encode_number (isize ( val))
6661 } $else $if T.unaliased_typ is f32 {
67- encoder.encode_number (workaround_cast[ f32 ]( & val))
62+ encoder.encode_number (f32 ( val))
6863 } $else $if T.unaliased_typ is f64 {
69- encoder.encode_number (workaround_cast[ f64 ]( & val))
64+ encoder.encode_number (f64 ( val))
7065 } $else $if T.unaliased_typ is $array {
7166 encoder.encode_array (val)
7267 } $else $if T.unaliased_typ is $map {
@@ -293,7 +288,7 @@ fn (mut encoder Encoder) encode_map[T](val map[string]T) {
293288
294289fn (mut encoder Encoder) encode_enum [T](val T) {
295290 if encoder.enum_as_int {
296- encoder.encode_number (workaround_cast[ int ]( & val))
291+ encoder.encode_number (int ( val))
297292 } else {
298293 mut enum_val := val.str ()
299294 $if val is $alias {
0 commit comments