macro_rules! newtype_ord {
($name:ident, i8) => { ... };
($name:ident, u8) => { ... };
($name:ident, i16) => { ... };
($name:ident, u16) => { ... };
($name:ident, i32) => { ... };
($name:ident, u32) => { ... };
($name:ident, i64) => { ... };
($name:ident, u64) => { ... };
($name:ident, i128) => { ... };
($name:ident, u128) => { ... };
($name:ident, isize) => { ... };
($name:ident, usize) => { ... };
($name:ident, i8; $($derive:path),+) => { ... };
($name:ident, u8; $($derive:path),+) => { ... };
($name:ident, i16; $($derive:path),+) => { ... };
($name:ident, u16; $($derive:path),+) => { ... };
($name:ident, i32; $($derive:path),+) => { ... };
($name:ident, u32; $($derive:path),+) => { ... };
($name:ident, i64; $($derive:path),+) => { ... };
($name:ident, u64; $($derive:path),+) => { ... };
($name:ident, i128; $($derive:path),+) => { ... };
($name:ident, u128; $($derive:path),+) => { ... };
($name:ident, isize; $($derive:path),+) => { ... };
($name:ident, usize; $($derive:path),+) => { ... };
($name:ident, f32) => { ... };
($name:ident, f64) => { ... };
($name:ident, f32; $($derive:path),+) => { ... };
($name:ident, f64; $($derive:path),+) => { ... };
($name:ident, String) => { ... };
($name:ident, String; $($derive:path),+) => { ... };
}Expand description
The newtype_ord! macro extends the functionality provided with
newtype! by implementing the
PartialOrd and
Ord traits
(when possible).
Example:
use newtypes::*;
use serde::{Deserialize, Serialize};
newtype_ord!(Rank, u16);
newtype_ord!(TicketNumber, u16; Serialize, Deserialize);NOTE: It only works for integers, floating point numbers, and
String.