使用 #![no_std] 时如何导出 Copy?
How do I derive Copy when using #![no_std]?
我正在做一个使用 #![no_std]
的项目,我希望能够导出有用的特征,例如 Copy
和 Clone
。我尝试将 pub use core::prelude::*;
添加到项目根目录和我实际想在其中使用它的文件。但是,任何 #[derive(Copy)]
的尝试都会导致
error: attempt to implement a nonexistent trait std::marker::Copy
我不明白我做错了什么。正在尝试添加
use core::marker::Copy
产生这个:
error: a type named Copy has already been imported in this module
#[derive] 在 #![no_std] 中损坏 pub mod std {pub use core::*;}
将修复它,它将 ::std::
的实例替换为 ::core::
允许您派生特征编译器认为 std
来自 core
您始终可以使用 impl
:
实现标记特征
impl Copy for MyStruct {}
它只适用于标记特征,Clone
和其他类似特征仍然需要 deriving
。
我正在做一个使用 #![no_std]
的项目,我希望能够导出有用的特征,例如 Copy
和 Clone
。我尝试将 pub use core::prelude::*;
添加到项目根目录和我实际想在其中使用它的文件。但是,任何 #[derive(Copy)]
的尝试都会导致
error: attempt to implement a nonexistent trait std::marker::Copy
我不明白我做错了什么。正在尝试添加
use core::marker::Copy
产生这个:
error: a type named Copy has already been imported in this module
#[derive] 在 #![no_std] 中损坏 pub mod std {pub use core::*;}
将修复它,它将 ::std::
的实例替换为 ::core::
允许您派生特征编译器认为 std
来自 core
您始终可以使用 impl
:
impl Copy for MyStruct {}
它只适用于标记特征,Clone
和其他类似特征仍然需要 deriving
。