Procedural Macros, pt. 2: Setup

And then, there was a library.

cargo new --lib propertese

Creating a new project that builds a library couldn’t be simpler. The above command does just that - creates a folder named propertese, and initializes it with rust’s default project layout for a library (If you don’t have cargo or rust installed, they can be installed with rustup).

Inside the folder propertese, we find a Cargo.toml with some default options.

[package]
name = "propertese"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

We need to indicate we are writing a procedural macro. Edit Cargo.toml to add the following snippet.

[lib]
proc-macro = true

To ease development, let’s pull in the following dependencies. The linked documentation for each crate does a very good job of explaining its functionality.

cargo add proc-macro2 synstructure syn quote proc-macro-error

That concludes our initial setup - short and sweet. We are now good to start writing code in the next installment.