diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-08-28 03:38:38 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-08-28 03:38:38 +0530 |
| commit | a63cd9b5a165ca86529e678b9fea642bdae2e156 (patch) | |
| tree | 17b704a650104936c02fac401e0b6394e12b2005 | |
| parent | 1c7c6adf5f3bdcf7f95e1bf1eec2c85ce96b5c92 (diff) | |
| parent | 59653c10a6f6683f0c5fa4aab75fe01207a4fa21 (diff) | |
| download | rust-a63cd9b5a165ca86529e678b9fea642bdae2e156.tar.gz rust-a63cd9b5a165ca86529e678b9fea642bdae2e156.zip | |
Rollup merge of #28048 - steveklabnik:doc_unimplemented, r=alexcrichton
| -rw-r--r-- | src/libcore/macros.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/libcore/macros.rs b/src/libcore/macros.rs index 9f4d61a50d5..21038f25be3 100644 --- a/src/libcore/macros.rs +++ b/src/libcore/macros.rs @@ -254,6 +254,51 @@ macro_rules! unreachable { /// A standardised placeholder for marking unfinished code. It panics with the /// message `"not yet implemented"` when executed. +/// +/// This can be useful if you are prototyping and are just looking to have your +/// code typecheck, or if you're implementing a trait that requires multiple +/// methods, and you're only planning on using one of them. +/// +/// # Examples +/// +/// Here's an example of some in-progress code. We have a trait `Foo`: +/// +/// ``` +/// trait Foo { +/// fn bar(&self); +/// fn baz(&self); +/// } +/// ``` +/// +/// We want to implement `Foo` on one of our types, but we also want to work on +/// just `bar()` first. In order for our code to compile, we need to implement +/// `baz()`, so we can use `unimplemented!`: +/// +/// ``` +/// # trait Foo { +/// # fn foo(&self); +/// # fn bar(&self); +/// # } +/// struct MyStruct; +/// +/// impl Foo for MyStruct { +/// fn foo(&self) { +/// // implementation goes here +/// } +/// +/// fn bar(&self) { +/// // let's not worry about implementing bar() for now +/// unimplemented!(); +/// } +/// } +/// +/// fn main() { +/// let s = MyStruct; +/// s.foo(); +/// +/// // we aren't even using bar() yet, so this is fine. +/// } +/// ``` #[macro_export] #[unstable(feature = "core", reason = "relationship with panic is unclear")] |
