Rust7.2 More About Cargo and Crates.io

Rust学习笔记

Rust编程语言入门教程课程笔记

参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)

Lecture 14: More About Cargo and Crates.io

main.rs

//Customizing Builds with Release Profiles
// cargo profile:
// 1. dev profile: cargo build
// 2. release profile: cargo build --release// customizing release profile
// cargo.toml: profile.release or profile.dev// Filename: Cargo.toml
// [profile.dev]
// opt-level = 0 // no optimization// [profile.release]
// opt-level = 3 // more optimization, slower compile time// use cargo_and_crateio::kinds::PrimaryColor;
// use cargo_and_crateio::utils::mix;use cargo_and_crateio::PrimaryColor;
use cargo_and_crateio::mix;fn main() {let red = PrimaryColor::Red;let yellow = PrimaryColor::Yellow;mix(red, yellow);
}

lib.rs

//Publishing a Crate to Crates.io
//Making Useful Documentation Comments//Commenting Contained Items
//! # cargo_and_crateio
//!
//! `cargo_and_crateio` is a collection of utilities to make performing certain
//! calculations more convenient./// Adds one to the number given.
///
/// # Examples
///
/// ```
/// let arg = 5;
/// let answer = cargo_and_crateio::add_one(arg);
///
/// assert_eq!(6, answer);
/// ```
pub fn add_one(x: i32) -> i32 {x + 1
}
//cargo doc
//run rustdoc tool to generate HTML documentation from the comments. (in the target/doc directory)
//cargo doc --open
//open documentation in browser//commonly used sections:
// 1. Examples
// 2. Panics
// 3. Errors
// 4. Safety//Documentation Comments as Tests
//cargo test//Exporting a Convenient Public API with pub use//Re-exporting Names with pub use// //! # Art
// //!
// //! A library for modeling artistic concepts.pub use self::kinds::PrimaryColor;
pub use self::kinds::SecondaryColor;
pub use self::utils::mix;pub mod kinds {/// The primary colors according to the RYB color model.pub enum PrimaryColor {Red,Yellow,Blue,}/// The secondary colors according to the RYB color model.pub enum SecondaryColor {Orange,Green,Purple,}
}pub mod utils {use crate::kinds::*;/// Combines two primary colors in equal amounts to create/// a secondary color.pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {// --snip--SecondaryColor::Orange}
}

workplaces

add/Cargo.toml

[workspace]
members = ["adder", "add_one", "add_two"]

add/target/debug: the compliled files

add/adder

Cargo.toml

[package]
name = "adder"
version = "0.1.0"
edition = "2021"[dependencies]
add_one = {path = "../add_one"}

add/adder/src/main.rs

use add_one;fn main() {let num = 10;println!("Hello, world! {} plus one is {}!", num, add_one::add_one(num));
}

add/add_one/src/lib.rs

pub fn add(left: usize, right: usize) -> usize {left + right
}pub fn add_one(num: usize) -> usize {num + 1
}#[cfg(test)]
mod tests {use super::*;#[test]fn it_works() {let result = add(2, 2);assert_eq!(result, 4);}#[test]fn it_adds_one() {let result = add_one(2);assert_eq!(result, 3);}
}

add/add_two/src/lib.rs

pub fn add(left: usize, right: usize) -> usize {left + right
}pub fn add_two(num: usize) -> usize {num + 2
}#[cfg(test)]
mod tests {use super::*;#[test]fn it_works() {let result = add(2, 2);assert_eq!(result, 4);}#[test]fn it_adds_two() {let result = add_two(2);assert_eq!(result, 4);}
}

test the whole workplaces: run “cargo test” in the add dictionary

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

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

相关文章

Pandas数据分析开发实战博文集锦

本文为最近年来使用Pandas进行数据分析的实践笔记集锦,为了便于博主与爱好者查找相关内容,以及学习、应用过程,进行了初步简单梳理。内容包括:数据分析处理、可视化分析、数据库相关(ClickHouse、MongoDB、CSV、MySQL、…

力扣刷题第二十五天--二叉树

前言 二叉树的第一天,掌握前序中序后序遍历,及对应的递归迭代,morris写法。难度一个比一个高是吧。。。 内容 一、二叉树的前序遍历 144.二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 递归 每次…

TensorFlow C++编译及推理

TensorFlow环境配置: Tensorflow c源码编译(踩坑版) tensorflow C服务开发指南 预测推理代码: C运行TensorFlow模型

【UE5】显示或隐藏物体轮廓线

效果 步骤 1. 先下载所需的材质文件“M_Highlight.uasset” 材质下载链接: 链接:https://pan.baidu.com/s/1rxmRhkUoXVq6-DkIKyBhAQ 提取码:55bv 2. 在视口中拖入后期处理体积 根据需求设置后期处理体积的大小或者直接设置无限范围&…

python爬取网站数据,作为后端数据

一. 内容简介 python爬取网站数据,作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接: 三.主要流程 3.1 通过urllib请求网站 里面用的所有的包 ! pip install lxml ! pip install selenium ! pip install…

德迅云安全带您了解什么是虚拟内存 - 103.88.35.X

虚拟内存是一种内存管理技术,可以像主内存的一部分一样使用辅助内存。虚拟内存是计算机操作系统 (OS) 中使用的常用技术。 虚拟内存是用硬盘空间做内存来弥补计算机RAM空间的缺乏。当实际RAM满时(实际上,在RAM满之前),…

【Linux】U盘安装的cfg引导文件配置

isolinux.cfg文件 default vesamenu.c32 timeout 600display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long …

ClickHouse查看执行计划

在clickhouse 20.6版本之前要查看SQL语句的执行计划需要设置日志级别为trace才能可以看到,并且只能真正执行sql,在执行日志里面查看。在20.6版本引入了原生的执行计划的语法。在20.6.3版本成为正式版本的功能。 本文档基于目前较新稳定版21.7.3.14。 1.基…

Java声明式事务实战!工作中用这几种就够了!

文章目录 1.几种常用的事务传播行为1.1 REQUIRED1.2 REQUIRES_NEW1.2 NESTED 2. 事务问题2.1 事务不生效?2.2 事务不回滚? 文章会分为两个部分来讲解,第一部分是声明式事务的几种使用场景。第二部分包含事务没有生效,没有回滚的情…

计算两个图形遮盖率

读取图像 首先,加载待处理的图像,可以使用图像处理库(例如OpenCV)来实现这一步。确保已加载正确的图像。 定义特定颜色范围 确定所需的特定颜色范围。这将是要检测的马赛克填充的颜色。需要指定颜色的下限值和上限值,通…

深度学习中文汉字识别 计算机竞赛

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习中文汉字识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xf…

快速搭建本地的chatgpt

快速搭建本地的chatgpt 参考:一篇文章教你使用Docker本地化部署Chatgpt(非api,速度非常快!!!)及裸连GPT的方式(告别镜像GPT)-CSDN博客 前提是linux下 已安装docker 命…

批量下载Sentinel数据脚本2023

批量下载Sentinel数据脚本2023 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情! 批量下载Sentinel数据脚本2023 批量下载Sentinel数据脚本2023🌿前言🌿脚本地址📧Su…

Leetcode—142.环形链表II【中等】

2023每日刷题(三十三) Leetcode—142.环形链表II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* …

Codeforces Round 909 (Div. 3) 题解 A-E

目录 A - Game with IntegersB - 250 Thousand Tons of TNTC - Yarik and ArrayD - Yarik and Musical NotesE - Queue Sort A - Game with Integers 原题链接 题目描述 给定一个整数N,A和B都可以对这个整数进行加一或者减一操作,从A开始,如…

2023.11.18 - hadoop之zookeeper分布式协调服务

1.zookeeper简介 ZooKeeper概念: Zookeeper是一个分布式协调服务的开源框架。本质上是一个分布式的小文件存储系统 ZooKeeper作用: 主要用来解决分布式集群中应用系统的一致性问题。 ZooKeeper结构: 采用树形层次结构,没有目录与文件之分,ZooKeeper树中的每个节点被…

防止显卡掉卡的一种方法:nvidia-smi -pm 1

背景 服务器较老,里面的显卡在使用一段时间后会出现掉卡现象 解决方法 在终端输入:nvidia-smi -pm 1 nvidia-smi -pm 1是用于在NVIDIA GPU上启用持久性模式的命令。 NVIDIA GPU的持久性模式是一种能够保持 GPU 在全功率状态下运行的设置。通常情况下…

阿里巴巴java开发手册-编程规约

编程规约 命名风格常量定义代码格式OOP 规约日期时间集合处理并发处理控制语句注释规约前后端规约其他 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name / name / n a m e / n a m e / n a m e…

Linux下安装部署redis(离线模式)

一、准备工作 1.下载redis的安装包 下载地址:Index of /releases/ 大家可以自行选择redis的版本,笔者选择的是最新的 2.上传到服务器 前提是我先在服务器上创建了一个目录redis7.2.3,我直接上传到这个目录下 二、安装redis 1.解压redis t…

Cloud

Spring Cloud 是基于 Spring Framework 构建的一套分布式系统开发工具集,旨在简化分布式系统的开发。它提供了一系列的组件和工具,帮助开发者快速搭建分布式系统中的常见模块,例如服务注册与发现、配置中心、断路器、网关等。以下是我对 Spri…