Skip to content

Commit 1d0a8b7

Browse files
committed
Support Neg and Not in no_core mode.
1 parent 9858987 commit 1d0a8b7

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

src/dox.rs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,19 @@ mod imp {
3333
#[lang = "sized"]
3434
pub trait Sized {}
3535

36-
macro_rules! each_int {
36+
macro_rules! each_unsigned_int {
3737
($mac:ident) => (
3838
$mac!(u8);
3939
$mac!(u16);
4040
$mac!(u32);
4141
$mac!(u64);
4242
$mac!(usize);
43+
)
44+
}
45+
46+
macro_rules! each_int {
47+
($mac:ident) => (
48+
each_unsigned_int!($mac);
4349
$mac!(i8);
4450
$mac!(i16);
4551
$mac!(i32);
@@ -128,6 +134,38 @@ mod imp {
128134
}
129135
each_int!(impl_bitor);
130136

137+
#[lang = "neg"]
138+
pub trait Neg {
139+
type Output;
140+
fn neg(self) -> Self::Output;
141+
}
142+
143+
macro_rules! impl_neg {
144+
($($i:ident)*) => ($(
145+
impl Neg for $i {
146+
type Output = $i;
147+
fn neg(self) -> $i { -self }
148+
}
149+
)*)
150+
}
151+
each_unsigned_int!(impl_neg);
152+
153+
#[lang = "not"]
154+
pub trait Not {
155+
type Output;
156+
fn not(self) -> Self::Output;
157+
}
158+
159+
macro_rules! impl_not {
160+
($($i:ident)*) => ($(
161+
impl Not for $i {
162+
type Output = $i;
163+
fn not(self) -> $i { !self }
164+
}
165+
)*)
166+
}
167+
each_int!(impl_not);
168+
131169
pub mod mem {
132170
pub fn size_of_val<T>(_: &T) -> usize { 4 }
133171
}

0 commit comments

Comments
 (0)