我有一个类型T(T实现Clone,但不是Copy)和一个声明为struct N(T)的Newtype.在给定引用&T的情况下,我如何才能在不克隆&T的情况下将其包装到&N中,从而首先获得拥有的T

推荐答案

没有外部 crate ,如果没有unsafe个,这是不可能的.

不过,我还是推荐使用ref-cast箱的. 这是dtolnay出版的一个箱子,他是一些最大的铁 rust 箱子的作者,为解决这个问题提供了安全的抽象.

Rust相关问答推荐

如何定义使用拥有的字符串并返回拥有的Split的Rust函数?

将大小为零的类型实例存储到空指针中

为什么reqwest以文本形式下载二进制文件?

程序在频道RX上挂起

对于rustc编译的RISC-V32IM二进制文件,llvm objdump没有输出

为什么不';t(&;mut-iter).take(n)取得iter的所有权?

了解Rust';s特征对象和不同函数签名中的生存期注释

在 Rust 中,在需要引用 self 的 struct 体方法中使用闭包作为 while 循环条件

为什么我必须使用 PhantomData?在这种情况下它在做什么?

当我try 使用 SKI 演算中的S I I实现递归时,为什么 Rust 会失败?

使用 pyo3 将 Rust 转换为 Python 自定义类型

在 Rust 中,为什么 10 个字符的字符串的 size_of_val() 返回 24 个字节?

当推送到 HashMap 中的 Vector 时,类型 `()` 无法取消引用

闭包返回类型的生命周期规范

Rust 中指向自身的引用如何工作?

为什么Rust编译器会忽略模板参数应具有静态生命周期?

从 Axum IntoResponse 获取请求标头

为什么在 macOS / iOS 上切换 WiFi 网络时 reqwest 响应会挂起?

Rust 中函数的类型同义词

改变不实现克隆的 dioxus UseState struct