Rust 第三方库创建和导入(cargo --lib)

前言

日常开发过程中,难免会有一些工具方法,多个项目之间可能会重复使用。

所以将这些方法集成到一个第三方包中方便后期维护和管理,

比如工具函数如果需要修改,多个项目可能每个都需要改代码,

抽离到单独的包中只需要修改包里面的代码和版本即可,其他项目更新一下版本无需多次修改。

对【RUST实际开发过程中模块之间的互相调用】不清楚的,可以点此进行查看

步骤

说明

这里业务代码项目名称为test_code,包名称rust_math(一些简单的计算方法)

开始

  • 执行以下命令
sh 复制代码
  cargo new test_code
  • 使用编辑器打开此目录,在此目录下新建一个包,执行以下命令
sh 复制代码
  cargo new rust_math --lib

目录结构

在业务项目的Cargo.toml中添加以下代码,引入本地包

toml 复制代码
[dependencies]
rust_math = { path = "./rust_math" }

包代码编写

在rust_math/src/lib.rs中编写以下代码

rust 复制代码
pub fn add(left: usize, right: usize) -> usize {
    left + right
}

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }
}

其中主要方法为add用于返回两数之和,下面的代码为单元测试

业务代码编写

在src/main.rs中编写以下代码

rust 复制代码
use rust_math;

fn main() {
    let sum: usize = rust_math::add(1, 1);
    println!("{}", sum);
}

运行

sh 复制代码
cargo run

运行结果

sh 复制代码
2
相关推荐
爱跳舞的烤冷面35 分钟前
自学嵌入式第N天(Linux篇——文件编程)
java·开发语言·前端
IT_陈寒41 分钟前
Vite的热更新突然失效,原来我忽略了这个配置
前端·人工智能·后端
怪奇云呼军43 分钟前
闪电智能VoiceAgent 如何管理呼入、接听、桥接和挂断状态?
java·前端·网络·数据库·人工智能
云浪1 小时前
Milvus + RAG 实战:《红楼梦》问答助手
前端·人工智能·后端
恋猫de小郭1 小时前
Dart 3.13 大更新,感觉比 Flutter 更带劲
android·前端·flutter
晓得迷路了1 小时前
栗子前端技术周刊第 142 期 - DeepSeek Harness、pnpm 12 RC、crypto‑js...
前端·javascript·ai编程
xiaoxiangsiyan1 小时前
RHCE之2026年全套考点详解
运维·前端·网络·chrome·学习·rhce
caimouse1 小时前
ReactOS 图形系统分析(33):字体子系统 — font.c
c语言·开发语言·reactos
Fluxart.ai1 小时前
Etsy手工制品换背景,用什么AI能保留手作质感?
前端·javascript·人工智能
阿部多瑞 ABU1 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#