diff --git a/Cargo.lock b/Cargo.lock index 23a9489b..14405eb6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -228,12 +228,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "document-features" version = "0.2.7" @@ -1010,7 +1004,6 @@ version = "3.12.0" dependencies = [ "base64 0.22.1", "chrono", - "doc-comment", "document-features", "expect-test", "fnv", diff --git a/serde_with/Cargo.toml b/serde_with/Cargo.toml index e605abfb..91a47b0e 100644 --- a/serde_with/Cargo.toml +++ b/serde_with/Cargo.toml @@ -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 #! @@ -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"] } diff --git a/serde_with/src/lib.rs b/serde_with/src/lib.rs index 28252a0d..74a227b8 100644 --- a/serde_with/src/lib.rs +++ b/serde_with/src/lib.rs @@ -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)*); }; @@ -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)*); }; }