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

前言

日常开发过程中,难免会有一些工具方法,多个项目之间可能会重复使用。
所以将这些方法集成到一个第三方包中方便后期维护和管理,
比如工具函数如果需要修改,多个项目可能每个都需要改代码,
抽离到单独的包中只需要修改包里面的代码和版本即可,其他项目更新一下版本无需多次修改。

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

步骤

说明

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

开始

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

目录结构

image.png

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

[dependencies]
rust_math = { path = "./rust_math" }

包代码编写

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

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中编写以下代码

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

运行

cargo run

运行结果

2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SG7050EEN差分晶体振荡器:为5G路由器提供卓越的时钟源

随着5G技术的快速发展,5G路由器作为连接高速网络的重要设备,正迅速普及。为了确保5G路由器在高宽带和低延迟的网络环境中表现出色,选择一款高性能的晶体振荡器至关重要。爱普生推出的SG7050EEN差分晶体振荡器,以其高精度、低相位噪…

【linux软件基础知识】链表数据结构

双向循环链表 新链表是用LIST_HEAD(list_name)宏创建的。如上图中的(b)空链表所示,它申明类型为 list head的变量name,该变量作为新链表头的占位符。LIST_HEAD(list_name)宏还初始化 list head数据结构的 prev和next 字段,让它们指向list_name 变量本身。代码如下 #define…

0基础学习Elasticsearch-Quick start

文章目录 1 背景2 前言3 快速部署ES4 快速部署Kibana5 发送请求给ES5.1 打开Kibana控制台5.2 通过REST API发送请求5.3 通过curl发送请求5.4 添加数据5.4.1 添加单个document5.4.2 添加多个document 5.5 搜索数据5.5.1 搜索所有documents5.5.2 match查询 6 总结 1 背景 因电商项…

【算法】模拟算法——外观数组(medium)

题解:模拟算法——外观数组(medium) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接:LINK 2.题解 首先应该理解题意: 就是开始给你一个字符串,然后你对其进行描述。 描述规则是:连续的数字为一组,…

一、大模型推理

https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md 安装 v7.1 https://github.com/hiyouga/LLaMA-Factory/releases/tag/v0.7.1 git clone --depth 1 https://github.com/hiyoug…

docker 快速搭建django项目环境(DockerFile)文件基础搭建

首先需要搭建好docker环境,docker环境就不在这里叙述,如果想学在评论区留言小编后期更新由linux系统到docker的安装做一个详细的教程。 下面我们开始今天的重点: 1、第一步:我们在任意(linux)路径下创建Do…

【设计模式深度剖析】【B】【结构型】【对比】| 主要区别包装的不同

👈️上一篇:享元模式 回 顾:结构型设计模式 1.代理模式👈️ 2.装饰器模式👈️ 3.适配器模式👈️ 4.组合模式👈️ 5.桥接模式👈️ 6.外观模式👈️ 7.享元模式&#x…

jmeter性能测试用例提取

性能测试用例提取参考(根据单、混合场景、模块、运行时间、优先级)去考虑 Tips:用例提取和用例设计不一样 后期可以结合性能测试用例设计(设置线程数、时间、循环、同步定时器等等)来做性能测试

K210视觉识别模块学习笔记4: 训练与使用自己的模型_识别字母

今日开始学习K210视觉识别模块: 模型训练与使用_识别字母 亚博智能的K210视觉识别模块...... 固件库: maixpy_v0.6.2_52_gb1a1c5c5d_minimum_with_ide_support.bin 文章提供测试代码讲解、完整代码贴出、测试效果图、测试工程下载 这里也算是正式开始进入到视觉识别的领域了…

通信网优:薪资从3k-20k究竟要多久?

随着华为中标结果的不断公布,通信网优行业有了新变化。各大通信公司关于今年的网优业务市场份额也陆续公布,从目前的中标结果来看 杭州东信网络技术有限公司和南京嘉环科技股份有限公司并列排名第一,信科通信科技有限公司排名第三。而北京电旗…

ABP框架+Mysql(三)

创建,更新和删除图书 创建新书籍 创建 modal form 在 Acme.BookStore.Web 项目的 Pages/Books 目录下新建一个 CreateModal.cshtml Razor页面: CreateModal.cshtml.cs 打开 CreateModal.cshtml.cs 代码文件(CreateModalModel 类),替换成以下代码: using System.Threading.…

【贪心算法题目练习】

1. 分发饼干 这道题目和我们之前讲到的田忌赛马的问题很相似,只不过这这里不需要劣等马去抵消掉优等马,直接上贪心策略: 先将两个数组排序。针对胃口较小的孩子,从小到大挑选饼干: i. 如果当前饼干能满足,直接喂(最小…

Flutter开发效率提升1000%,Flutter Quick教程之对组件进行拖拽与接收

1,首先,所有可以选择的组件,都在左边的组件面板里。从里面点击任何一个,按住左键,向右边的手机面板上进行拖拽即可。 2,拖拽后,我们要选择一个接收组件。什么时候可以接收组件,就是当…

龙叔Linux:别名(alias)

在Linux中,别名(alias)是一个命令的简短形式,通常用于简化或替换更长的命令序列。你可以使用alias命令来创建、查看和删除别名,定制自己专属的命令。一、创建别名 1.1、临时创建 你可以使用alias命令在命令行中直接定…

B-TREE教程(个人总结版)

背景 在计算机科学中,数据存储和检索的效率是一个重要的研究课题。B-树(B-Tree)作为一种自平衡树结构,特别适合于在磁盘存储中处理大规模数据。它通过保持树的高度平衡,使得搜索、插入和删除操作的时间复杂度保持在对…

docker部署Minio对象存储及使用

1.拉取镜像 docker pull minio/minio2.创建数据目录 mkdir -p /data/minio/data3.启动容器 docker run -p 39000:9000 -p 39090:9090 \ --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYjyadmin" \ -e "MINIO_SECRET_KEYjyzx2023" \ -v /data…

沃通CA根证书获数科网维《商用密码根证书授信证明》

近日,沃通CA三款根证书获数科网维《商用密码根证书授信证明》,将列入数科受信根证书列表并预置到数科文档阅读器。这标志着沃通CA国产化适配能力进一步提升,沃通国产文档签名证书与数科国产文档阅读器兼容互认,能够更好地响应政企…

Nginx编译安装,信号,升级nginx

编译安装nginx:前面博客有写编译安装过程 systemctl stop firewalld setenforce 0 mkdir /data cd /data wget http://nginx.org/download/nginx-1.18.0.tar.gz tar xf nginx-1.18.0.tar.gz cd nginx-1.18.0/ yum -y install make gcc pcre-devel openssl-devel …

揭秘:Java字符串对象的内存分布原理

先来看看下面寄到关于String的真实面试题,看看你废不废? String str1 "Hello"; String str2 "Hello"; String str3 new String("Hello"); String str4 new String("Hello");System.out.println(str1 str2)…

Android 11 Audio strategy配置解析

在启动AudioPolicyService时,通过EngineBase的loadAudioPolicyEngineConfig函数去解析strategy配置。其调用流程如下 接下来就对loadAudioPolicyEngineConfig展开分析 1,解析volume标签 engineConfig::ParsingResult EngineBase::loadAudioPolicyEngine…