Skip to content

Commit 765f7ea

Browse files
committed
Serialize u128 and i128 as numbers
1 parent be32160 commit 765f7ea

File tree

1 file changed

+29
-40
lines changed

1 file changed

+29
-40
lines changed

src/ser/mod.rs

Lines changed: 29 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,7 @@ impl<'a> ser::Serializer for &'a mut Serializer {
194194

195195
fn serialize_i128(self, v: i128) -> Result<Self::Ok> {
196196
// -170141183460469231731687303715884105728
197-
self.buf.push(b'"');
198-
let res: Result<Self::Ok> = serialize_signed!(self, 40, v, i128, u128);
199-
res?;
200-
self.buf.push(b'"');
201-
Ok(())
197+
serialize_signed!(self, 40, v, i128, u128)
202198
}
203199

204200
fn serialize_u8(self, v: u8) -> Result<Self::Ok> {
@@ -223,11 +219,7 @@ impl<'a> ser::Serializer for &'a mut Serializer {
223219

224220
fn serialize_u128(self, v: u128) -> Result<Self::Ok> {
225221
// 340282366920938463463374607431768211455
226-
self.buf.push(b'"');
227-
let res: Result<Self::Ok> = serialize_unsigned!(self, 39, v);
228-
res?;
229-
self.buf.push(b'"');
230-
Ok(())
222+
serialize_unsigned!(self, 39, v)
231223
}
232224

233225
fn serialize_f32(self, _v: f32) -> Result<Self::Ok> {
@@ -632,66 +624,64 @@ mod tests {
632624
"-9223372036854775808"
633625
);
634626

635-
assert_eq!(to_string::<u128>(&0).unwrap(), r#""0""#);
636-
assert_eq!(to_string::<u128>(&1).unwrap(), r#""1""#);
637-
assert_eq!(to_string::<u128>(&456789).unwrap(), r#""456789""#);
638-
assert_eq!(to_string::<u128>(&4294967295).unwrap(), r#""4294967295""#);
639-
assert_eq!(to_string::<u128>(&4294967296).unwrap(), r#""4294967296""#);
627+
assert_eq!(to_string::<u128>(&0).unwrap(), r#"0"#);
628+
assert_eq!(to_string::<u128>(&1).unwrap(), r#"1"#);
629+
assert_eq!(to_string::<u128>(&456789).unwrap(), r#"456789"#);
630+
assert_eq!(to_string::<u128>(&4294967295).unwrap(), r#"4294967295"#);
631+
assert_eq!(to_string::<u128>(&4294967296).unwrap(), r#"4294967296"#);
640632
assert_eq!(
641633
to_string::<u128>(&9007199254740991).unwrap(),
642-
r#""9007199254740991""#
634+
r#"9007199254740991"#
643635
); // Number.MAX_SAFE_INTEGER
644636
assert_eq!(
645637
to_string::<u128>(&9007199254740992).unwrap(),
646-
r#""9007199254740992""#
638+
r#"9007199254740992"#
647639
); // Number.MAX_SAFE_INTEGER+1
648640
assert_eq!(
649641
to_string::<u128>(&9223372036854775807).unwrap(),
650-
r#""9223372036854775807""#
642+
r#"9223372036854775807"#
651643
);
652644
assert_eq!(
653645
to_string::<u128>(&9223372036854775808).unwrap(),
654-
r#""9223372036854775808""#
646+
r#"9223372036854775808"#
655647
);
656648
assert_eq!(
657649
to_string::<u128>(&u128::MAX).unwrap(),
658-
r#""340282366920938463463374607431768211455""#
650+
r#"340282366920938463463374607431768211455"#
659651
);
660-
// Currently failing, see https://github.com/CosmWasm/serde-json-wasm/issues/54
661-
// assert_serde_json_serialize_eq!(&u128::MAX);
662-
663-
assert_eq!(to_string::<i128>(&0).unwrap(), r#""0""#);
664-
assert_eq!(to_string::<i128>(&1).unwrap(), r#""1""#);
665-
assert_eq!(to_string::<i128>(&456789).unwrap(), r#""456789""#);
666-
assert_eq!(to_string::<i128>(&4294967295).unwrap(), r#""4294967295""#);
667-
assert_eq!(to_string::<i128>(&4294967296).unwrap(), r#""4294967296""#);
652+
assert_serde_json_serialize_eq!(&u128::MAX);
653+
654+
assert_eq!(to_string::<i128>(&0).unwrap(), r#"0"#);
655+
assert_eq!(to_string::<i128>(&1).unwrap(), r#"1"#);
656+
assert_eq!(to_string::<i128>(&456789).unwrap(), r#"456789"#);
657+
assert_eq!(to_string::<i128>(&4294967295).unwrap(), r#"4294967295"#);
658+
assert_eq!(to_string::<i128>(&4294967296).unwrap(), r#"4294967296"#);
668659
assert_eq!(
669660
to_string::<i128>(&9007199254740991).unwrap(),
670-
r#""9007199254740991""#
661+
r#"9007199254740991"#
671662
); // Number.MAX_SAFE_INTEGER
672663
assert_eq!(
673664
to_string::<i128>(&9007199254740992).unwrap(),
674-
r#""9007199254740992""#
665+
r#"9007199254740992"#
675666
); // Number.MAX_SAFE_INTEGER+1
676667
assert_eq!(
677668
to_string::<i128>(&9223372036854775807).unwrap(),
678-
r#""9223372036854775807""#
669+
r#"9223372036854775807"#
679670
);
680671
assert_eq!(
681672
to_string::<i128>(&9223372036854775808).unwrap(),
682-
r#""9223372036854775808""#
673+
r#"9223372036854775808"#
683674
);
684675
assert_eq!(
685676
to_string::<i128>(&i128::MAX).unwrap(),
686-
r#""170141183460469231731687303715884105727""#
677+
r#"170141183460469231731687303715884105727"#
687678
);
688-
assert_eq!(to_string::<i128>(&-1).unwrap(), r#""-1""#);
679+
assert_eq!(to_string::<i128>(&-1).unwrap(), r#"-1"#);
689680
assert_eq!(
690681
to_string::<i128>(&i128::MIN).unwrap(),
691-
r#""-170141183460469231731687303715884105728""#
682+
r#"-170141183460469231731687303715884105728"#
692683
);
693-
// Currently failing, see https://github.com/CosmWasm/serde-json-wasm/issues/54
694-
// assert_serde_json_serialize_eq!(&i128::MIN);
684+
assert_serde_json_serialize_eq!(&i128::MIN);
695685
}
696686

697687
#[test]
@@ -725,10 +715,9 @@ mod tests {
725715

726716
assert_eq!(
727717
to_string(&pair).unwrap(),
728-
r#"["340282366920938463463374607431768211455","340282366920938463463374607431768211455"]"#
718+
r#"[340282366920938463463374607431768211455,340282366920938463463374607431768211455]"#
729719
);
730-
// Currently failing, see https://github.com/CosmWasm/serde-json-wasm/issues/54
731-
// assert_serde_json_serialize_eq!(&pair);
720+
assert_serde_json_serialize_eq!(&pair);
732721
}
733722

734723
#[test]

0 commit comments

Comments
 (0)