我不小心把我的私人箱子发给了crates.io.我该如何删除它?我检查了文档,但似乎没有办法删除已发布的包.
我有板条箱A和B。A依赖于B并且B有一个名为 的功能some_feature。
我可以B通过运行来使用 Cargo进行构建cargo build --features=some_feature,但是如何设置相同的功能,以便在编译时A可以选择启用或禁用some_feature底层板条箱?BA
结构定义为:
struct Node {
set: HashSet<usize>,
// other fields omitted
}
Run Code Online (Sandbox Code Playgroud)
我必须为特征(兼容性问题)实现一个函数,该函数需要将集合中的所有元素作为切片返回。
我知道以下功能将无法正常工作:
impl Node {
pub fn set_slice(&self) -> &[usize] {
let elems: Vec<_> = self.set.iter().cloned().collect();
&elems[..]
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:
struct Node {
set: HashSet<usize>,
// other fields omitted
}
Run Code Online (Sandbox Code Playgroud)
我知道这个要求听起来很奇怪。尽管为什么我必须这样做,是否有任何“好的”方式来实现这一目标?
如果有可能,我想保留该HashSet容器以进行O(1)查找,并且我不想引入新的struct成员以节省内存。
我想别名类型uint到u32默认,但一个标志可以编辑将其改为期间设置usize.代码应该是这样的:
#[cfg(uint='u32') || default]
type uint = u32;
#[cfg(uint='usize')]
type uint = u64;
Run Code Online (Sandbox Code Playgroud)
当我编译时,我可以使用cargo build --uint=usize.我应该怎么做才能使这项工作?