Ho un paio di macro per ridurre boilerplate momento di definire alcune tuple-struct della forma:Generazione di documentazione nelle macro
macro_rules! new_type (($name:ident, $bytes:expr) => (
pub struct $name(pub [u8; $bytes]);
// some common operations on $name
));
Tuttavia, vorrei anche documentare queste nuove strutture. La cosa migliore sarebbe se potessi scrivere la mia documentazione subito prima della mia macro invocazione.
/// A certain type
new_type!(CertainType, 42);
Tuttavia, ruggine non genererà documentazione per CertainType
quando questo accade.
Altro (non come flessibile) alternativa sarebbe quella di fare qualcosa di simile:
macro_rules! new_type (($name:ident, $bytes:expr) => (
/// Some more generic documentation for $name
pub struct $name(pub [u8; $bytes]);
// some common operations on $name
));
Tuttavia, quando si fa che il sistema di macro ruggine non si espande il token $name
nel commento documentazione. L'unica alternativa rimasta è scrivere una documentazione molto generica nella macro, ma ciò porterebbe a documentare la mia libreria molto peggio di quanto potrebbe essere.
Quali sono i tuoi consigli per la gestione di questo? La soluzione migliore per me sarebbe quella di essere in grado di scrivere documentazione specifica per ogni invocazione di macro, ma se ciò non fosse possibile sarei grato per suggerimenti su come espandere i token nei commenti della documentazione.
La documentazione generata non ha valore informativo, perché è generata. creare una sezione nella documentazione che descriva il modello, ma non gonfiare la documentazione. – Arne