Adapt todo!
documentation to mention displaying custom values
Correct hidden trait in doc test
This commit is contained in:
parent
e0d7ed1f45
commit
f96cfb533a
@ -719,7 +719,8 @@ macro_rules! unreachable {
|
|||||||
/// The difference between `unimplemented!` and [`todo!`] is that while `todo!`
|
/// The difference between `unimplemented!` and [`todo!`] is that while `todo!`
|
||||||
/// conveys an intent of implementing the functionality later and the message is "not yet
|
/// conveys an intent of implementing the functionality later and the message is "not yet
|
||||||
/// implemented", `unimplemented!` makes no such claims. Its message is "not implemented".
|
/// implemented", `unimplemented!` makes no such claims. Its message is "not implemented".
|
||||||
/// Also some IDEs will mark `todo!`s.
|
///
|
||||||
|
/// Also, some IDEs will mark `todo!`s.
|
||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
@ -805,50 +806,63 @@ macro_rules! unimplemented {
|
|||||||
/// The difference between [`unimplemented!`] and `todo!` is that while `todo!` conveys
|
/// The difference between [`unimplemented!`] and `todo!` is that while `todo!` conveys
|
||||||
/// an intent of implementing the functionality later and the message is "not yet
|
/// an intent of implementing the functionality later and the message is "not yet
|
||||||
/// implemented", `unimplemented!` makes no such claims. Its message is "not implemented".
|
/// implemented", `unimplemented!` makes no such claims. Its message is "not implemented".
|
||||||
/// Also some IDEs will mark `todo!`s.
|
///
|
||||||
|
/// Also, some IDEs will mark `todo!`s.
|
||||||
///
|
///
|
||||||
/// # Panics
|
/// # Panics
|
||||||
///
|
///
|
||||||
/// This will always [`panic!`].
|
/// This will always [`panic!`] because `todo!` is just a shorthand for `panic!` with a
|
||||||
|
/// fixed, specific message.
|
||||||
///
|
///
|
||||||
|
/// Like `panic!`, this macro has a second form for displaying custom values.
|
||||||
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// Here's an example of some in-progress code. We have a trait `Foo`:
|
/// Here's an example of some in-progress code. We have a trait `Foo`:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// trait Foo {
|
/// trait Foo {
|
||||||
/// fn bar(&self);
|
/// fn bar(&self) -> u8;
|
||||||
/// fn baz(&self);
|
/// fn baz(&self);
|
||||||
|
/// fn qux(&self) -> Result<u64, ()>;
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// We want to implement `Foo` on one of our types, but we also want to work on
|
/// 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
|
/// just `bar()` first. In order for our code to compile, we need to implement
|
||||||
/// `baz()`, so we can use `todo!`:
|
/// `baz()` and `qux()`, so we can use `todo!`:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # trait Foo {
|
/// # trait Foo {
|
||||||
/// # fn bar(&self);
|
/// # fn bar(&self) -> u8;
|
||||||
/// # fn baz(&self);
|
/// # fn baz(&self);
|
||||||
|
/// # fn qux(&self) -> Result<u64, ()>;
|
||||||
/// # }
|
/// # }
|
||||||
/// struct MyStruct;
|
/// struct MyStruct;
|
||||||
///
|
///
|
||||||
/// impl Foo for MyStruct {
|
/// impl Foo for MyStruct {
|
||||||
/// fn bar(&self) {
|
/// fn bar(&self) -> u8 {
|
||||||
/// // implementation goes here
|
/// 1 + 1
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// fn baz(&self) {
|
/// fn baz(&self) {
|
||||||
/// // let's not worry about implementing baz() for now
|
/// // Let's not worry about implementing baz() for now
|
||||||
/// todo!();
|
/// todo!();
|
||||||
/// }
|
/// }
|
||||||
|
///
|
||||||
|
/// fn qux(&self) -> Result<u64, ()> {
|
||||||
|
/// // We can add a message to todo! to display our omission.
|
||||||
|
/// // This will display:
|
||||||
|
/// // "thread 'main' panicked at 'not yet implemented: MyStruct is not yet quxable'".
|
||||||
|
/// todo!("MyStruct is not yet quxable");
|
||||||
|
/// }
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// fn main() {
|
/// fn main() {
|
||||||
/// let s = MyStruct;
|
/// let s = MyStruct;
|
||||||
/// s.bar();
|
/// s.bar();
|
||||||
///
|
///
|
||||||
/// // we aren't even using baz(), so this is fine.
|
/// // We aren't even using baz() or qux(), so this is fine.
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
Loading…
Reference in New Issue
Block a user