1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//! Position

/// Position types.
///
/// # Examples
///
/// ```
/// use mpl::position::Position;
///
/// #[derive(Clone, PartialEq, PartialOrd)]
/// struct BytePos(u32);
///
/// impl Position for BytePos {}
/// ```
pub trait Position: Clone + PartialOrd {}

macro_rules! position_impl {
    ( $( $t:ty ),* ) => ($(
        impl Position for $t {}
    )*)
}

position_impl!(i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64);