In ./target/debug/
we can see the binary name:
digital-garden-steps
. This is the name of our package
and we want the actual binary that users install to be
named garden
instead.
To do this we can change the auto-discovered src/main.rs
binary and change the name using a bin
config in the
Cargo.toml
file.
[[bin]]
name = "garden"
path = "src/main.rs"
Then we see ./target/debug/garden
get created when we
cargo run
or cargo build
.
Chris Biscardi: [0:00] After running cargo run, we can see the path as target/debug/digital_garden. That means the name of our binary is digital_garden, which is the same name as the package. If we bring up in Cargo.toml, we can confirm that.
[0:14] We can change the name of the binary by using a bin field. Note that because Cargo packages can have multiple binaries, this is an array. We'll rename the binary to garden and specify the path as being src/main.rs. We could change the path, but it is conventional to have the default binary be src/main, while the default library is src/lib.
[0:39] Now we could see that we run target/debug/garden when we run cargo run. If we look in target/debug, we can see a binary called digital_garden and a binary called garden. This is because digital_garden is left over from the first build, when the binary was still named digital_garden, while garden is the new binary name.