3
私は手続き型マクロを実装しており、自分自身の構造を外部に提供する必要があります。私はquote::ToTokens
私の構造の特性を実装する必要がありますが、私はどのように理解できません。私はこのコードを試しましたが、成功しませんでした。このコードはコンパイル可能であるが、それは有効ではありません。引用符:: 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 ::"を前置する必要がありますか?個人的には、要求されたアイテムに対して '完全修飾名'を取得する方法がなければならないと思います。 P.S.私の質問はあなたの答えのあなたのコードも間違っていることを暗示しています:) –
恐らくあなたは常に安全のためにクレートを含む完全修飾名を使うべきです。しかし、それはかなり醜いです。私は答えを更新します。 –
関数内で関数を一度 '使用する 'ことができます。そして、それをimplと' use'自体でFQNするだけです。 – Kroltan