如何从Rust std库导入和引用枚举类型?

我试图使用std::sync::atomics模块中的Ordering枚举.

use std::sync::atomics::AtomicBool;
use std::sync::atomics::Ordering;

// error unresolved import: there is no `Relaxed` in `std::sync::atomics::Ordering`
// use std::sync::atomics::Ordering::Relaxed;  

fn main() {
    let mut ab = AtomicBool::new(false);
    let val1 = ab.load(Ordering::Relaxed); // error: unresolved import:
                                           // there is no `Relaxed` in `std::sync::atomics::Ordering`
    println!("{:?}", val1);

    ab.store(true, Ordering.Relaxed);      // error: unresolved name `Ordering`
    let val2 = ab.load(Ordering(Relaxed)); // error: unresolved name `Relaxed`
    println!("{:?}", val2);    
}

我目前使用的是Rust v.0.9.

推荐答案

编者按:这个答案早于Rust 1.0,不适用于Rust 1.0.

枚举变量的范围不在枚举内;因此,他们是std::sync::atomics::Relaxed人;C

作用域枚举变量为the subject of issue 10090.

Rust相关问答推荐

有条件默认实现

如何在rust中有条件地分配变量?

基于对vec值的引用从该值中删除该值

当rust中不存在文件或目录时,std::FS::File::Create().unwire()会抛出错误

有没有可能让泛型Rust T总是堆分配的?

AXUM一路由多个不包括URL的参数类型

如何将生存期参数添加到框<>;具有dyn类型别名

为什么HashMap::get和HashMap::entry使用不同类型的密钥?

有没有一种方法可以创建一个闭包来计算Rust中具有随机系数的n次多项式?

如何获取光标下的像素 colored颜色 ?

在为第三方 struct 实现第三方特征时避免包装器的任何方法

为什么我需要 to_string 函数的参考?

Windows 上 ndarray-linalg 与 mkl-stats 的链接时间错误

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

使用 serde::from_value 反序列化为泛型类型

是否可以在不直接重复的情况下为许多特定类型实现一个函数?

我如何取消转义,在 Rust 中多次转义的字符串?

内部值发生变化时 Rc 的行为

以 `static` 为前缀的闭包是什么意思?我什么时候使用它?

list 中没有指定目标 - 必须存在 src/lib.rs、src/main.rs、[lib] 部分或 [[bin]] 部分