diff options
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/ops.rs | 22 | ||||
| -rw-r--r-- | src/libstd/prelude.rs | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/libstd/ops.rs b/src/libstd/ops.rs index ac329e6fe83..2d5d37e1abc 100644 --- a/src/libstd/ops.rs +++ b/src/libstd/ops.rs @@ -464,6 +464,28 @@ pub trait Index<Index,Result> { fn index(&self, index: &Index) -> Result; } +#[cfg(stage0)] +pub trait Deref<Result> { + fn deref<'a>(&'a self) -> &'a Result; +} + +#[cfg(not(stage0))] +#[lang="deref"] +pub trait Deref<Result> { + fn deref<'a>(&'a self) -> &'a Result; +} + +#[cfg(stage0)] +pub trait DerefMut<Result>: Deref<Result> { + fn deref_mut<'a>(&'a mut self) -> &'a mut Result; +} + +#[cfg(not(stage0))] +#[lang="deref_mut"] +pub trait DerefMut<Result>: Deref<Result> { + fn deref_mut<'a>(&'a mut self) -> &'a mut Result; +} + #[cfg(test)] mod bench { extern crate test; diff --git a/src/libstd/prelude.rs b/src/libstd/prelude.rs index 5ea00c2f67d..531833acfb1 100644 --- a/src/libstd/prelude.rs +++ b/src/libstd/prelude.rs @@ -23,7 +23,7 @@ generally useful to many Rust programs. pub use kinds::{Freeze, Pod, Send, Sized}; pub use ops::{Add, Sub, Mul, Div, Rem, Neg, Not}; pub use ops::{BitAnd, BitOr, BitXor}; -pub use ops::{Drop}; +pub use ops::{Drop, Deref, DerefMut}; pub use ops::{Shl, Shr, Index}; pub use option::{Option, Some, None}; pub use result::{Result, Ok, Err}; |
