[−][src]Macro serde::serde_if_integer128
Conditional compilation depending on whether Serde is built with support for 128-bit integers.
Data formats that wish to support Rust compiler versions older than 1.26 may place the i128 / u128 methods of their Serializer and Deserializer behind this macro.
Data formats that require a minimum Rust compiler version of at least 1.26 do not need to bother with this macro and may assume support for 128-bit integers.
#[macro_use] extern crate serde; use serde::Serializer; impl Serializer for MySerializer { type Ok = (); type Error = Error; fn serialize_i64(self, v: i64) -> Result<Self::Ok, Self::Error> { /* ... */ } /* ... */ serde_if_integer128! { fn serialize_i128(self, v: i128) -> Result<Self::Ok, Self::Error> { /* ... */ } fn serialize_u128(self, v: u128) -> Result<Self::Ok, Self::Error> { /* ... */ } } }
When Serde is built with support for 128-bit integers, this macro expands transparently into just the input tokens.
macro_rules! serde_if_integer128 { ($($tt:tt)*) => { $($tt)* }; }
When built without support for 128-bit integers, this macro expands to nothing.
macro_rules! serde_if_integer128 { ($($tt:tt)*) => {}; }