Skip to content

Commit

Permalink
Copy a new version of the generate_guide! macro (#822)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonasbb authored Feb 20, 2025
2 parents ec57d5e + 4d7bea0 commit e14bbc5
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
7 changes: 0 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions serde_with/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ std = ["alloc", "serde/std", "chrono_0_4?/clock", "chrono_0_4?/std", "indexmap_1

## The `guide` feature enables inclusion of this user guide.
## The feature only changes the rustdoc output and enables no other effects.
guide = ["dep:doc-comment", "dep:document-features", "macros", "std"]
guide = ["dep:document-features", "macros", "std"]

#! # Features
#!
Expand Down Expand Up @@ -129,7 +129,6 @@ time_0_3 = ["dep:time_0_3"]
[dependencies]
base64 = { version = "0.22.1", optional = true, default-features = false }
chrono_0_4 = { package = "chrono", version = "0.4.20", optional = true, default-features = false, features = ["serde"] }
doc-comment = { version = "0.3.3", optional = true }
document-features = { version = "0.2.7", optional = true }
hashbrown_0_14 = { package = "hashbrown", version = "0.14.0", optional = true, default-features = false, features = ["serde"] }
hashbrown_0_15 = { package = "hashbrown", version = "0.15.0", optional = true, default-features = false, features = ["serde"] }
Expand Down
26 changes: 17 additions & 9 deletions serde_with/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -328,13 +328,10 @@ pub mod with_suffix;

// Taken from shepmaster/snafu
// Originally licensed as MIT+Apache 2
// https://github.com/shepmaster/snafu/blob/fd37d79d4531ed1d3eebffad0d658928eb860cfe/src/lib.rs#L121-L165
// https://github.com/shepmaster/snafu/blob/90991b609e8928ceebf7df1b040408539d21adda/src/lib.rs#L343-L376
#[cfg(feature = "guide")]
#[allow(unused_macro_rules)]
macro_rules! generate_guide {
(pub mod $name:ident; $($rest:tt)*) => {
generate_guide!(@gen ".", pub mod $name { } $($rest)*);
};
(pub mod $name:ident { $($children:tt)* } $($rest:tt)*) => {
generate_guide!(@gen ".", pub mod $name { $($children)* } $($rest)*);
};
Expand All @@ -343,16 +340,27 @@ macro_rules! generate_guide {
generate_guide!(@gen $prefix, pub mod $name { } $($rest)*);
};
(@gen $prefix:expr, @code pub mod $name:ident; $($rest:tt)*) => {
#[cfg(feature = "guide")]
pub mod $name;

#[cfg(not(feature = "guide"))]
/// Not currently built; please add the `guide` feature flag.
pub mod $name {}

generate_guide!(@gen $prefix, $($rest)*);
};
(@gen $prefix:expr, pub mod $name:ident { $($children:tt)* } $($rest:tt)*) => {
doc_comment::doc_comment! {
include_str!(concat!($prefix, "/", stringify!($name), ".md")),
pub mod $name {
generate_guide!(@gen concat!($prefix, "/", stringify!($name)), $($children)*);
}
#[cfg(feature = "guide")]
#[doc = include_str!(concat!($prefix, "/", stringify!($name), ".md"))]
pub mod $name {
generate_guide!(@gen concat!($prefix, "/", stringify!($name)), $($children)*);
}
#[cfg(not(feature = "guide"))]
/// Not currently built; please add the `guide` feature flag.
pub mod $name {
generate_guide!(@gen concat!($prefix, "/", stringify!($name)), $($children)*);
}

generate_guide!(@gen $prefix, $($rest)*);
};
}
Expand Down

0 comments on commit e14bbc5

Please # to comment.