4
我在一個模塊中定義了一個宏,它工作正常。 現在,我試圖用一個例子來記錄所說的宏。 Apparently,我需要手動指定箱子線索要宏:如果在模塊中定義宏,我該如何正確編寫宏文檔?
/// ```
/// # #[macro_use] extern crate foo;
/// // Some code
/// ```
不過,現在我得到一個錯誤說:
error: an `extern crate` loading macros must be at the crate root
顯然,示例代碼在宏的模塊加載,似乎不兼容macro_use
...
我不能相信每個人都直接在根模塊中寫入宏...對吧?
這似乎在你提到的源鏈接被提及:*第二,我們需要增加我們自己的'主()'以及* 。 FWIW,這是因爲一旦你開始定義頂級項目(比如'extern crate'),doc測試工具假定你想完全控制這個例子。 – Shepmaster
而沒有main()的代碼片段無效?我們無法記錄如何編寫庫? – Gyscos
文檔塊中的代碼示例將自動編譯**並運行**。這樣做是爲了確保文檔示例保持正確,並且非常有用。要運行代碼,需要一個主要方法。因爲您正在定義頂級項目,所以不會爲您添加主要方法,正如我前面提到的。如果您不想編譯示例,則可以禁用編譯單個示例。你也可以註釋掉部分不需要展示但需要編譯的示例代碼。這些都不能記錄圖書館。 – Shepmaster