Skip to content

Commit 24c7871

Browse files
Drop use of serde::serde_if_integer128!
1 parent 633552a commit 24c7871

File tree

3 files changed

+96
-134
lines changed

3 files changed

+96
-134
lines changed

src/deserializer.rs

Lines changed: 35 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use serde::{
77
Error as SerdeError, IntoDeserializer, MapAccess, SeqAccess,
88
Unexpected, VariantAccess, Visitor,
99
},
10-
serde_if_integer128,
1110
};
1211

1312
use crate::{
@@ -206,22 +205,18 @@ impl<'r> DeRecord<'r> for DeStringRecord<'r> {
206205
) -> Result<V::Value, DeserializeError> {
207206
let x = self.next_field()?;
208207
if x == "true" {
209-
return visitor.visit_bool(true);
208+
visitor.visit_bool(true)
210209
} else if x == "false" {
211-
return visitor.visit_bool(false);
210+
visitor.visit_bool(false)
212211
} else if let Some(n) = try_positive_integer64(x) {
213-
return visitor.visit_u64(n);
212+
visitor.visit_u64(n)
214213
} else if let Some(n) = try_negative_integer64(x) {
215-
return visitor.visit_i64(n);
216-
}
217-
serde_if_integer128! {
218-
if let Some(n) = try_positive_integer128(x) {
219-
return visitor.visit_u128(n);
220-
} else if let Some(n) = try_negative_integer128(x) {
221-
return visitor.visit_i128(n);
222-
}
223-
}
224-
if let Some(n) = try_float(x) {
214+
visitor.visit_i64(n)
215+
} else if let Some(n) = try_positive_integer128(x) {
216+
visitor.visit_u128(n)
217+
} else if let Some(n) = try_negative_integer128(x) {
218+
visitor.visit_i128(n)
219+
} else if let Some(n) = try_float(x) {
225220
visitor.visit_f64(n)
226221
} else {
227222
visitor.visit_str(x)
@@ -297,22 +292,18 @@ impl<'r> DeRecord<'r> for DeByteRecord<'r> {
297292
) -> Result<V::Value, DeserializeError> {
298293
let x = self.next_field_bytes()?;
299294
if x == b"true" {
300-
return visitor.visit_bool(true);
295+
visitor.visit_bool(true)
301296
} else if x == b"false" {
302-
return visitor.visit_bool(false);
297+
visitor.visit_bool(false)
303298
} else if let Some(n) = try_positive_integer64_bytes(x) {
304-
return visitor.visit_u64(n);
299+
visitor.visit_u64(n)
305300
} else if let Some(n) = try_negative_integer64_bytes(x) {
306-
return visitor.visit_i64(n);
307-
}
308-
serde_if_integer128! {
309-
if let Some(n) = try_positive_integer128_bytes(x) {
310-
return visitor.visit_u128(n);
311-
} else if let Some(n) = try_negative_integer128_bytes(x) {
312-
return visitor.visit_i128(n);
313-
}
314-
}
315-
if let Some(n) = try_float_bytes(x) {
301+
visitor.visit_i64(n)
302+
} else if let Some(n) = try_positive_integer128_bytes(x) {
303+
visitor.visit_u128(n)
304+
} else if let Some(n) = try_negative_integer128_bytes(x) {
305+
visitor.visit_i128(n)
306+
} else if let Some(n) = try_float_bytes(x) {
316307
visitor.visit_f64(n)
317308
} else if let Ok(s) = str::from_utf8(x) {
318309
visitor.visit_str(s)
@@ -366,16 +357,12 @@ impl<'a, 'de: 'a, T: DeRecord<'de>> Deserializer<'de>
366357
deserialize_int!(deserialize_u16, visit_u16, u16);
367358
deserialize_int!(deserialize_u32, visit_u32, u32);
368359
deserialize_int!(deserialize_u64, visit_u64, u64);
369-
serde_if_integer128! {
370-
deserialize_int!(deserialize_u128, visit_u128, u128);
371-
}
360+
deserialize_int!(deserialize_u128, visit_u128, u128);
372361
deserialize_int!(deserialize_i8, visit_i8, i8);
373362
deserialize_int!(deserialize_i16, visit_i16, i16);
374363
deserialize_int!(deserialize_i32, visit_i32, i32);
375364
deserialize_int!(deserialize_i64, visit_i64, i64);
376-
serde_if_integer128! {
377-
deserialize_int!(deserialize_i128, visit_i128, i128);
378-
}
365+
deserialize_int!(deserialize_i128, visit_i128, i128);
379366

380367
fn deserialize_f32<V: Visitor<'de>>(
381368
self,
@@ -747,14 +734,12 @@ impl DeserializeErrorKind {
747734
}
748735
}
749736

750-
serde_if_integer128! {
751-
fn try_positive_integer128(s: &str) -> Option<u128> {
752-
s.parse().ok()
753-
}
737+
fn try_positive_integer128(s: &str) -> Option<u128> {
738+
s.parse().ok()
739+
}
754740

755-
fn try_negative_integer128(s: &str) -> Option<i128> {
756-
s.parse().ok()
757-
}
741+
fn try_negative_integer128(s: &str) -> Option<i128> {
742+
s.parse().ok()
758743
}
759744

760745
fn try_positive_integer64(s: &str) -> Option<u64> {
@@ -777,14 +762,12 @@ fn try_negative_integer64_bytes(s: &[u8]) -> Option<i64> {
777762
str::from_utf8(s).ok().and_then(|s| s.parse().ok())
778763
}
779764

780-
serde_if_integer128! {
781-
fn try_positive_integer128_bytes(s: &[u8]) -> Option<u128> {
782-
str::from_utf8(s).ok().and_then(|s| s.parse().ok())
783-
}
765+
fn try_positive_integer128_bytes(s: &[u8]) -> Option<u128> {
766+
str::from_utf8(s).ok().and_then(|s| s.parse().ok())
767+
}
784768

785-
fn try_negative_integer128_bytes(s: &[u8]) -> Option<i128> {
786-
str::from_utf8(s).ok().and_then(|s| s.parse().ok())
787-
}
769+
fn try_negative_integer128_bytes(s: &[u8]) -> Option<i128> {
770+
str::from_utf8(s).ok().and_then(|s| s.parse().ok())
788771
}
789772

790773
fn try_float_bytes(s: &[u8]) -> Option<f64> {
@@ -797,7 +780,7 @@ mod tests {
797780

798781
use {
799782
bstr::BString,
800-
serde::{de::DeserializeOwned, serde_if_integer128, Deserialize},
783+
serde::{de::DeserializeOwned, Deserialize},
801784
};
802785

803786
use crate::{
@@ -946,12 +929,10 @@ mod tests {
946929
assert_eq!(got, 42);
947930
}
948931

949-
serde_if_integer128! {
950-
#[test]
951-
fn one_field_128() {
952-
let got: i128 = de(&["2010223372036854775808"]).unwrap();
953-
assert_eq!(got, 2010223372036854775808);
954-
}
932+
#[test]
933+
fn one_field_128() {
934+
let got: i128 = de(&["2010223372036854775808"]).unwrap();
935+
assert_eq!(got, 2010223372036854775808);
955936
}
956937

957938
#[test]

src/serializer.rs

Lines changed: 43 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
use std::{fmt, io, mem};
22

3-
use serde::{
4-
ser::{
5-
Error as SerdeError, Serialize, SerializeMap, SerializeSeq,
6-
SerializeStruct, SerializeStructVariant, SerializeTuple,
7-
SerializeTupleStruct, SerializeTupleVariant, Serializer,
8-
},
9-
serde_if_integer128,
3+
use serde::ser::{
4+
Error as SerdeError, Serialize, SerializeMap, SerializeSeq,
5+
SerializeStruct, SerializeStructVariant, SerializeTuple,
6+
SerializeTupleStruct, SerializeTupleVariant, Serializer,
107
};
118

129
use crate::{
@@ -66,11 +63,9 @@ impl<'a, 'w, W: io::Write> Serializer for &'a mut SeRecord<'w, W> {
6663
self.wtr.write_field(buffer.format(v))
6764
}
6865

69-
serde_if_integer128! {
70-
fn serialize_i128(self, v: i128) -> Result<Self::Ok, Self::Error> {
71-
let mut buffer = itoa::Buffer::new();
72-
self.wtr.write_field(buffer.format(v))
73-
}
66+
fn serialize_i128(self, v: i128) -> Result<Self::Ok, Self::Error> {
67+
let mut buffer = itoa::Buffer::new();
68+
self.wtr.write_field(buffer.format(v))
7469
}
7570

7671
fn serialize_u8(self, v: u8) -> Result<Self::Ok, Self::Error> {
@@ -93,11 +88,9 @@ impl<'a, 'w, W: io::Write> Serializer for &'a mut SeRecord<'w, W> {
9388
self.wtr.write_field(buffer.format(v))
9489
}
9590

96-
serde_if_integer128! {
97-
fn serialize_u128(self, v: u128) -> Result<Self::Ok, Self::Error> {
98-
let mut buffer = itoa::Buffer::new();
99-
self.wtr.write_field(buffer.format(v))
100-
}
91+
fn serialize_u128(self, v: u128) -> Result<Self::Ok, Self::Error> {
92+
let mut buffer = itoa::Buffer::new();
93+
self.wtr.write_field(buffer.format(v))
10194
}
10295

10396
fn serialize_f32(self, v: f32) -> Result<Self::Ok, Self::Error> {
@@ -524,10 +517,8 @@ impl<'a, 'w, W: io::Write> Serializer for &'a mut SeHeader<'w, W> {
524517
self.handle_scalar(v)
525518
}
526519

527-
serde_if_integer128! {
528-
fn serialize_i128(self, v: i128) -> Result<Self::Ok, Self::Error> {
529-
self.handle_scalar(v)
530-
}
520+
fn serialize_i128(self, v: i128) -> Result<Self::Ok, Self::Error> {
521+
self.handle_scalar(v)
531522
}
532523

533524
fn serialize_u8(self, v: u8) -> Result<Self::Ok, Self::Error> {
@@ -546,10 +537,8 @@ impl<'a, 'w, W: io::Write> Serializer for &'a mut SeHeader<'w, W> {
546537
self.handle_scalar(v)
547538
}
548539

549-
serde_if_integer128! {
550-
fn serialize_u128(self, v: u128) -> Result<Self::Ok, Self::Error> {
551-
self.handle_scalar(v)
552-
}
540+
fn serialize_u128(self, v: u128) -> Result<Self::Ok, Self::Error> {
541+
self.handle_scalar(v)
553542
}
554543

555544
fn serialize_f32(self, v: f32) -> Result<Self::Ok, Self::Error> {
@@ -820,10 +809,7 @@ impl<'a, 'w, W: io::Write> SerializeStructVariant for &'a mut SeHeader<'w, W> {
820809

821810
#[cfg(test)]
822811
mod tests {
823-
use {
824-
bstr::ByteSlice,
825-
serde::{serde_if_integer128, Serialize},
826-
};
812+
use {bstr::ByteSlice, serde::Serialize};
827813

828814
use crate::{
829815
error::{Error, ErrorKind},
@@ -879,24 +865,22 @@ mod tests {
879865
assert_eq!(got, "");
880866
}
881867

882-
serde_if_integer128! {
883-
#[test]
884-
fn integer_u128() {
885-
let got = serialize(i128::max_value() as u128 + 1);
886-
assert_eq!(got, "170141183460469231731687303715884105728\n");
887-
let (wrote, got) = serialize_header(12345);
888-
assert!(!wrote);
889-
assert_eq!(got, "");
890-
}
868+
#[test]
869+
fn integer_u128() {
870+
let got = serialize(i128::max_value() as u128 + 1);
871+
assert_eq!(got, "170141183460469231731687303715884105728\n");
872+
let (wrote, got) = serialize_header(12345);
873+
assert!(!wrote);
874+
assert_eq!(got, "");
875+
}
891876

892-
#[test]
893-
fn integer_i128() {
894-
let got = serialize(i128::max_value());
895-
assert_eq!(got, "170141183460469231731687303715884105727\n");
896-
let (wrote, got) = serialize_header(12345);
897-
assert!(!wrote);
898-
assert_eq!(got, "");
899-
}
877+
#[test]
878+
fn integer_i128() {
879+
let got = serialize(i128::max_value());
880+
assert_eq!(got, "170141183460469231731687303715884105727\n");
881+
let (wrote, got) = serialize_header(12345);
882+
assert!(!wrote);
883+
assert_eq!(got, "");
900884
}
901885

902886
#[test]
@@ -1146,23 +1130,21 @@ mod tests {
11461130
assert_eq!(got, "true,5,hi\n");
11471131
}
11481132

1149-
serde_if_integer128! {
1150-
#[test]
1151-
fn struct_no_headers_128() {
1152-
#[derive(Serialize)]
1153-
struct Foo {
1154-
x: i128,
1155-
y: u128,
1156-
}
1133+
#[test]
1134+
fn struct_no_headers_128() {
1135+
#[derive(Serialize)]
1136+
struct Foo {
1137+
x: i128,
1138+
y: u128,
1139+
}
11571140

1158-
let got =
1159-
serialize(Foo { x: i128::max_value(), y: u128::max_value() });
1160-
assert_eq!(
1161-
got,
1162-
"170141183460469231731687303715884105727,\
1141+
let got =
1142+
serialize(Foo { x: i128::max_value(), y: u128::max_value() });
1143+
assert_eq!(
1144+
got,
1145+
"170141183460469231731687303715884105727,\
11631146
340282366920938463463374607431768211455\n"
1164-
);
1165-
}
1147+
);
11661148
}
11671149

11681150
#[test]

src/writer.rs

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,7 +1216,7 @@ impl Buffer {
12161216
mod tests {
12171217
use std::io::{self, Write};
12181218

1219-
use serde::{serde_if_integer128, Serialize};
1219+
use serde::Serialize;
12201220

12211221
use crate::{
12221222
byte_record::ByteRecord, error::ErrorKind, string_record::StringRecord,
@@ -1415,25 +1415,24 @@ mod tests {
14151415
assert_eq!(wtr_as_string(wtr), "42,42.5,true\n");
14161416
}
14171417

1418-
serde_if_integer128! {
1419-
#[test]
1420-
fn serialize_no_headers_128() {
1421-
#[derive(Serialize)]
1422-
struct Row {
1423-
foo: i128,
1424-
bar: f64,
1425-
baz: bool,
1426-
}
1427-
1428-
let mut wtr =
1429-
WriterBuilder::new().has_headers(false).from_writer(vec![]);
1430-
wtr.serialize(Row {
1431-
foo: 9_223_372_036_854_775_808,
1432-
bar: 42.5,
1433-
baz: true,
1434-
}).unwrap();
1435-
assert_eq!(wtr_as_string(wtr), "9223372036854775808,42.5,true\n");
1418+
#[test]
1419+
fn serialize_no_headers_128() {
1420+
#[derive(Serialize)]
1421+
struct Row {
1422+
foo: i128,
1423+
bar: f64,
1424+
baz: bool,
14361425
}
1426+
1427+
let mut wtr =
1428+
WriterBuilder::new().has_headers(false).from_writer(vec![]);
1429+
wtr.serialize(Row {
1430+
foo: 9_223_372_036_854_775_808,
1431+
bar: 42.5,
1432+
baz: true,
1433+
})
1434+
.unwrap();
1435+
assert_eq!(wtr_as_string(wtr), "9223372036854775808,42.5,true\n");
14371436
}
14381437

14391438
#[test]

0 commit comments

Comments
 (0)