//! [`pin_init!`]. The syntax is almost the same as normal `struct` initializers. The difference is
//! that you need to write `<-` instead of `:` for fields that you want to initialize in-place.
//!
-//! ```rust,ignore
+//! ```rust
//! # #![expect(clippy::disallowed_names)]
//! # #![feature(allocator_api)]
//! # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
//! `foo` now is of the type [`impl PinInit<Foo>`]. We can now use any smart pointer that we like
//! (or just the stack) to actually initialize a `Foo`:
//!
-//! ```rust,ignore
+//! ```rust
//! # #![expect(clippy::disallowed_names)]
//! # #![feature(allocator_api)]
//! # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
//! Many types that use this library supply a function/macro that returns an initializer, because
//! the above method only works for types where you can access the fields.
//!
-//! ```rust,ignore
+//! ```rust
//! # #![feature(allocator_api)]
//! # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
//! # use pin_init::*;
//!
//! To declare an init macro/function you just return an [`impl PinInit<T, E>`]:
//!
-//! ```rust,ignore
+//! ```rust
//! # #![feature(allocator_api)]
//! # use pin_init::*;
//! # #[path = "../examples/error.rs"] mod error; use error::Error;
//! - you may assume that `slot` will stay pinned even after the closure returns until `drop` of
//! `slot` gets called.
//!
-//! ```rust,ignore
+//! ```rust
//! # #![feature(extern_types)]
//! use pin_init::{pin_data, pinned_drop, PinInit, PinnedDrop, pin_init_from_closure};
//! use core::{
///
/// # Examples
///
-/// ```ignore
+/// ```
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// use pin_init::pin_data;
/// }
/// ```
///
-/// ```ignore
+/// ```
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// # mod bindings { pub struct info; pub unsafe fn destroy_info(_: *mut info) {} }
///
/// # Examples
///
-/// ```ignore
+/// ```
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// # mod bindings { pub struct info; pub unsafe fn destroy_info(_: *mut info) {} }
///
/// # Examples
///
-/// ```ignore
+/// ```
/// use pin_init::Zeroable;
///
/// #[derive(Zeroable)]
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # #![expect(clippy::disallowed_names)]
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # #![expect(clippy::disallowed_names)]
/// # #![feature(allocator_api)]
/// # #[path = "../examples/error.rs"] mod error; use error::Error;
/// println!("a: {}", &*foo.a.lock());
/// ```
///
-/// ```rust,ignore
+/// ```rust
/// # #![expect(clippy::disallowed_names)]
/// # #![feature(allocator_api)]
/// # #[path = "../examples/error.rs"] mod error; use error::Error;
///
/// The syntax is almost identical to that of a normal `struct` initializer:
///
-/// ```rust,ignore
+/// ```rust
/// # use pin_init::*;
/// # use core::pin::Pin;
/// #[pin_data]
///
/// To create an initializer function, simply declare it like this:
///
-/// ```rust,ignore
+/// ```rust
/// # use pin_init::*;
/// # use core::pin::Pin;
/// # #[pin_data]
///
/// Users of `Foo` can now create it like this:
///
-/// ```rust,ignore
+/// ```rust
/// # #![expect(clippy::disallowed_names)]
/// # use pin_init::*;
/// # use core::pin::Pin;
///
/// They can also easily embed it into their own `struct`s:
///
-/// ```rust,ignore
+/// ```rust
/// # use pin_init::*;
/// # use core::pin::Pin;
/// # #[pin_data]
///
/// For instance:
///
-/// ```rust,ignore
+/// ```rust
/// # use pin_init::*;
/// # use core::{ptr::addr_of_mut, marker::PhantomPinned};
/// #[pin_data]
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # #![feature(allocator_api)]
/// # #[path = "../examples/error.rs"] mod error; use error::Error;
/// use pin_init::{pin_data, try_pin_init, PinInit, InPlaceInit, zeroed};
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # #![feature(allocator_api)]
/// # use core::alloc::AllocError;
/// # use pin_init::InPlaceInit;
/// # Example
///
/// This will succeed:
-/// ```ignore
+/// ```
/// use pin_init::{pin_data, assert_pinned};
///
/// #[pin_data]
/// ```
///
/// This will fail:
-/// ```compile_fail,ignore
+/// ```compile_fail
/// use pin_init::{pin_data, assert_pinned};
///
/// #[pin_data]
/// Some uses of the macro may trigger the `can't use generic parameters from outer item` error. To
/// work around this, you may pass the `inline` parameter to the macro. The `inline` parameter can
/// only be used when the macro is invoked from a function body.
-/// ```ignore
+/// ```
/// # use core::pin::Pin;
/// use pin_init::{pin_data, assert_pinned};
///
///
/// # Examples
///
- /// ```rust,ignore
+ /// ```rust
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// # use pin_init::*;
///
/// # Examples
///
- /// ```rust,ignore
+ /// ```rust
/// # #![expect(clippy::disallowed_names)]
/// use pin_init::{init, zeroed, Init};
///
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # use pin_init::*;
/// use pin_init::init_array_from_fn;
/// let array: Box<[usize; 1_000]> = Box::init(init_array_from_fn(|i| i)).unwrap();
///
/// # Examples
///
-/// ```rust,ignore
+/// ```rust
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// # use pin_init::*;
///
/// Use [`pinned_drop`] to implement this trait safely:
///
-/// ```rust,ignore
+/// ```rust
/// # #![feature(allocator_api)]
/// # #[path = "../examples/mutex.rs"] mod mutex; use mutex::*;
/// # use pin_init::*;