---
title: "Rust: todo! macro"
author: "James Pace"
date: "2024/01/21"
---

One of the features of Rust that I've found really helpful when getting started
on a project is the `todo!` macro.

The `todo!` macro tells the compiler that you know that some section of code
isn't complete yet and that it should compile the rest of it anyway.

An example of where I've used this is when I get started on a project I like protoyping
out the signatures for the primary functions I think I'm going to need before I start
implemententing them.
For example, if I'm working on functions that do math operations on a custom type,
I'll start by thinking about what functions I need and what their signatures are
going to be, type that out, and then fill them in.
With `todo!`, that means I may type out something like:
```rust
struct Point {
   pub x: f32,
   pub y: f32,
   pub z: f32,
}
impl Point {
    pub fn add(&self, other: &Point) -> Point {
        todo!()
    }

    pub fn subtract(&self, other: &Point) -> Point {
        todo!()
    }
}
```
and that compiles, as long as there are not other mistakes.

The reason that's useful is let's say I made a mistake and type `Pint`
instead of `Point` somewhere.
I can build the code, have the compiler point that out, and fix it
before needing to implement everything.

The official documentation about `todo!` can be found
[here](https://doc.rust-lang.org/std/macro.todo.html).
