news 2026/5/7 3:15:27

【Rust rand crate 版本升级指南(→ 0.10.1)】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Rust rand crate 版本升级指南(→ 0.10.1)】

本文档记录rand从旧版升级至0.10.1的完整过程,包括版本对比、API 变更详情、受影响文件及具体代码修改示例。


目录

  1. 升级概述
  2. 版本信息
  3. API 变更对照表
  4. 受影响的文件清单
  5. 代码修改详解
  6. 兼容性分析
  7. 升级步骤
  8. 验证方法

1. 升级概述

rand 0.10.1是一个破坏性变更(breaking changes)较大的版本,主要涉及:

  • thread_rng()函数被移除,替换为rand::rng()
  • Trait 和类型重命名RngCoreRng(原RngRngExt
  • 随机序列 trait 重构SliceRandom的读取方法移至IndexedRandom
  • 多个便捷方法重命名gen_rangerandom_rangegen_boolrandom_bool
  • choose_multiple弃用,推荐改用sample

本项目在以下 3 个文件中存在编译错误,已全部修复并验证通过。


2. 版本信息

配置项
rand版本0.10.1Cargo.toml第 32 行)
涉及的源文件encryption.rsnames.rsproject.rs
编译结果cargo check通过,零错误零警告

3. API 变更对照表

3.1 全局随机数生成器

旧 API新 API说明
rand::thread_rng()rand::rng()thread_rng已被移除

3.2 Trait 与类型命名

旧 API新 API说明
rand::RngCorerand::Rng底层随机数生成器 trait,提供fill_bytesnext_u32等方法
rand::Rngrand::RngExt用户友好随机数 trait,提供gen_rangegen_bool等便捷方法

3.3 RngExt 方法名称变更

旧方法新方法示例
rng.gen_range(0..n)rng.random_range(0..n)生成指定范围内的整数
rng.gen_bool(p)rng.random_bool(p)按概率生成布尔值

3.4 序列随机选择

旧 API新 API说明
rand::seq::SliceRandomrand::seq::IndexedRandom(用于读取方法)选择操作的 trait 变更
slice.choose(&mut rng)slice.choose(&mut rng)choose保留在SliceRandom
slice.choose_multiple(&mut rng, n)slice.sample(&mut rng, n)多选方法变更

4. 受影响的文件清单

文件路径变更类型变更数量
src-tauri/src/encryption.rs导入语句修改 + 函数调用修改3 处
src-tauri/src/names.rs导入语句修改 + 多处方法调用修改8 处
src-tauri/src/project.rs导入语句修改 + 方法调用修改3 处

5. 代码修改详解

5.1encryption.rs

变更 1:导入语句

修改前:

userand::{thread_rng,RngCore};

修改后:

userand::Rng;

说明:RngCore在新版本中已重命名为Rng,而thread_rng函数已被移除,不再需要导入。

变更 2:generate_salt()函数

修改前:

pubfngenerate_salt()->[u8;SALT_SIZE]{letmutsalt=[0u8;SALT_SIZE];thread_rng().fill_bytes(&mutsalt);salt}

修改后:

pubfngenerate_salt()->[u8;SALT_SIZE]{letmutsalt=[0u8;SALT_SIZE];rand::rng().fill_bytes(&mutsalt);salt}
变更 3:generate_nonce()函数

修改前:

<
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 3:14:29

全志A733开发板:高端嵌入式开发与边缘AI应用解析

1. 全志A733开发板深度解析&#xff1a;一款面向高端嵌入式开发的硬件平台在嵌入式开发领域&#xff0c;全志A733开发板以其149美元的定价和丰富的接口配置引起了我的注意。这个价格明显高于市面上其他基于A733芯片的开发板&#xff08;如35美元起的Orange Pi 4 Pro&#xff09…

作者头像 李华
网站建设 2026/5/7 3:12:59

ChatGPT响应延迟优化:流式传输与前端渲染性能提升实践

1. 项目概述&#xff1a;一个解决ChatGPT响应延迟的实用工具如果你经常使用ChatGPT的API进行开发&#xff0c;或者深度依赖其网页版进行创作和对话&#xff0c;那么“打字后等待响应”的那个空白期&#xff0c;你一定不陌生。尤其是在网络环境不佳、服务器负载高峰&#xff0c;…

作者头像 李华
网站建设 2026/5/7 3:08:58

Translumo:打破语言障碍的Windows实时屏幕翻译神器

Translumo&#xff1a;打破语言障碍的Windows实时屏幕翻译神器 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否曾经…

作者头像 李华
网站建设 2026/5/7 3:06:47

Toh Framework:AI编排驱动开发框架,重塑独立开发者全栈工作流

1. 项目概述&#xff1a;一个为独立开发者而生的AI驱动开发框架如果你和我一样&#xff0c;是一个经常需要独立完成全栈项目的开发者&#xff0c;或者是一个正在验证想法的创业者&#xff0c;那你一定对这样的场景不陌生&#xff1a;脑子里有一个绝佳的SaaS产品创意&#xff0c…

作者头像 李华