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 背景 因电商项…

Facebook代理商Facebook三不限户、二不限户、BM户的区别

随着全球化的发展,人们之间的交流和交易越来越频繁,越来越多的人开始使用互联网来处理自己的事务。这其中,Facebook(脸书)作为全球最大的社交媒体平台之一,拥有海内外两种不同类型的账户——Facebook海外户…

【算法】模拟算法——外观数组(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…

Python Flask是什么:深入解析与实用指南

Python Flask是什么:深入解析与实用指南 在当今的Web开发领域中,Flask作为一个轻量级的Python Web框架,逐渐受到广大开发者的青睐。然而,对于许多初学者而言,Flask可能还是一个充满困惑和未知的领域。那么&#xff0c…

C++(11): set与multiset

目录 1. 简述 2. std::set 3. API (1)元素插入 (2)元素删除 (3)特定元素查找 (4)清空元素 (5)元素个数 (6)set能够容纳的最大…

Python中ignore用法的深度解析

Python中ignore用法的深度解析 在Python编程中,ignore这个词汇常常与多种功能关联,包括但不限于异常处理、文件读写时的忽略特定字符或行,以及正则表达式中的忽略大小写等。本文将深入剖析Python中ignore的各种用法,旨在帮助读者…

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

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

jmeter性能测试用例提取

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

Python 字符串的修剪、拆分与合并

一、字符串的修剪 在Python中,字符串的修剪(去除字符串两端的空格或特定字符)可以通过以下方法实现: 1、strip(): strip() 方法用于去除字符串两端的空格或指定字符(默认为空格)。例: s &qu…

使用Go和Node.js构建用静态脚本进行数据解析的TCP服务器

在本文中,我们将介绍如何使用Go编程语言构建一个TCP服务器,该服务器接收客户端发送的数据,使用Node.js脚本处理数据,然后将处理后的数据返回给客户端。 程序概述 该程序包含以下主要部分: processWithJS函数,用于调…

浏览器/html页面渲染过程

html 页面渲染过程: 1. 浏览器获取到 html 资源后开始解析 html ( dom tree ) --> 构建 dom 树 2. 解析到 css 后根据 css 生成 css 规则树 ( style rules )--> 产生 css 规则树 3. dom 和 css 规则树生成完成 4. 通过 dom 树和 css 规则树生成渲染树 ( render t…

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

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

动态库(DLL)和静态库(LIB)的区别

链接时间: 静态库(LIB)在编译链接时整合到程序中。动态库(DLL)在程序运行时动态加载。 内存共享: 静态库导致每个程序副本都包含库代码。动态库允许多个程序共享同一份代码。 更新维护: DLL更新…

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

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

ABP框架+Mysql(三)

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

使用多种云进行OSS存储,详细教程

文章目录 这边文章是交大家进行多种云的存储,市场上主流的云存储,腾讯云,华为云,由于阿里云腾讯云 这边文章是交大家进行多种云的存储,市场上主流的云存储,腾讯云,华为云,由于 阿里云 阿里云本人以及出了详细的教程,这里就不讲解了,可以直接查看链接 阿里云实现思路: link 腾…