Mam kilka makr w celu zmniejszenia boilerplate przy definiowaniu niektórych krotka-konstrukcjom formularza:Generowanie dokumentacji w makr
macro_rules! new_type (($name:ident, $bytes:expr) => (
pub struct $name(pub [u8; $bytes]);
// some common operations on $name
));
Jednak chciałbym również, aby dokumentować te nowe konstrukcjom. Najlepiej byłoby, gdybym mógł napisać moją dokumentację tuż przed inwokacją makr.
/// A certain type
new_type!(CertainType, 42);
Jednak Rust nie będzie generować dokumentację dla CertainType
kiedy to nastąpi.
Innym (nie tak elastyczne) Alternatywą byłoby zrobić coś takiego:
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
));
Jednak, gdy robi, że system makro Rust nie rozszerza tokena $name
w komentarzu dokumentacji. Pozostaje nam tylko napisać bardzo ogólną dokumentację w makrze, ale to doprowadziłoby do tego, że moja biblioteka jest dużo gorsza, niż mogłaby być.
Jakie są Twoje zalecenia dotyczące postępowania z tym? Najlepszym rozwiązaniem dla mnie byłaby możliwość napisania konkretnej dokumentacji dla każdego wywołania makra, ale jeśli to nie jest możliwe, byłbym wdzięczny za wskazówki, jak rozszerzyć tokeny w komentarzach do dokumentacji.
wygenerowana dokumentacja nie ma wartości informacyjnej, ponieważ została wygenerowana. utworzyć sekcję w dokumentacji opisującej schemat, ale nie powiększaj dokumentacji. – Arne