Allow documentation on fields.
ticki opened this issue · 6 comments
/// A page management error.
enum Error {
/// No clusters left in the freelist.
///
/// This is the equivalent to OOM, but with disk space.
OutOfClusters {
description("Out of free clusters.")
}
/// A page checksum did not match.
///
/// The checksum of the data and the checksum stored in the page pointer did not match.
///
/// This indicates some form of data corruption in the sector storing the page.
PageChecksumMismatch {
/// The page with the mismatching checksum.
page: page::Pointer,
/// The actual checksum of the page.
found: u32,
} {
display("Mismatching checksums in {} - expected {:x}, found {:x}.",
page, page.checksum, found)
description("Mismatching checksum in page.")
}
}
gives error
error: expected ident, found #
--> /home/andy/code/tfs/src/io/alloc.rs:22:13
|
22 | /// The page with the mismatching checksum.
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The issue seems to be that it doesn't respond to metadata attributes on fields, which has the consequence that #[doc = "blah"]
doesn't work.
I've tried to implement it here, but the code is really messy, and I am having a hard time following it, so it ends up in an error currently, however I suspect it is almost in goal.
I think implementation should be similar to #30, except we don't need these attributes in match
statements. Your one looks fine, but I haven't tested it yet.
By the way, this feature and #30 may conflict somehow (both work on attributes on variants but the attributes should be propagated in different ways). This is also the reason why I haven't applied #30. Hadn't checked if the conflict is real, though.
Oh. It's not a replacement, but a related pr. nvm