rust: sync: make doctests compilable/testable
Rust documentation tests are going to be build/run-tested with the KUnit integration added in a future patch, thus update them to make them compilable/testable so that we may start enforcing it. Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com> Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: David Gow <davidgow@google.com> Signed-off-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
cf36a495f0
commit
bfa7dff036
|
@ -73,6 +73,7 @@ mod std_vendor;
|
|||
/// assert_eq!(cloned.b, 20);
|
||||
///
|
||||
/// // The refcount drops to zero when `cloned` goes out of scope, and the memory is freed.
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
///
|
||||
/// Using `Arc<T>` as the type of `self`:
|
||||
|
@ -98,6 +99,7 @@ mod std_vendor;
|
|||
/// let obj = Arc::try_new(Example { a: 10, b: 20 })?;
|
||||
/// obj.use_reference();
|
||||
/// obj.take_over();
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
///
|
||||
/// Coercion from `Arc<Example>` to `Arc<dyn MyTrait>`:
|
||||
|
@ -121,6 +123,7 @@ mod std_vendor;
|
|||
///
|
||||
/// // `coerced` has type `Arc<dyn MyTrait>`.
|
||||
/// let coerced: Arc<dyn MyTrait> = obj;
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
pub struct Arc<T: ?Sized> {
|
||||
ptr: NonNull<ArcInner<T>>,
|
||||
|
@ -337,7 +340,7 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
|
|||
/// # Example
|
||||
///
|
||||
/// ```
|
||||
/// use crate::sync::{Arc, ArcBorrow};
|
||||
/// use kernel::sync::{Arc, ArcBorrow};
|
||||
///
|
||||
/// struct Example;
|
||||
///
|
||||
|
@ -350,12 +353,13 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
|
|||
///
|
||||
/// // Assert that both `obj` and `cloned` point to the same underlying object.
|
||||
/// assert!(core::ptr::eq(&*obj, &*cloned));
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
///
|
||||
/// Using `ArcBorrow<T>` as the type of `self`:
|
||||
///
|
||||
/// ```
|
||||
/// use crate::sync::{Arc, ArcBorrow};
|
||||
/// use kernel::sync::{Arc, ArcBorrow};
|
||||
///
|
||||
/// struct Example {
|
||||
/// a: u32,
|
||||
|
@ -370,6 +374,7 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> {
|
|||
///
|
||||
/// let obj = Arc::try_new(Example { a: 10, b: 20 })?;
|
||||
/// obj.as_arc_borrow().use_reference();
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
pub struct ArcBorrow<'a, T: ?Sized + 'a> {
|
||||
inner: NonNull<ArcInner<T>>,
|
||||
|
|
|
@ -63,6 +63,7 @@ macro_rules! new_mutex {
|
|||
/// assert_eq!(e.c, 10);
|
||||
/// assert_eq!(e.d.lock().a, 20);
|
||||
/// assert_eq!(e.d.lock().b, 30);
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
///
|
||||
/// The following example shows how to use interior mutability to modify the contents of a struct
|
||||
|
|
|
@ -61,6 +61,7 @@ macro_rules! new_spinlock {
|
|||
/// assert_eq!(e.c, 10);
|
||||
/// assert_eq!(e.d.lock().a, 20);
|
||||
/// assert_eq!(e.d.lock().b, 30);
|
||||
/// # Ok::<(), Error>(())
|
||||
/// ```
|
||||
///
|
||||
/// The following example shows how to use interior mutability to modify the contents of a struct
|
||||
|
|
Loading…
Reference in New Issue