3
我正在實施一個程序宏,我需要向外部提供我自己的結構。我需要爲我的結構實施quote::ToTokens
特徵,但我不明白。我試過這段代碼,但沒有成功。該代碼編譯,但它是無效的:如何爲枚舉實現quote :: ToTokens?
#[derive(Debug, Serialize, Clone)]
pub enum Enum {
A,
B,
}
impl quote::ToTokens for Enum {
fn to_tokens(&self, tokens: &mut quote::Tokens) {
tokens.append("Enum::B");
}
}
的quote::ToTokens
example沒有解釋這一點。
如果我們有 「用枚舉爲E;」在我們的代碼中,或者我們甚至沒有提供'use',所以它必須預先加上「cratename ::」?就我個人而言,我認爲必須有一種方法來獲取所需項目的「完全限定名稱」。附:我的問題意味着你的答案中的代碼也是不正確的:) –
也許你應該總是使用完全限定的名字,包括箱子,只是爲了安全起見。雖然這很難看。我會更新答案。 –
你可以在函數中使用它,那麼你只需要在impl和use中自己定義它。 – Kroltan