如何从Rust std lib导入和引用枚举类型?
我正在尝试使用模块中的Ordering枚举std::sync::atomics.到目前为止,我的尝试都以失败告终:
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);
}
Run Code Online (Sandbox Code Playgroud)
我目前正在使用Rust v.9.
Ser*_*zko 10
现在(17.11.14之后的每晚构建)枚举必须像
pub use self::Foo::{A, B};
pub enum Foo {
A,
B,
}
fn main() {
let a = A;
}
Run Code Online (Sandbox Code Playgroud)
要么
pub enum Foo {
A,
B,
}
fn main() {
let a = Foo::A;
}
Run Code Online (Sandbox Code Playgroud)
枚举变体不在enum中; 因此std::sync::atomics::Relaxed,&c.
Scoped枚举变体是https://github.com/mozilla/rust/issues/10090的主题,目前的决定是它们不会出现在1.0之前,如果有的话.