Вы также можете просто добавить двоичные источники src/bin
и остальные источники src
. Вы можете увидеть пример в моем проекте . Вам не нужно ничего менять Cargo.toml
, и каждый исходный файл будет скомпилирован в двоичный файл с тем же именем.
Конфигурация другого ответа затем заменяется на:
$ tree
.
├── Cargo.toml
└── src
├── bin
│ └── mybin.rs
└── lib.rs
Cargo.toml
[package]
name = "example"
version = "0.0.1"
authors = ["An Devloper <an.devloper@example.com>"]
SRC / lib.rs
use std::error::Error;
pub fn really_complicated_code(a: u8, b: u8) -> Result<u8, Box<Error>> {
Ok(a + b)
}
SRC / bin / mybin.rs
extern crate example; // Optional in Rust 2018
fn main() {
println!("I'm using the library: {:?}", example::really_complicated_code(1, 2));
}
И выполнить это:
$ cargo run --bin mybin
I'm using the library: Ok(3)
Кроме того, вы можете просто создать объект, src/main.rs
который будет использоваться в качестве исполняемого файла defacto. К сожалению, это конфликтует с cargo doc
командой:
Невозможно задокументировать пакет, в котором библиотека и двоичный файл имеют одинаковые имена. Подумайте о переименовании или пометке цели какdoc = false