$ 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!
なるほど、ワークスペースを使ってパッケージ管理してるのか!