diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef2a124b2..42ac036fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -140,7 +140,7 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@nightly - uses: Swatinem/rust-cache@v2 - - run: cargo doc --lib --no-deps --document-private-items + - run: cargo doc --all-features --lib --no-deps --document-private-items env: RUSTFLAGS: --cfg doc_cfg RUSTDOCFLAGS: --cfg doc_cfg -Dwarnings diff --git a/crates/musli-core/src/de/mod.rs b/crates/musli-core/src/de/mod.rs index de3034c15..6f1092dff 100644 --- a/crates/musli-core/src/de/mod.rs +++ b/crates/musli-core/src/de/mod.rs @@ -22,24 +22,6 @@ //! } //! ``` -/// Derive which automatically implements the [`Decode` trait]. -/// -/// See the [`derives` module] for detailed documentation. -/// -/// [`derives` module]: -/// [`Decode` trait]: trait@Decode -/// -/// # Examples -/// -/// ``` -/// use musli::Decode; -/// -/// #[derive(Decode)] -/// struct MyType { -/// data: [u8; 128], -/// } -/// ``` -#[doc(inline)] pub use musli_macros::Decode; mod as_decoder; diff --git a/crates/musli-core/src/en/mod.rs b/crates/musli-core/src/en/mod.rs index f1376f859..d377a0de1 100644 --- a/crates/musli-core/src/en/mod.rs +++ b/crates/musli-core/src/en/mod.rs @@ -22,24 +22,6 @@ //! } //! ``` -/// Derive which automatically implements the [`Encode` trait]. -/// -/// See the [`derives` module] for detailed documentation. -/// -/// [`derives` module]: -/// [`Encode` trait]: trait@Encode -/// -/// # Examples -/// -/// ``` -/// use musli::Encode; -/// -/// #[derive(Encode)] -/// struct MyType { -/// data: [u8; 128], -/// } -/// ``` -#[doc(inline)] pub use musli_macros::Encode; mod encode; diff --git a/crates/musli-macros/Cargo.toml b/crates/musli-macros/Cargo.toml index b6c44e66c..0abd4243b 100644 --- a/crates/musli-macros/Cargo.toml +++ b/crates/musli-macros/Cargo.toml @@ -26,3 +26,6 @@ verbose = [] proc-macro2 = "1.0.79" quote = "1.0.35" syn = { version = "2.0.55", features = ["full", "extra-traits"] } + +[dev-dependencies] +musli = { version = "=0.0.120", path = "../musli" } diff --git a/crates/musli-macros/src/lib.rs b/crates/musli-macros/src/lib.rs index 1e443f0f1..8455fcc77 100644 --- a/crates/musli-macros/src/lib.rs +++ b/crates/musli-macros/src/lib.rs @@ -22,11 +22,45 @@ use proc_macro::TokenStream; const CRATE_DEFAULT: &str = "musli"; +/// Derive which automatically implements the [`Encode` trait]. +/// +/// See the [`derives` module] for detailed documentation. +/// +/// [`derives` module]: +/// [`Encode` trait]: +/// +/// # Examples +/// +/// ``` +/// use musli::Encode; +/// +/// #[derive(Encode)] +/// struct MyType { +/// data: [u8; 128], +/// } +/// ``` #[proc_macro_derive(Encode, attributes(musli))] pub fn musli_derive_encode(input: TokenStream) -> TokenStream { derive_encode(input, CRATE_DEFAULT) } +/// Derive which automatically implements the [`Decode` trait]. +/// +/// See the [`derives` module] for detailed documentation. +/// +/// [`derives` module]: +/// [`Decode` trait]: +/// +/// # Examples +/// +/// ``` +/// use musli::Decode; +/// +/// #[derive(Decode)] +/// struct MyType { +/// data: [u8; 128], +/// } +/// ``` #[proc_macro_derive(Decode, attributes(musli))] pub fn musli_derive_decode(input: TokenStream) -> TokenStream { derive_decode(input, CRATE_DEFAULT) diff --git a/crates/musli/src/descriptive/mod.rs b/crates/musli/src/descriptive/mod.rs index a1c9fd1e6..6356795c9 100644 --- a/crates/musli/src/descriptive/mod.rs +++ b/crates/musli/src/descriptive/mod.rs @@ -116,7 +116,7 @@ pub use self::encoding::to_vec; #[doc(inline)] pub use self::encoding::to_writer; #[doc(inline)] -pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, OPTIONS}; +pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, DEFAULT, OPTIONS}; #[doc(inline)] pub use self::error::Error; diff --git a/crates/musli/src/json/mod.rs b/crates/musli/src/json/mod.rs index 0e489a9f1..d737db338 100644 --- a/crates/musli/src/json/mod.rs +++ b/crates/musli/src/json/mod.rs @@ -59,7 +59,7 @@ pub type Result = core::result::Result; #[doc(inline)] pub use self::encoding::to_writer; #[doc(inline)] -pub use self::encoding::{decode, encode, from_slice, from_str, to_fixed_bytes, Encoding}; +pub use self::encoding::{decode, encode, from_slice, from_str, to_fixed_bytes, Encoding, DEFAULT}; #[cfg(feature = "alloc")] #[cfg_attr(doc_cfg, doc(cfg(feature = "alloc")))] #[doc(inline)] diff --git a/crates/musli/src/macros.rs b/crates/musli/src/macros.rs index 31cae9f9a..f741c5da0 100644 --- a/crates/musli/src/macros.rs +++ b/crates/musli/src/macros.rs @@ -439,6 +439,7 @@ macro_rules! rt { /// This is used to test when there is a decode assymmetry, such as the decoded /// value does not match the encoded one due to things such as skipped fields. #[cfg(feature = "test")] +#[doc(hidden)] #[macro_export] macro_rules! assert_decode_eq { ($what:ident, $expr:expr, $expected:expr $(, $($extra:tt)*)?) => {{ @@ -457,6 +458,7 @@ macro_rules! assert_decode_eq { #[cfg(feature = "test")] #[macro_export] +#[doc(hidden)] macro_rules! extra { ($expr:expr $(,)?) => {}; @@ -474,6 +476,7 @@ macro_rules! extra { } #[cfg(feature = "test")] +#[doc(hidden)] #[macro_export] macro_rules! test_matrix { (full, $call:path) => { diff --git a/crates/musli/src/storage/mod.rs b/crates/musli/src/storage/mod.rs index f3e6f80db..60f14329f 100644 --- a/crates/musli/src/storage/mod.rs +++ b/crates/musli/src/storage/mod.rs @@ -116,6 +116,6 @@ pub use self::encoding::to_vec; #[doc(inline)] pub use self::encoding::to_writer; #[doc(inline)] -pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, OPTIONS}; +pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, DEFAULT, OPTIONS}; #[doc(inline)] pub use self::error::Error; diff --git a/crates/musli/src/wire/mod.rs b/crates/musli/src/wire/mod.rs index 54c719457..8b613024d 100644 --- a/crates/musli/src/wire/mod.rs +++ b/crates/musli/src/wire/mod.rs @@ -114,7 +114,7 @@ pub use self::encoding::to_vec; #[cfg_attr(doc_cfg, doc(cfg(feature = "std")))] pub use self::encoding::to_writer; #[doc(inline)] -pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, OPTIONS}; +pub use self::encoding::{decode, encode, from_slice, to_fixed_bytes, Encoding, DEFAULT, OPTIONS}; #[doc(inline)] pub use self::error::Error;