小编Doe*_*Doe的帖子

如何在Rust中左移一个向量的元素?

有没有一种安全的方法来转换Rust中向量的左移元素?(当左移两个地方时vec![1, 2, 3]变成vec![3]).我正在处理Copy类型,而且我不想支付比我更高的罚款memmove.

我发现的唯一解决方案是不安全:memmove直接使用via ptr::copy.

rust

9
推荐指数
1
解决办法
1006
查看次数

如何在Rust中访问外部线程局部全局变量?

对于以下每个线程本地存储实现,如何使用编译器或标准库公开的标准ffi机制在Rust程序中访问外部线程局部变量?

  • C11
  • gcc的扩展名
  • 并行线程
  • Windows TLS API

multithreading ffi rust

9
推荐指数
1
解决办法
744
查看次数

是否可以将变量引用的变量转换为枚举?

是否可以在&mut E<T>没有附加约束的情况下切换变量reference()的变量T,并且不使用不安全的代码?

也就是说,给定一个枚举:

enum E<T> {
    VariantA(T),
    VariantB(T)
}
Run Code Online (Sandbox Code Playgroud)

写这个的正确方法是什么:

let x: E<???> = E::VariantA(??);
change_to_variant_b(&mut x);
assert_eq!(x, E::VariantB(??));
Run Code Online (Sandbox Code Playgroud)

enums rust

9
推荐指数
1
解决办法
465
查看次数

如何覆盖Cargo配置目录的位置?

看起来Cargo在搜索其配置目录时的默认行为是查看当前用户的主目录(~/.cargo在我的系统上).如何修改此行为以使Cargo在用户提供的目录中查找?

rust rust-cargo

8
推荐指数
1
解决办法
2967
查看次数

Rust 会暴露调用堆栈深度吗?

背景信息:我有一个函数可以直接或通过其他函数间接调用自身,并且希望有一种廉价的方法可以在程序耗尽调用堆栈时优雅地失败。我可以手动计算呼叫数,但我想要一种更优雅、更强大的方式来实现这一点。

是否可以使用稳定的 Rust 确定当前的调用堆栈深度?

我能找到的唯一选择是:

  1. 遵循ASM中的堆栈,但它要求不稳定且不可移植。
  2. 使用 GNU libc 扩展(回溯)。然而,回溯太浪费而且也不标准。

recursion callstack rust

6
推荐指数
1
解决办法
1130
查看次数

如何使用另一个切片作为分隔符来分割切片?

[T]标准库是否提供了一种使用相同类型的另一个切片作为分隔符来分割切片的方法?该库的文档列出了对单元素分隔符而不是切片进行操作的方法。

例如:使用5 个u64整数作为分隔符分割的切片将产生两个切片和。[1u64, 4u64, 0u64, 0u64, 8u64][0u64, 0u64][1u64, 4u64][8u64]

rust

5
推荐指数
1
解决办法
629
查看次数

包装箱是否共享公共依赖关系的公共静态变量?

给出三个板条箱,其中两个板条箱依赖于第三个版本的一个版本,第三个板条箱将可变静态变量作为其API的一部分.

是否会对全局反映其中一个依赖包装箱对静态变量的修改?Rust是否提供了控制此行为的方法?

rust

3
推荐指数
1
解决办法
92
查看次数

如何在 Rust 中根据目标字长有条件地编译代码?

在 x86 系统上,它通常是 32 位字。在 x86_64 上,它是 64 位。如何使用该值来有条件地编译代码?

该参考文献列出了一些公开的属性#[cfg()],但字号似乎不是公开的属性之一。

rust

3
推荐指数
1
解决办法
974
查看次数

标签 统计

rust ×8

callstack ×1

enums ×1

ffi ×1

multithreading ×1

recursion ×1

rust-cargo ×1