$ mkdir add
$ cd add
Cargo.toml
[workspace]
members = [
"adder",
]
$ cargo new –bin adder
$ tree
.
├── adder
│ ├── Cargo.toml
│ └── src
│ └── main.rs
└── Cargo.toml
$ cargo new add-one –lib
$ tree
.
├── adder
│ ├── Cargo.toml
│ └── src
│ └── main.rs
├── add-one
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
└── Cargo.toml
pub fn add_one(x: i32) -> i32 {
x + 1
}
adder/Cargo.toml
[dependencies]
add-one = {path = "../add-one"}
adder/src/main.rs
extern crate add_one;
fn main() {
let num = 10;
println!("Hello, world!{} plus one is {}!", num, add_one::add_one(num));
}
$ cargo run
Compiling add-one v0.1.0 (/home/vagrant/dev/rust/add/add-one)
Compiling adder v0.1.0 (/home/vagrant/dev/rust/add/adder)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.15s
Running `target/debug/adder`
Hello, world!10 plus one is 11!
なるほど、ワークスペースを使ってパッケージ管理してるのか!