2017-09-15 28 views
0

我想使用const C的IMPL R6502內無需指定範圍R6502::訪問相關的常數項沒有範圍限定

use bit::BitIndex; 

pub struct R6502 { 
    pub sr: u8, // status register 
} 

impl R6502 { 
    // status flag indexs 
    const C: usize = 0; 
    const Z: usize = 1; 

    pub fn step(&mut self) { 
     self.sr.set_bit(R6502::C, false); // this is what I have to do 
     self.sr.set_bit(C, false); // this is what I want to do 
    } 
} 

我試圖使用self::Cuse只得到錯誤的一些其他組合關於未找到的項目。

+0

你說'self :: C'不起作用,但'Self :: C'確實。 –

+0

我得到未解決的導入。我使用的是1.20 –

+0

雖然在操場上有作品:https://play.rust-lang.org/?gist=be07c2cf9daa912c6e988cb48c7ec58e&version=stable –

回答

2

use在Rust 1.20中沒有實現相關的常量。我還沒有找到這個問題,所以你可以在Rust GitHub倉庫中創建你自己的問題。

與此同時,您可以使用類型別名來減少字符數。

type P = R6502; 
self.sr.set_bit(P::C, false); 
+0

非常感謝您的回答!我也很欣賞解決方法。我會考慮爲此創建一個問題。 –