```bash
mkdir workpsaces && cd workpsaces
mkdir hello-world && cd hello-world
touch Cargo.toml
echo '[workspace] members = ["lib-hello", "bin-hello", "bin-local-hello", "lib-extern"]' >> Cargo.toml ```
```bash mkdir lib-hello && cd lib-hello
cargo init --name hello_exercism --lib ```
Go to Crate Root Path
bash
vi Cargo.toml
vi src/lib.rs
mkdir tests
touch tests/u_hello.rs
vi tests/u_hello.rs
touch tests/i_hello.rs
vi tests/i_hello.rs
cargo test
Go to Crate Root Path
bash
mkdir examples
touch examples/u_hello.rs
vi examples/u_hello.rs
cargo run --example u_hello
touch examples/i_hello.rs
vi examples/i_hello.rs
cargo run --example i_hello
bash
vi src/lib.rs
mkdir -p src/integration_tests
touch src/integration_tests/mod.rs
vi src/integration_tests/mod.rs
touch src/integration_tests/i_hello.rs
vi src/integration_tests/i_hello.rs
mkdir -p src/private_tests
touch src/private_tests/mod.rs
vi src/private_tests/mod.rs
touch src/private_tests/owned_hello.rs
vi src/private_tests/owned_hello.rs
cargo test
```bash
cargo login
cargo test
cargo package cargo publish ```
```bash mkdir bin-hello && cd bin-hello
cargo init --name bin-hello --bin ```
Go to Bin Root Path
bash
echo 'hello_exercism = "0.4.0"' >> Cargo.toml
Go to Bin Root Path ```rust // vi src/main.rs use hello_exercism;
fn main () { println!("{}",helloexercism::hello()); asserteq!("Hello, World!", hello_exercism::hello()); } ```
bash
cargo run main
bash
cargo doc --open --package hello_exercism
bash
mkdir <REPOSITORY>/docs/<PROJECT_NAME>
cargo doc
cp -rf target/doc/. <REPOSITORY>/docs/<PROJECT_NAME>/.
bash
mkdir -p ../../docs/hello-world
cargo doc
cp -rf target/doc/. ../../docs/hello-world/