1.39.0[][src]Macro core::todo

macro_rules! todo {
    () => { ... };
    ($($arg:tt)+) => { ... };
}

Indicates unfinished code.

This can be useful if you are prototyping and are just looking to have your code typecheck.

There is no difference between unimplemented! and todo! apart from the name.

Panics

This will always panic!

Examples

Here's an example of some in-progress code. We have a trait Foo:

trait Foo {
    fn bar(&self);
    fn baz(&self);
}Run

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 todo!:

struct MyStruct;

impl Foo for MyStruct {
    fn bar(&self) {
        // implementation goes here
    }

    fn baz(&self) {
        // let's not worry about implementing baz() for now
        todo!();
    }
}

fn main() {
    let s = MyStruct;
    s.bar();

    // we aren't even using baz() yet, so this is fine.
}Run