我想制作一个Rust包,它既包含一个可重用库(大部分程序都是在这里实现的),也包含一个使用它的可执行文件.

假设我没有混淆Rust模块系统中的任何语义,我的Cargo.toml文件应该是什么样子?

推荐答案

Tok:tmp doug$ du -a

8   ./Cargo.toml
8   ./src/bin.rs
8   ./src/lib.rs
16  ./src

Cargo .汤姆:

[package]
name = "mything"
version = "0.0.1"
authors = ["me <me@gmail.com>"]

[lib]
name = "mylib"
path = "src/lib.rs"

[[bin]]
name = "mybin"
path = "src/bin.rs"

src/lib.rs:

pub fn test() {
    println!("Test");
}

src/bin.rs:

extern crate mylib; // not needed since Rust edition 2018

use mylib::test;

pub fn main() {
    test();
}

Rust相关问答推荐

将此字符串转换为由空格字符分隔的空格

PyReadonlyArray2到Vec T<>

如何容器化Linux上基于Rust的Windows应用程序的编译过程?

什么是Rust惯用的方式来使特征向量具有单个向量项的别名?

什么时候铁 rust FFI边界上的panic 是未定义的行为?

如何将像烫手山芋一样不透明的值从一个Enum构造函数移动到下一个构造函数?

告诉Rust编译器返回值不包含构造函数中提供的引用

`*mut[T]`与`*mut T`的区别

类型生命周期绑定的目的是什么?

如何将 struct 数组放置在另一个 struct 的末尾而不进行内存分段

一次不能多次borrow *obj作为可变对象

Rust ECDH 不会产生与 NodeJS/Javascript 和 C 实现相同的共享密钥

std::vector::shrink_to_fit 如何在 Rust 中工作?

是否可以在 Rust 中的特定字符上实现特征?

为什么 Rust 编译器在移动不可变值时执行复制?

在使用大型表达式时(8k 行需要一小时编译),是否可以避免 Rust 中的二次编译时间?

需要括号的宏调用中的不必要的括号警告 - 这是编写宏的糟糕方法吗?

如何制作具有关联类型的特征的类型擦除版本?

为什么 Rust 标准库同时为 Thing 和 &Thing 实现特征?

为什么我不能将元素写入 Rust 数组中移动的位置,但我可以在元组中完成