Skip to content

Commit

Permalink
Support Neg and Not in no_core mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
eddyb committed Jan 2, 2017
1 parent 9858987 commit 1d0a8b7
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion src/dox.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,19 @@ mod imp {
#[lang = "sized"]
pub trait Sized {}

macro_rules! each_int {
macro_rules! each_unsigned_int {
($mac:ident) => (
$mac!(u8);
$mac!(u16);
$mac!(u32);
$mac!(u64);
$mac!(usize);
)
}

macro_rules! each_int {
($mac:ident) => (
each_unsigned_int!($mac);
$mac!(i8);
$mac!(i16);
$mac!(i32);
Expand Down Expand Up @@ -128,6 +134,38 @@ mod imp {
}
each_int!(impl_bitor);

#[lang = "neg"]
pub trait Neg {
type Output;
fn neg(self) -> Self::Output;
}

macro_rules! impl_neg {
($($i:ident)*) => ($(
impl Neg for $i {
type Output = $i;
fn neg(self) -> $i { -self }
}
)*)
}
each_unsigned_int!(impl_neg);

#[lang = "not"]
pub trait Not {
type Output;
fn not(self) -> Self::Output;
}

macro_rules! impl_not {
($($i:ident)*) => ($(
impl Not for $i {
type Output = $i;
fn not(self) -> $i { !self }
}
)*)
}
each_int!(impl_not);

pub mod mem {
pub fn size_of_val<T>(_: &T) -> usize { 4 }
}
Expand Down

0 comments on commit 1d0a8b7

Please sign in to comment.