2014-01-24 5 views
7

Rust std lib에서 enum 유형을 가져오고 참조하는 방법은 무엇입니까?녹에서 열거 형을 가져오고 참조하는 방법은 무엇입니까?

std::sync::atomics 모듈의 Ordering 열거 형을 사용하려고합니다. 나의 시도는 지금까지 모두 실패로 끝났다있다 : 나는 현재 녹 V를 사용하고

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);  
} 

0.9..

답변

8

열거 형은 enum 내에서 범위가 지정되지 않습니다. 따라서 이들은 std::sync::atomics::Relaxed, &c입니다.

범위가 지정된 enum 변종은 https://github.com/mozilla/rust/issues/10090의 제목이며, 현재 결정은 1.0보다 먼저 나오지 않을 것이라는 결정입니다. 이제

4

열거

pub use self::Foo::{A, B}; 

pub enum Foo { 
    A, 
    B 
} 

fn main() { 
    let a = A; 
} 

또는

pub enum Foo { 
    A, 
    B 
} 

fn main() { 
    let a = Foo::A; 
} 
처럼 사용할 수 있어야합니다 (17.11.14이 후 야간 빌드)
관련 문제