
Rust
文章平均质量分 56
DmrForever
知乎:https://www.zhihu.com/people/steveforever
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
rust simd相关库使用
和wide提供了更高级别的抽象,使 SIMD 编程更容易。提供了对特定硬件指令的低级访问。std::simd是 Rust 标准库中提供的实验性模块,用于统一 SIMD 编程接口。不同的库有不同的优缺点,可以根据具体需求选择合适的库。原创 2024-08-11 11:38:36 · 675 阅读 · 0 评论 -
rust循环展开benchmark测试
在 Rust 中,循环展开可以通过手动优化来实现。Rust 编译器(rustc)不会自动进行循环展开优化,因此如果你想利用这一技术,需要手动进行代码修改。下面是一个简单的例子,展示了如何在 Rust 中进行循环展开。原创 2024-08-11 11:37:42 · 443 阅读 · 0 评论 -
rust中的phantom类型有什么用?
用于在类型系统中携带类型和生命周期信息,虽然不实际存储这些类型的值。:用于表示一个类型不能安全地移动,常与Pin类型一起使用。这些Phantom类型在 Rust 的泛型编程和内存安全中起到了重要的作用,通过标记和类型信息传递,帮助编译器进行更严格的检查和优化。原创 2024-08-11 11:35:13 · 536 阅读 · 0 评论 -
rust pin_project的使用
是 Rust 中的一个过程宏,用于简化处理Pin类型,特别是当结构体包含需要固定在内存中的字段时。Pin类型在 Rust 中确保对象不能在内存中移动,这对于某些类型的安全并发和内存管理至关重要。原创 2024-08-11 11:34:02 · 398 阅读 · 0 评论 -
rust cow写时复制的使用方法
Cow定义在标准库模块whereSized,Cow: 一个对数据的借用引用。: 一个拥有的数据副本。Cow是 Rust 中一个非常有用的类型,特别是在需要处理既可能只读又可能需要修改的数据时。它通过在借用和拥有之间动态切换,提供了性能优化和灵活性,避免了不必要的数据拷贝。使用Cow可以让你的代码在保持高效的同时,又能灵活地处理不同的需求。原创 2024-08-11 11:31:29 · 521 阅读 · 0 评论 -
rust中的Stream和Future
Future是一个包含一个pollpoll方法:检查Future是否已经完成。如果完成,返回,否则返回。Output类型:表示Future完成时的返回值类型。Stream是一个包含一个poll_nexttype Item;poll_next方法:检查Stream是否有新的数据。如果有,返回,如果流结束,返回,否则返回。Item类型:表示Stream中产生的值的类型。Future:表示将来可能完成的异步计算,通过poll方法检查是否完成。Stream:表示异步的数据流,通过。原创 2024-08-11 11:30:21 · 531 阅读 · 0 评论 -
rust和c传递字符串的七种方法--翻译
使用FFI获取到的指针指向的内存,由FFI进行释放。rust中提供了两个函数,get_string_len获取字符串的长度(包括’\0’字符),在copy_string函数中接受c传递的指针,拷贝rust中字符串到内存供c使用。使用into_raw()函数,指针指向的内存所有权就交给了C,但是要注意最终指针还是要传递回rust,调用from_raw()函数管理起内存,然后释放内存。采用这种方法,由于内存是c malloc分配的,c可以直接修改内存中内容,调用free释放内存,不需要担心释放内存出现错误。原创 2024-08-04 23:32:17 · 1136 阅读 · 0 评论 -
嵌套式项目中Vscode中调试Rust的一些问题解决
attach是用于已经启动了一个持续运行的程序(比如启动了一个server)(如果程序一下子就结束了,这种方式使用launch调试),这个程序加载了so,然后调试so就选择attach(中文直译就是依附到这个程序上,翻译有点傻)。由于是嵌套式项目,比如C++代码中对Rust进行了Bind,Rust目录就在项目子目录中,为了让vscode中安装的rust-analyzer识别到正确的rust项目目录,在.vscode/settings.json中添加如下。直接就会断点到so内部对应的代码行。原创 2024-08-04 15:54:15 · 1035 阅读 · 0 评论 -
创建第一个rust tauri项目
由于wsl2会遇到渲染相关的报错,切换到windows。windows包管理器安装nodejs。原创 2024-08-03 12:37:22 · 417 阅读 · 0 评论 -
字符串乘法问题--Rust
Rust实现字符串乘法impl Solution { pub fn multiply(num1: String, num2: String) -> String { let m = num1.len(); let n = num2.len(); let mut res = Vec::new(); res.resize(m + n, 0); for i in (0..m).rev() {原创 2022-05-22 21:53:05 · 259 阅读 · 0 评论 -
在Linux上编译Windows平台的Rust程序
本文以在linux上编译windows上可执行rust tui example程序为例,记录rust跨平台编译过程。tui-rs是一个Rust库,用于构建丰富的终端用户界面和仪表盘。首先,git clone tui-rs的源码,编译并运行linux可执行程序命令如下:git clone https://github.com/fdehau/tui-rs.gitcargo run --example user_input --release使用如下命令,可以通过–target选项指定编译目标的平台原创 2022-05-21 12:40:28 · 2266 阅读 · 3 评论