diff --git a/Cargo.toml b/Cargo.toml index 76b036271..0e0ee19d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,6 +38,7 @@ default-members = [ [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] diff --git a/ethers-contract/Cargo.toml b/ethers-contract/Cargo.toml index d884690d4..c0bf6e451 100644 --- a/ethers-contract/Cargo.toml +++ b/ethers-contract/Cargo.toml @@ -57,4 +57,5 @@ openssl = ["ethers-contract-abigen/openssl"] [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] diff --git a/ethers-contract/ethers-contract-abigen/Cargo.toml b/ethers-contract/ethers-contract-abigen/Cargo.toml index 4c8109791..9fb480fe2 100644 --- a/ethers-contract/ethers-contract-abigen/Cargo.toml +++ b/ethers-contract/ethers-contract-abigen/Cargo.toml @@ -43,6 +43,7 @@ getrandom = { version = "0.2", features = ["js"] } [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [features] diff --git a/ethers-contract/ethers-contract-derive/Cargo.toml b/ethers-contract/ethers-contract-derive/Cargo.toml index 90ca86205..7a7574060 100644 --- a/ethers-contract/ethers-contract-derive/Cargo.toml +++ b/ethers-contract/ethers-contract-derive/Cargo.toml @@ -30,4 +30,5 @@ eyre = "0.6" [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] diff --git a/ethers-contract/src/lib.rs b/ethers-contract/src/lib.rs index c72f7c93d..8c8474bc4 100644 --- a/ethers-contract/src/lib.rs +++ b/ethers-contract/src/lib.rs @@ -69,7 +69,8 @@ pub use once_cell::sync::Lazy; #[cfg(feature = "eip712")] pub use ethers_derive_eip712::*; -// For Abigen expansions in docs.rs builds. +// For macro expansions only, not public API. +// See: [#2235](https://github.com/gakonst/ethers-rs/pull/2235) #[doc(hidden)] #[allow(unused_extern_crates)] @@ -77,23 +78,15 @@ extern crate self as ethers_contract; #[doc(hidden)] #[allow(unused_extern_crates)] -#[cfg(docsrs)] extern crate self as ethers; #[doc(hidden)] -#[cfg(docsrs)] -pub mod core { - pub use ethers_core::*; -} - -#[doc(hidden)] -#[cfg(docsrs)] pub mod contract { pub use crate::*; } #[doc(hidden)] -#[cfg(docsrs)] -pub mod providers { - pub use ethers_providers::*; -} +pub use ethers_core as core; + +#[doc(hidden)] +pub use ethers_providers as providers; diff --git a/ethers-core/Cargo.toml b/ethers-core/Cargo.toml index 8be4b4d88..147eb8741 100644 --- a/ethers-core/Cargo.toml +++ b/ethers-core/Cargo.toml @@ -66,4 +66,5 @@ macros = ["syn", "cargo_metadata", "once_cell"] [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] diff --git a/ethers-etherscan/Cargo.toml b/ethers-etherscan/Cargo.toml index 827257b14..44d687822 100644 --- a/ethers-etherscan/Cargo.toml +++ b/ethers-etherscan/Cargo.toml @@ -42,6 +42,7 @@ tracing-subscriber = { version = "0.3", default-features = false, features = ["e [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [features] diff --git a/ethers-middleware/Cargo.toml b/ethers-middleware/Cargo.toml index 382ac2dda..431577b1b 100644 --- a/ethers-middleware/Cargo.toml +++ b/ethers-middleware/Cargo.toml @@ -12,6 +12,7 @@ keywords = ["ethereum", "web3", "celo", "ethers"] [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] diff --git a/ethers-middleware/src/lib.rs b/ethers-middleware/src/lib.rs index 88aa042fe..127b83378 100644 --- a/ethers-middleware/src/lib.rs +++ b/ethers-middleware/src/lib.rs @@ -40,3 +40,19 @@ pub use timelag::TimeLag; /// [`Middleware`](ethers_providers::Middleware) in a concise way pub mod builder; pub use builder::MiddlewareBuilder; + +// For macro expansions only, not public API. +// See: [#2235](https://github.com/gakonst/ethers-rs/pull/2235) + +#[doc(hidden)] +#[allow(unused_extern_crates)] +extern crate self as ethers; + +#[doc(hidden)] +pub use ethers_contract as contract; + +#[doc(hidden)] +pub use ethers_core as core; + +#[doc(hidden)] +pub use ethers_providers as providers; diff --git a/ethers-providers/Cargo.toml b/ethers-providers/Cargo.toml index 93934cafa..601129189 100644 --- a/ethers-providers/Cargo.toml +++ b/ethers-providers/Cargo.toml @@ -12,6 +12,7 @@ keywords = ["ethereum", "web3", "celo", "ethers"] [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] diff --git a/ethers-signers/Cargo.toml b/ethers-signers/Cargo.toml index 94039a277..f90f93e78 100644 --- a/ethers-signers/Cargo.toml +++ b/ethers-signers/Cargo.toml @@ -12,6 +12,7 @@ keywords = ["ethereum", "web3", "celo", "ethers"] [package.metadata.docs.rs] all-features = true +rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [dependencies] diff --git a/src/lib.rs b/src/lib.rs index 59fc95199..8cdc5983f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -83,11 +83,6 @@ #![deny(rustdoc::broken_intra_doc_links)] #![doc(test(no_crate_inject, attr(deny(rust_2018_idioms), allow(dead_code, unused_variables))))] -// For macro expansion -#[doc(hidden)] -#[allow(unused_extern_crates)] -extern crate self as ethers; - #[doc(inline)] pub use ethers_addressbook as addressbook; #[doc(inline)] @@ -129,3 +124,8 @@ pub mod prelude { #[cfg(feature = "ethers-solc")] pub use super::solc::*; } + +// For macro expansions only, not public API. +#[doc(hidden)] +#[allow(unused_extern_crates)] +extern crate self as ethers;