Build #332637 2021-01-04T18:46:43.341294+00:00
# rustc version
rustc 1.51.0-nightly (80184183b 2021-01-03)
# docs.rs version
docsrs 0.6.0 (05d2368 2021-01-03)
# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/sharded-slab-0.1.1/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/sharded-slab-0.1.1/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "3221225472" "--cpus" "2" "--user" "1001:1001" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs\"" "-j2" "--" "-Z" "unstable-options" "--resource-suffix" "-20210103-1.51.0-nightly-80184183b" "--static-root-path" "/" "--cap-lints" "warn" "--disable-per-crate-search", kill_on_drop: false }`
[INFO] [stdout] fb52ffed0abf2189fc4d05ca7248014bc96eb58f650b4bebfb1ea984e7cb35f8
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "fb52ffed0abf2189fc4d05ca7248014bc96eb58f650b4bebfb1ea984e7cb35f8", kill_on_drop: false }`
[INFO] [stderr] /opt/crates-build-env/entrypoint.sh: line 7: /etc/hosts: Permission denied
[INFO] [stderr] Checking lazy_static v1.4.0
[INFO] [stderr] Documenting sharded-slab v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use std::{collections, hash, ops::DerefMut, sync};
[INFO] [stderr] 2 | |
[INFO] [stderr] 3 | | /// Trait implemented by types which can be cleared in place, retaining any
[INFO] [stderr] 4 | | /// allocated memory.
[INFO] [stderr] ... |
[INFO] [stderr] 99 | | }
[INFO] [stderr] 100 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr] --> src/lib.rs:203:54
[INFO] [stderr] |
[INFO] [stderr] 203 | #![warn(missing_debug_implementations, missing_docs, missing_doc_code_examples)]
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:3:1
[INFO] [stderr] |
[INFO] [stderr] 3 | / /// Trait implemented by types which can be cleared in place, retaining any
[INFO] [stderr] 4 | | /// allocated memory.
[INFO] [stderr] 5 | | ///
[INFO] [stderr] 6 | | /// This is essentially a generalization of methods on standard library
[INFO] [stderr] ... |
[INFO] [stderr] 22 | | /// [`String::clear`]: https://doc.rust-lang.org/stable/std/string/struct.String.html#method.clear
[INFO] [stderr] 23 | | /// [`HashMap::clear`]: https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.clear
[INFO] [stderr] | |_________________________________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:25:5
[INFO] [stderr] |
[INFO] [stderr] 25 | /// Clear all data in `self`, retaining the allocated capacithy.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/implementation.rs:4:1
[INFO] [stderr] |
[INFO] [stderr] 4 | / //! Notes on `sharded-slab`'s implementation and design.
[INFO] [stderr] 5 | | //!
[INFO] [stderr] 6 | | //! # Design
[INFO] [stderr] 7 | | //!
[INFO] [stderr] ... |
[INFO] [stderr] 128 | | //!```
[INFO] [stderr] 129 | | //![`MAX_THREADS`]: ../trait.Config.html#associatedconstant.MAX_THREADS
[INFO] [stderr] | |_______________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::cfg::{self, CfgPrivate};
[INFO] [stderr] 2 | | use crate::clear::Clear;
[INFO] [stderr] 3 | | use crate::sync::UnsafeCell;
[INFO] [stderr] 4 | | use crate::Pack;
[INFO] [stderr] ... |
[INFO] [stderr] 448 | | }
[INFO] [stderr] 449 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use super::FreeList;
[INFO] [stderr] 2 | | use crate::sync::{
[INFO] [stderr] 3 | | atomic::{self, AtomicUsize, Ordering},
[INFO] [stderr] 4 | | UnsafeCell,
[INFO] [stderr] ... |
[INFO] [stderr] 919 | | }
[INFO] [stderr] 920 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:9:1
[INFO] [stderr] |
[INFO] [stderr] 9 | / pub(crate) struct Slot<T, C> {
[INFO] [stderr] 10 | | lifecycle: AtomicUsize,
[INFO] [stderr] 11 | | /// The offset of the next item on the free list.
[INFO] [stderr] 12 | | next: UnsafeCell<usize>,
[INFO] [stderr] ... |
[INFO] [stderr] 15 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 16 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:19:1
[INFO] [stderr] |
[INFO] [stderr] 19 | / pub(crate) struct Guard<T, C: cfg::Config = cfg::DefaultConfig> {
[INFO] [stderr] 20 | | slot: ptr::NonNull<Slot<T, C>>,
[INFO] [stderr] 21 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:24:1
[INFO] [stderr] |
[INFO] [stderr] 24 | / pub(crate) struct InitGuard<T, C: cfg::Config = cfg::DefaultConfig> {
[INFO] [stderr] 25 | | slot: ptr::NonNull<Slot<T, C>>,
[INFO] [stderr] 26 | | curr_lifecycle: usize,
[INFO] [stderr] 27 | | released: bool,
[INFO] [stderr] 28 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:31:1
[INFO] [stderr] |
[INFO] [stderr] 31 | / pub(crate) struct Generation<C = cfg::DefaultConfig> {
[INFO] [stderr] 32 | | value: usize,
[INFO] [stderr] 33 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 34 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:37:1
[INFO] [stderr] |
[INFO] [stderr] 37 | / pub(crate) struct RefCount<C = cfg::DefaultConfig> {
[INFO] [stderr] 38 | | value: usize,
[INFO] [stderr] 39 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 40 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:42:1
[INFO] [stderr] |
[INFO] [stderr] 42 | / pub(crate) struct Lifecycle<C> {
[INFO] [stderr] 43 | | state: State,
[INFO] [stderr] 44 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 45 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:46:1
[INFO] [stderr] |
[INFO] [stderr] 46 | struct LifecycleGen<C>(Generation<C>);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:50:1
[INFO] [stderr] |
[INFO] [stderr] 50 | / enum State {
[INFO] [stderr] 51 | | Present = 0b00,
[INFO] [stderr] 52 | | Marked = 0b01,
[INFO] [stderr] 53 | | Removing = 0b11,
[INFO] [stderr] 54 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:75:1
[INFO] [stderr] |
[INFO] [stderr] 75 | / impl<C: cfg::Config> Generation<C> {
[INFO] [stderr] 76 | | fn new(value: usize) -> Self {
[INFO] [stderr] 77 | | Self {
[INFO] [stderr] 78 | | value,
[INFO] [stderr] ... |
[INFO] [stderr] 81 | | }
[INFO] [stderr] 82 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:76:5
[INFO] [stderr] |
[INFO] [stderr] 76 | / fn new(value: usize) -> Self {
[INFO] [stderr] 77 | | Self {
[INFO] [stderr] 78 | | value,
[INFO] [stderr] 79 | | _cfg: PhantomData,
[INFO] [stderr] 80 | | }
[INFO] [stderr] 81 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:85:1
[INFO] [stderr] |
[INFO] [stderr] 85 | / impl<T, C> Slot<T, C>
[INFO] [stderr] 86 | | where
[INFO] [stderr] 87 | | C: cfg::Config,
[INFO] [stderr] 88 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 333 | | }
[INFO] [stderr] 334 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:90:5
[INFO] [stderr] |
[INFO] [stderr] 90 | / pub(super) fn next(&self) -> usize {
[INFO] [stderr] 91 | | self.next.with(|next| unsafe { *next })
[INFO] [stderr] 92 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:95:5
[INFO] [stderr] |
[INFO] [stderr] 95 | / pub(crate) fn value(&self) -> &T {
[INFO] [stderr] 96 | | self.item.with(|item| unsafe { &*item })
[INFO] [stderr] 97 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:100:5
[INFO] [stderr] |
[INFO] [stderr] 100 | / pub(super) fn set_next(&self, next: usize) {
[INFO] [stderr] 101 | | self.next.with_mut(|n| unsafe {
[INFO] [stderr] 102 | | (*n) = next;
[INFO] [stderr] 103 | | })
[INFO] [stderr] 104 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:107:5
[INFO] [stderr] |
[INFO] [stderr] 107 | / pub(crate) fn get(&self, gen: Generation<C>) -> Option<Guard<T, C>> {
[INFO] [stderr] 108 | | let mut lifecycle = self.lifecycle.load(Ordering::Acquire);
[INFO] [stderr] 109 | | loop {
[INFO] [stderr] 110 | | // Unpack the current state.
[INFO] [stderr] ... |
[INFO] [stderr] 158 | | }
[INFO] [stderr] 159 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:161:5
[INFO] [stderr] |
[INFO] [stderr] 161 | / /// Marks this slot to be released, returning `true` if the slot can be
[INFO] [stderr] 162 | | /// mutated *now* and `false` otherwise.
[INFO] [stderr] 163 | | ///
[INFO] [stderr] 164 | | /// This method checks if there are any references to this slot. If there _are_ valid
[INFO] [stderr] 165 | | /// references, it just marks them for modification and returns and the next thread calling
[INFO] [stderr] 166 | | /// either `clear_storage` or `remove_value` will try and modify the storage
[INFO] [stderr] | |________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:231:5
[INFO] [stderr] |
[INFO] [stderr] 231 | / /// Mutates this slot.
[INFO] [stderr] 232 | | ///
[INFO] [stderr] 233 | | /// This method spins until no references to this slot are left, and calls the mutator
[INFO] [stderr] | |__________________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:305:5
[INFO] [stderr] |
[INFO] [stderr] 305 | / /// Initialize a slot
[INFO] [stderr] 306 | | ///
[INFO] [stderr] 307 | | /// This method initializes and sets up the state for a slot. When being used in `Pool`, we
[INFO] [stderr] 308 | | /// only need to ensure that the `Slot` is in the right `state, while when being used in a
[INFO] [stderr] 309 | | /// `Slab` we want to insert a value into it, as the memory is not initialized
[INFO] [stderr] | |__________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:337:1
[INFO] [stderr] |
[INFO] [stderr] 337 | / impl<T, C> Slot<Option<T>, C>
[INFO] [stderr] 338 | | where
[INFO] [stderr] 339 | | C: cfg::Config,
[INFO] [stderr] 340 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 416 | | }
[INFO] [stderr] 417 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:341:5
[INFO] [stderr] |
[INFO] [stderr] 341 | / fn is_empty(&self) -> bool {
[INFO] [stderr] 342 | | self.item.with(|item| unsafe { (*item).is_none() })
[INFO] [stderr] 343 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:345:5
[INFO] [stderr] |
[INFO] [stderr] 345 | / /// Insert a value into a slot
[INFO] [stderr] 346 | | ///
[INFO] [stderr] 347 | | /// We first initialize the state and then insert the pased in value into the slot.
[INFO] [stderr] | |_______________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:368:5
[INFO] [stderr] |
[INFO] [stderr] 368 | / /// Tries to remove the value in the slot, returning `true` if the value was
[INFO] [stderr] 369 | | /// removed.
[INFO] [stderr] 370 | | ///
[INFO] [stderr] 371 | | /// This method tries to remove the value in the slot. If there are existing references, then
[INFO] [stderr] 372 | | /// the slot is marked for removal and the next thread calling either this method or
[INFO] [stderr] 373 | | /// `remove_value` will do the work instead.
[INFO] [stderr] | |________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:409:5
[INFO] [stderr] |
[INFO] [stderr] 409 | / pub(super) fn remove_value<F: FreeList<C>>(
[INFO] [stderr] 410 | | &self,
[INFO] [stderr] 411 | | gen: Generation<C>,
[INFO] [stderr] 412 | | offset: usize,
[INFO] [stderr] ... |
[INFO] [stderr] 415 | | self.release_with(gen, offset, free, |item| item.and_then(Option::take))
[INFO] [stderr] 416 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:420:1
[INFO] [stderr] |
[INFO] [stderr] 420 | / impl<T, C> Slot<T, C>
[INFO] [stderr] 421 | | where
[INFO] [stderr] 422 | | T: Default + Clear,
[INFO] [stderr] 423 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 488 | | }
[INFO] [stderr] 489 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:425:5
[INFO] [stderr] |
[INFO] [stderr] 425 | / pub(in crate::page) fn new(next: usize) -> Self {
[INFO] [stderr] 426 | | Self {
[INFO] [stderr] 427 | | lifecycle: AtomicUsize::new(Lifecycle::<C>::REMOVING.as_usize()),
[INFO] [stderr] 428 | | item: UnsafeCell::new(T::default()),
[INFO] [stderr] ... |
[INFO] [stderr] 431 | | }
[INFO] [stderr] 432 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:434:5
[INFO] [stderr] |
[INFO] [stderr] 434 | / /// Try to clear this slot's storage
[INFO] [stderr] 435 | | ///
[INFO] [stderr] 436 | | /// If there are references to this slot, then we mark this slot for clearing and let the last
[INFO] [stderr] 437 | | /// thread do the work for us.
[INFO] [stderr] | |__________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:472:5
[INFO] [stderr] |
[INFO] [stderr] 472 | / /// Clear this slot's storage
[INFO] [stderr] 473 | | ///
[INFO] [stderr] 474 | | /// This method blocks until all references have been dropped and clears the storage.
[INFO] [stderr] | |_________________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:491:1
[INFO] [stderr] |
[INFO] [stderr] 491 | / impl<T, C: cfg::Config> Slot<T, C> {
[INFO] [stderr] 492 | | fn release(&self) -> bool {
[INFO] [stderr] 493 | | let mut lifecycle = self.lifecycle.load(Ordering::Acquire);
[INFO] [stderr] 494 | | loop {
[INFO] [stderr] ... |
[INFO] [stderr] 534 | | }
[INFO] [stderr] 535 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:492:5
[INFO] [stderr] |
[INFO] [stderr] 492 | / fn release(&self) -> bool {
[INFO] [stderr] 493 | | let mut lifecycle = self.lifecycle.load(Ordering::Acquire);
[INFO] [stderr] 494 | | loop {
[INFO] [stderr] 495 | | let refs = RefCount::<C>::from_packed(lifecycle);
[INFO] [stderr] ... |
[INFO] [stderr] 533 | | }
[INFO] [stderr] 534 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:558:1
[INFO] [stderr] |
[INFO] [stderr] 558 | / impl<C: cfg::Config> Generation<C> {
[INFO] [stderr] 559 | | fn advance(self) -> Self {
[INFO] [stderr] 560 | | Self::from_usize((self.value + 1) % Self::BITS)
[INFO] [stderr] 561 | | }
[INFO] [stderr] 562 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:559:5
[INFO] [stderr] |
[INFO] [stderr] 559 | / fn advance(self) -> Self {
[INFO] [stderr] 560 | | Self::from_usize((self.value + 1) % Self::BITS)
[INFO] [stderr] 561 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:594:1
[INFO] [stderr] |
[INFO] [stderr] 594 | / impl<T, C: cfg::Config> Guard<T, C> {
[INFO] [stderr] 595 | | /// Releases the guard, returning `true` if the slot should be cleared.
[INFO] [stderr] 596 | | ///
[INFO] [stderr] 597 | | /// ## Safety
[INFO] [stderr] ... |
[INFO] [stderr] 629 | | }
[INFO] [stderr] 630 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:595:5
[INFO] [stderr] |
[INFO] [stderr] 595 | / /// Releases the guard, returning `true` if the slot should be cleared.
[INFO] [stderr] 596 | | ///
[INFO] [stderr] 597 | | /// ## Safety
[INFO] [stderr] 598 | | ///
[INFO] [stderr] 599 | | /// This dereferences a raw pointer to the slot. The caller is responsible
[INFO] [stderr] 600 | | /// for ensuring that the `Guard` does not outlive the slab that contains
[INFO] [stderr] 601 | | /// the pointed slot. Failure to do so means this pointer may dangle.
[INFO] [stderr] | |_________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:607:5
[INFO] [stderr] |
[INFO] [stderr] 607 | / /// Returns a borrowed reference to the slot.
[INFO] [stderr] 608 | | ///
[INFO] [stderr] 609 | | /// ## Safety
[INFO] [stderr] 610 | | ///
[INFO] [stderr] 611 | | /// This dereferences a raw pointer to the slot. The caller is responsible
[INFO] [stderr] 612 | | /// for ensuring that the `Guard` does not outlive the slab that contains
[INFO] [stderr] 613 | | /// the pointed slot. Failure to do so means this pointer may dangle.
[INFO] [stderr] | |_________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:619:5
[INFO] [stderr] |
[INFO] [stderr] 619 | / /// Returns a borrowed reference to the slot's value.
[INFO] [stderr] 620 | | ///
[INFO] [stderr] 621 | | /// ## Safety
[INFO] [stderr] 622 | | ///
[INFO] [stderr] 623 | | /// This dereferences a raw pointer to the slot. The caller is responsible
[INFO] [stderr] 624 | | /// for ensuring that the `Guard` does not outlive the slab that contains
[INFO] [stderr] 625 | | /// the pointed slot. Failure to do so means this pointer may dangle.
[INFO] [stderr] | |_________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:634:1
[INFO] [stderr] |
[INFO] [stderr] 634 | / impl<C: cfg::Config> Lifecycle<C> {
[INFO] [stderr] 635 | | const MARKED: Self = Self {
[INFO] [stderr] 636 | | state: State::Marked,
[INFO] [stderr] 637 | | _cfg: PhantomData,
[INFO] [stderr] ... |
[INFO] [stderr] 646 | | };
[INFO] [stderr] 647 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:703:1
[INFO] [stderr] |
[INFO] [stderr] 703 | / impl<C: cfg::Config> RefCount<C> {
[INFO] [stderr] 704 | | pub(crate) const MAX: usize = Self::BITS - 1;
[INFO] [stderr] 705 | |
[INFO] [stderr] 706 | | #[inline]
[INFO] [stderr] ... |
[INFO] [stderr] 719 | | }
[INFO] [stderr] 720 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:707:5
[INFO] [stderr] |
[INFO] [stderr] 707 | / fn incr(self) -> Option<Self> {
[INFO] [stderr] 708 | | if self.value >= Self::MAX {
[INFO] [stderr] 709 | | test_println!("-> get: {}; MAX={}", self.value, RefCount::<C>::MAX);
[INFO] [stderr] 710 | | return None;
[INFO] [stderr] ... |
[INFO] [stderr] 713 | | Some(Self::from_usize(self.value + 1))
[INFO] [stderr] 714 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:717:5
[INFO] [stderr] |
[INFO] [stderr] 717 | / fn decr(self) -> Self {
[INFO] [stderr] 718 | | Self::from_usize(self.value - 1)
[INFO] [stderr] 719 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:771:1
[INFO] [stderr] |
[INFO] [stderr] 771 | / impl<T, C: cfg::Config> InitGuard<T, C> {
[INFO] [stderr] 772 | | pub(crate) fn generation(&self) -> Generation<C> {
[INFO] [stderr] 773 | | LifecycleGen::<C>::from_packed(self.curr_lifecycle).0
[INFO] [stderr] 774 | | }
[INFO] [stderr] ... |
[INFO] [stderr] 897 | | }
[INFO] [stderr] 898 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:772:5
[INFO] [stderr] |
[INFO] [stderr] 772 | / pub(crate) fn generation(&self) -> Generation<C> {
[INFO] [stderr] 773 | | LifecycleGen::<C>::from_packed(self.curr_lifecycle).0
[INFO] [stderr] 774 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:776:5
[INFO] [stderr] |
[INFO] [stderr] 776 | / /// Returns a borrowed reference to the slot's value.
[INFO] [stderr] 777 | | ///
[INFO] [stderr] 778 | | /// ## Safety
[INFO] [stderr] 779 | | ///
[INFO] [stderr] ... |
[INFO] [stderr] 782 | | /// contains the pointed slot. Failure to do so means this pointer may
[INFO] [stderr] 783 | | /// dangle.
[INFO] [stderr] | |_______________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:788:5
[INFO] [stderr] |
[INFO] [stderr] 788 | / /// Returns a mutably borrowed reference to the slot's value.
[INFO] [stderr] 789 | | ///
[INFO] [stderr] 790 | | /// ## Safety
[INFO] [stderr] 791 | | ///
[INFO] [stderr] ... |
[INFO] [stderr] 797 | | /// It's safe to reference the slot mutably, though, because creating an
[INFO] [stderr] 798 | | /// `InitGuard` ensures there are no outstanding immutable references.
[INFO] [stderr] | |__________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:803:5
[INFO] [stderr] |
[INFO] [stderr] 803 | / /// Releases the guard, returning `true` if the slot should be cleared.
[INFO] [stderr] 804 | | ///
[INFO] [stderr] 805 | | /// ## Safety
[INFO] [stderr] 806 | | ///
[INFO] [stderr] ... |
[INFO] [stderr] 809 | | /// contains the pointed slot. Failure to do so means this pointer may
[INFO] [stderr] 810 | | /// dangle.
[INFO] [stderr] | |_______________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:815:5
[INFO] [stderr] |
[INFO] [stderr] 815 | / /// Downgrades the guard to an immutable guard
[INFO] [stderr] 816 | | ///
[INFO] [stderr] 817 | | /// ## Safety
[INFO] [stderr] 818 | | ///
[INFO] [stderr] ... |
[INFO] [stderr] 821 | | /// contains the pointed slot. Failure to do so means this pointer may
[INFO] [stderr] 822 | | /// dangle.
[INFO] [stderr] | |_______________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:828:5
[INFO] [stderr] |
[INFO] [stderr] 828 | / unsafe fn release2(&mut self, new_refs: usize) -> bool {
[INFO] [stderr] 829 | | test_println!(
[INFO] [stderr] 830 | | "InitGuard::release; curr_lifecycle={:?}; downgrading={}",
[INFO] [stderr] 831 | | Lifecycle::<C>::from_packed(self.curr_lifecycle),
[INFO] [stderr] ... |
[INFO] [stderr] 896 | | }
[INFO] [stderr] 897 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:903:1
[INFO] [stderr] |
[INFO] [stderr] 903 | / fn exponential_backoff(exp: &mut usize) {
[INFO] [stderr] 904 | | /// Maximum exponent we can back off to.
[INFO] [stderr] 905 | | const MAX_EXPONENT: usize = 8;
[INFO] [stderr] 906 | |
[INFO] [stderr] ... |
[INFO] [stderr] 919 | | }
[INFO] [stderr] 920 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::cfg;
[INFO] [stderr] 2 | | use crate::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stderr] 3 | | use std::{fmt, marker::PhantomData};
[INFO] [stderr] 4 | |
[INFO] [stderr] ... |
[INFO] [stderr] 123 | | }
[INFO] [stderr] 124 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:5:1
[INFO] [stderr] |
[INFO] [stderr] 5 | / pub(super) struct TransferStack<C = cfg::DefaultConfig> {
[INFO] [stderr] 6 | | head: AtomicUsize,
[INFO] [stderr] 7 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 8 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:10:1
[INFO] [stderr] |
[INFO] [stderr] 10 | / impl<C: cfg::Config> TransferStack<C> {
[INFO] [stderr] 11 | | pub(super) fn new() -> Self {
[INFO] [stderr] 12 | | Self {
[INFO] [stderr] 13 | | head: AtomicUsize::new(super::Addr::<C>::NULL),
[INFO] [stderr] ... |
[INFO] [stderr] 52 | | }
[INFO] [stderr] 53 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:11:5
[INFO] [stderr] |
[INFO] [stderr] 11 | / pub(super) fn new() -> Self {
[INFO] [stderr] 12 | | Self {
[INFO] [stderr] 13 | | head: AtomicUsize::new(super::Addr::<C>::NULL),
[INFO] [stderr] 14 | | _cfg: PhantomData,
[INFO] [stderr] 15 | | }
[INFO] [stderr] 16 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:18:5
[INFO] [stderr] |
[INFO] [stderr] 18 | / pub(super) fn pop_all(&self) -> Option<usize> {
[INFO] [stderr] 19 | | let val = self.head.swap(super::Addr::<C>::NULL, Ordering::Acquire);
[INFO] [stderr] 20 | | test_println!("-> pop {:#x}", val);
[INFO] [stderr] 21 | | if val == super::Addr::<C>::NULL {
[INFO] [stderr] ... |
[INFO] [stderr] 25 | | }
[INFO] [stderr] 26 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:28:5
[INFO] [stderr] |
[INFO] [stderr] 28 | / fn push(&self, new_head: usize, before: impl Fn(usize)) {
[INFO] [stderr] 29 | | // We loop to win the race to set the new head. The `next` variable
[INFO] [stderr] 30 | | // is the next slot on the stack which needs to be pointed to by the
[INFO] [stderr] 31 | | // new head.
[INFO] [stderr] ... |
[INFO] [stderr] 51 | | }
[INFO] [stderr] 52 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:11:1
[INFO] [stderr] |
[INFO] [stderr] 11 | / /// A page address encodes the location of a slot within a shard (the page
[INFO] [stderr] 12 | | /// number and offset within that page) as a single linear value.
[INFO] [stderr] | |_________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:19:1
[INFO] [stderr] |
[INFO] [stderr] 19 | / impl<C: cfg::Config> Addr<C> {
[INFO] [stderr] 20 | | const NULL: usize = Self::BITS + 1;
[INFO] [stderr] 21 | |
[INFO] [stderr] 22 | | pub(crate) fn index(self) -> usize {
[INFO] [stderr] ... |
[INFO] [stderr] 39 | | }
[INFO] [stderr] 40 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:22:5
[INFO] [stderr] |
[INFO] [stderr] 22 | / pub(crate) fn index(self) -> usize {
[INFO] [stderr] 23 | | // Since every page is twice as large as the previous page, and all page sizes
[INFO] [stderr] 24 | | // are powers of two, we can determine the page index that contains a given
[INFO] [stderr] 25 | | // address by counting leading zeros, which tells us what power of two
[INFO] [stderr] ... |
[INFO] [stderr] 34 | | cfg::WIDTH - shifted.leading_zeros() as usize
[INFO] [stderr] 35 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:37:5
[INFO] [stderr] |
[INFO] [stderr] 37 | / pub(crate) fn offset(self) -> usize {
[INFO] [stderr] 38 | | self.addr
[INFO] [stderr] 39 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:42:1
[INFO] [stderr] |
[INFO] [stderr] 42 | / pub(crate) trait FreeList<C> {
[INFO] [stderr] 43 | | fn push<T>(&self, new_head: usize, slot: &Slot<T, C>)
[INFO] [stderr] 44 | | where
[INFO] [stderr] 45 | | C: cfg::Config;
[INFO] [stderr] 46 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:43:5
[INFO] [stderr] |
[INFO] [stderr] 43 | / fn push<T>(&self, new_head: usize, slot: &Slot<T, C>)
[INFO] [stderr] 44 | | where
[INFO] [stderr] 45 | | C: cfg::Config;
[INFO] [stderr] | |_______________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:71:1
[INFO] [stderr] |
[INFO] [stderr] 71 | / pub(crate) struct Local {
[INFO] [stderr] 72 | | /// Index of the first slot on the local free list
[INFO] [stderr] 73 | | head: UnsafeCell<usize>,
[INFO] [stderr] 74 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:76:1
[INFO] [stderr] |
[INFO] [stderr] 76 | / pub(crate) struct Shared<T, C> {
[INFO] [stderr] 77 | | /// The remote free list
[INFO] [stderr] 78 | | ///
[INFO] [stderr] 79 | | /// Slots freed from a remote thread are pushed onto this list.
[INFO] [stderr] ... |
[INFO] [stderr] 88 | | slab: UnsafeCell<Option<Slots<T, C>>>,
[INFO] [stderr] 89 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:93:1
[INFO] [stderr] |
[INFO] [stderr] 93 | / impl Local {
[INFO] [stderr] 94 | | pub(crate) fn new() -> Self {
[INFO] [stderr] 95 | | Self {
[INFO] [stderr] 96 | | head: UnsafeCell::new(0),
[INFO] [stderr] ... |
[INFO] [stderr] 110 | | }
[INFO] [stderr] 111 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:94:5
[INFO] [stderr] |
[INFO] [stderr] 94 | / pub(crate) fn new() -> Self {
[INFO] [stderr] 95 | | Self {
[INFO] [stderr] 96 | | head: UnsafeCell::new(0),
[INFO] [stderr] 97 | | }
[INFO] [stderr] 98 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:101:5
[INFO] [stderr] |
[INFO] [stderr] 101 | / fn head(&self) -> usize {
[INFO] [stderr] 102 | | self.head.with(|head| unsafe { *head })
[INFO] [stderr] 103 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:106:5
[INFO] [stderr] |
[INFO] [stderr] 106 | / fn set_head(&self, new_head: usize) {
[INFO] [stderr] 107 | | self.head.with_mut(|head| unsafe {
[INFO] [stderr] 108 | | *head = new_head;
[INFO] [stderr] 109 | | })
[INFO] [stderr] 110 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:120:1
[INFO] [stderr] |
[INFO] [stderr] 120 | / impl<T, C> Shared<T, C>
[INFO] [stderr] 121 | | where
[INFO] [stderr] 122 | | C: cfg::Config,
[INFO] [stderr] 123 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 196 | | }
[INFO] [stderr] 197 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:126:5
[INFO] [stderr] |
[INFO] [stderr] 126 | / pub(crate) fn new(size: usize, prev_sz: usize) -> Self {
[INFO] [stderr] 127 | | Self {
[INFO] [stderr] 128 | | prev_sz,
[INFO] [stderr] 129 | | size,
[INFO] [stderr] ... |
[INFO] [stderr] 132 | | }
[INFO] [stderr] 133 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:135:5
[INFO] [stderr] |
[INFO] [stderr] 135 | / /// Return the head of the freelist
[INFO] [stderr] 136 | | ///
[INFO] [stderr] 137 | | /// If there is space on the local list, it returns the head of the local list. Otherwise, it
[INFO] [stderr] 138 | | /// pops all the slots from the global list and returns the head of that list
[INFO] [stderr] 139 | | ///
[INFO] [stderr] 140 | | /// *Note*: The local list's head is reset when setting the new state in the slot pointed to be
[INFO] [stderr] 141 | | /// `head` returned from this function
[INFO] [stderr] | |__________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:170:5
[INFO] [stderr] |
[INFO] [stderr] 170 | / /// Returns `true` if storage is currently allocated for this page, `false`
[INFO] [stderr] 171 | | /// otherwise.
[INFO] [stderr] | |__________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:178:5
[INFO] [stderr] |
[INFO] [stderr] 178 | / pub(crate) fn with_slot<'a, U>(
[INFO] [stderr] 179 | | &'a self,
[INFO] [stderr] 180 | | addr: Addr<C>,
[INFO] [stderr] 181 | | f: impl FnOnce(&'a Slot<T, C>) -> Option<U>,
[INFO] [stderr] ... |
[INFO] [stderr] 190 | | })
[INFO] [stderr] 191 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:194:5
[INFO] [stderr] |
[INFO] [stderr] 194 | / pub(crate) fn free_list(&self) -> &impl FreeList<C> {
[INFO] [stderr] 195 | | &self.remote
[INFO] [stderr] 196 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:199:1
[INFO] [stderr] |
[INFO] [stderr] 199 | / impl<'a, T, C> Shared<Option<T>, C>
[INFO] [stderr] 200 | | where
[INFO] [stderr] 201 | | C: cfg::Config + 'a,
[INFO] [stderr] 202 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 255 | | }
[INFO] [stderr] 256 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:203:5
[INFO] [stderr] |
[INFO] [stderr] 203 | / pub(crate) fn take<F>(
[INFO] [stderr] 204 | | &self,
[INFO] [stderr] 205 | | addr: Addr<C>,
[INFO] [stderr] 206 | | gen: slot::Generation<C>,
[INFO] [stderr] ... |
[INFO] [stderr] 220 | | })
[INFO] [stderr] 221 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:223:5
[INFO] [stderr] |
[INFO] [stderr] 223 | / pub(crate) fn remove<F: FreeList<C>>(
[INFO] [stderr] 224 | | &self,
[INFO] [stderr] 225 | | addr: Addr<C>,
[INFO] [stderr] 226 | | gen: slot::Generation<C>,
[INFO] [stderr] ... |
[INFO] [stderr] 240 | | })
[INFO] [stderr] 241 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:245:5
[INFO] [stderr] |
[INFO] [stderr] 245 | / fn make_ref(slot: &'a Slot<Option<T>, C>) -> Option<&'a T> {
[INFO] [stderr] 246 | | slot.value().as_ref()
[INFO] [stderr] 247 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:249:5
[INFO] [stderr] |
[INFO] [stderr] 249 | / pub(crate) fn iter(&self) -> Option<Iter<'a, T, C>> {
[INFO] [stderr] 250 | | let slab = self.slab.with(|slab| unsafe { (&*slab).as_ref() });
[INFO] [stderr] 251 | | slab.map(|slab| {
[INFO] [stderr] 252 | | slab.iter()
[INFO] [stderr] 253 | | .filter_map(Shared::make_ref as fn(&'a Slot<Option<T>, C>) -> Option<&'a T>)
[INFO] [stderr] 254 | | })
[INFO] [stderr] 255 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:258:1
[INFO] [stderr] |
[INFO] [stderr] 258 | / impl<T, C> Shared<T, C>
[INFO] [stderr] 259 | | where
[INFO] [stderr] 260 | | T: Clear + Default,
[INFO] [stderr] 261 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 348 | | }
[INFO] [stderr] 349 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:263:5
[INFO] [stderr] |
[INFO] [stderr] 263 | / pub(crate) fn init_with<U>(
[INFO] [stderr] 264 | | &self,
[INFO] [stderr] 265 | | local: &Local,
[INFO] [stderr] 266 | | init: impl FnOnce(usize, &Slot<T, C>) -> Option<U>,
[INFO] [stderr] ... |
[INFO] [stderr] 288 | | Some(result)
[INFO] [stderr] 289 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:291:5
[INFO] [stderr] |
[INFO] [stderr] 291 | /// Allocates storage for the page's slots.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:310:5
[INFO] [stderr] |
[INFO] [stderr] 310 | / pub(crate) fn mark_clear<F: FreeList<C>>(
[INFO] [stderr] 311 | | &self,
[INFO] [stderr] 312 | | addr: Addr<C>,
[INFO] [stderr] 313 | | gen: slot::Generation<C>,
[INFO] [stderr] ... |
[INFO] [stderr] 327 | | })
[INFO] [stderr] 328 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:330:5
[INFO] [stderr] |
[INFO] [stderr] 330 | / pub(crate) fn clear<F: FreeList<C>>(
[INFO] [stderr] 331 | | &self,
[INFO] [stderr] 332 | | addr: Addr<C>,
[INFO] [stderr] 333 | | gen: slot::Generation<C>,
[INFO] [stderr] ... |
[INFO] [stderr] 347 | | })
[INFO] [stderr] 348 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:412:1
[INFO] [stderr] |
[INFO] [stderr] 412 | / pub(crate) fn indices<C: cfg::Config>(idx: usize) -> (Addr<C>, usize) {
[INFO] [stderr] 413 | | let addr = C::unpack_addr(idx);
[INFO] [stderr] 414 | | (addr, addr.index())
[INFO] [stderr] 415 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / //! A lock-free concurrent object pool.
[INFO] [stderr] 2 | | //!
[INFO] [stderr] 3 | | //! See the [`Pool` type's documentation][pool] for details on the object pool API and how
[INFO] [stderr] 4 | | //! it differs from the [`Slab`] API.
[INFO] [stderr] 5 | | //!
[INFO] [stderr] 6 | | //! [pool]: ../struct.Pool.html
[INFO] [stderr] 7 | | //! [`Slab`]: ../struct.Slab.html
[INFO] [stderr] | |_________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:93:1
[INFO] [stderr] |
[INFO] [stderr] 93 | / /// A guard that allows access to an object in a pool.
[INFO] [stderr] 94 | | ///
[INFO] [stderr] 95 | | /// While the guard exists, it indicates to the pool that the item the guard references is
[INFO] [stderr] 96 | | /// currently being accessed. If the item is removed from the pool while the guard exists, the
[INFO] [stderr] 97 | | /// removal will be deferred until all guards are dropped.
[INFO] [stderr] | |__________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:108:1
[INFO] [stderr] |
[INFO] [stderr] 108 | / /// A guard that allows exclusive mutable access to an object in a pool.
[INFO] [stderr] 109 | | ///
[INFO] [stderr] 110 | | /// While the guard exists, it indicates to the pool that the item the guard
[INFO] [stderr] 111 | | /// references is currently being accessed. If the item is removed from the pool
[INFO] [stderr] 112 | | /// while a guard exists, the removal will be deferred until the guard is
[INFO] [stderr] 113 | | /// dropped. The slot cannot be accessed by other threads while it is accessed
[INFO] [stderr] 114 | | /// mutably.
[INFO] [stderr] | |____________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:381:1
[INFO] [stderr] |
[INFO] [stderr] 381 | / impl<T> Pool<T>
[INFO] [stderr] 382 | | where
[INFO] [stderr] 383 | | T: Clear + Default,
[INFO] [stderr] 384 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 397 | | }
[INFO] [stderr] 398 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:385:5
[INFO] [stderr] |
[INFO] [stderr] 385 | /// Returns a new `Pool` with the default configuration parameters.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:390:5
[INFO] [stderr] |
[INFO] [stderr] 390 | /// Returns a new `Pool` with the provided configuration parameters.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:400:1
[INFO] [stderr] |
[INFO] [stderr] 400 | / impl<T, C> Pool<T, C>
[INFO] [stderr] 401 | | where
[INFO] [stderr] 402 | | T: Clear + Default,
[INFO] [stderr] 403 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 833 | | }
[INFO] [stderr] 834 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:873:1
[INFO] [stderr] |
[INFO] [stderr] 873 | / impl<'a, T, C> Ref<'a, T, C>
[INFO] [stderr] 874 | | where
[INFO] [stderr] 875 | | T: Clear + Default,
[INFO] [stderr] 876 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 893 | | }
[INFO] [stderr] 894 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:878:5
[INFO] [stderr] |
[INFO] [stderr] 878 | /// Returns the key used to access this guard
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:884:5
[INFO] [stderr] |
[INFO] [stderr] 884 | / fn value(&self) -> &T {
[INFO] [stderr] 885 | | unsafe {
[INFO] [stderr] 886 | | // Safety: calling `slot::Guard::value` is unsafe, since the `Guard`
[INFO] [stderr] 887 | | // value contains a pointer to the slot that may outlive the slab
[INFO] [stderr] ... |
[INFO] [stderr] 892 | | }
[INFO] [stderr] 893 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:952:1
[INFO] [stderr] |
[INFO] [stderr] 952 | / impl<'a, T, C: cfg::Config> RefMut<'a, T, C>
[INFO] [stderr] 953 | | where
[INFO] [stderr] 954 | | T: Clear + Default,
[INFO] [stderr] 955 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1014 | | }
[INFO] [stderr] 1015 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:957:5
[INFO] [stderr] |
[INFO] [stderr] 957 | /// Returns the key used to access the guard.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1007:5
[INFO] [stderr] |
[INFO] [stderr] 1007 | / fn value(&self) -> &T {
[INFO] [stderr] 1008 | | unsafe {
[INFO] [stderr] 1009 | | // Safety: we are holding a reference to the shard which keeps the
[INFO] [stderr] 1010 | | // pointed slot alive. The returned reference will not outlive
[INFO] [stderr] ... |
[INFO] [stderr] 1013 | | }
[INFO] [stderr] 1014 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1083:1
[INFO] [stderr] |
[INFO] [stderr] 1083 | / impl<T, C> OwnedRef<T, C>
[INFO] [stderr] 1084 | | where
[INFO] [stderr] 1085 | | T: Clear + Default,
[INFO] [stderr] 1086 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1103 | | }
[INFO] [stderr] 1104 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1088:5
[INFO] [stderr] |
[INFO] [stderr] 1088 | /// Returns the key used to access this guard
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1094:5
[INFO] [stderr] |
[INFO] [stderr] 1094 | / fn value(&self) -> &T {
[INFO] [stderr] 1095 | | unsafe {
[INFO] [stderr] 1096 | | // Safety: calling `slot::Guard::value` is unsafe, since the `Guard`
[INFO] [stderr] 1097 | | // value contains a pointer to the slot that may outlive the slab
[INFO] [stderr] ... |
[INFO] [stderr] 1102 | | }
[INFO] [stderr] 1103 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1182:1
[INFO] [stderr] |
[INFO] [stderr] 1182 | / impl<T, C> OwnedRefMut<T, C>
[INFO] [stderr] 1183 | | where
[INFO] [stderr] 1184 | | T: Clear + Default,
[INFO] [stderr] 1185 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1252 | | }
[INFO] [stderr] 1253 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1187:5
[INFO] [stderr] |
[INFO] [stderr] 1187 | /// Returns the key used to access this guard
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1236:5
[INFO] [stderr] |
[INFO] [stderr] 1236 | / fn shard(&self) -> Option<&Shard<T, C>> {
[INFO] [stderr] 1237 | | let shard_idx = Tid::<C>::from_packed(self.key);
[INFO] [stderr] 1238 | | test_println!("-> shard={:?}", shard_idx);
[INFO] [stderr] 1239 | | self.pool.shards.get(shard_idx.as_usize())
[INFO] [stderr] 1240 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1243:5
[INFO] [stderr] |
[INFO] [stderr] 1243 | / fn value(&self) -> &T {
[INFO] [stderr] 1244 | | unsafe {
[INFO] [stderr] 1245 | | // Safety: calling `slot::InitGuard::value` is unsafe, since the `Guard`
[INFO] [stderr] 1246 | | // value contains a pointer to the slot that may outlive the slab
[INFO] [stderr] ... |
[INFO] [stderr] 1251 | | }
[INFO] [stderr] 1252 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / pub(crate) use self::inner::*;
[INFO] [stderr] 2 | |
[INFO] [stderr] 3 | | #[cfg(all(loom, any(test, feature = "loom")))]
[INFO] [stderr] 4 | | mod inner {
[INFO] [stderr] ... |
[INFO] [stderr] 130 | | }
[INFO] [stderr] 131 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:66:1
[INFO] [stderr] |
[INFO] [stderr] 66 | / mod inner {
[INFO] [stderr] 67 | | #![allow(dead_code)]
[INFO] [stderr] 68 | | pub(crate) use lazy_static::lazy_static;
[INFO] [stderr] 69 | | pub(crate) use std::sync::{atomic, Mutex};
[INFO] [stderr] ... |
[INFO] [stderr] 130 | | }
[INFO] [stderr] 131 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:98:5
[INFO] [stderr] |
[INFO] [stderr] 98 | / pub(crate) mod alloc {
[INFO] [stderr] 99 | | /// Track allocations, detecting leaks
[INFO] [stderr] 100 | | #[derive(Debug, Default)]
[INFO] [stderr] 101 | | pub struct Track<T> {
[INFO] [stderr] ... |
[INFO] [stderr] 129 | | }
[INFO] [stderr] 130 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:99:9
[INFO] [stderr] |
[INFO] [stderr] 99 | /// Track allocations, detecting leaks
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:105:9
[INFO] [stderr] |
[INFO] [stderr] 105 | / impl<T> Track<T> {
[INFO] [stderr] 106 | | /// Track a value for leaks
[INFO] [stderr] 107 | | #[inline(always)]
[INFO] [stderr] 108 | | pub fn new(value: T) -> Track<T> {
[INFO] [stderr] ... |
[INFO] [stderr] 128 | | }
[INFO] [stderr] 129 | | }
[INFO] [stderr] | |_________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:106:13
[INFO] [stderr] |
[INFO] [stderr] 106 | /// Track a value for leaks
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:112:13
[INFO] [stderr] |
[INFO] [stderr] 112 | /// Get a reference to the value
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:118:13
[INFO] [stderr] |
[INFO] [stderr] 118 | /// Get a mutable reference to the value
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:124:13
[INFO] [stderr] |
[INFO] [stderr] 124 | /// Stop tracking the value for leaks
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:74:5
[INFO] [stderr] |
[INFO] [stderr] 74 | pub(crate) struct UnsafeCell<T>(std::cell::UnsafeCell<T>);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:76:5
[INFO] [stderr] |
[INFO] [stderr] 76 | / impl<T> UnsafeCell<T> {
[INFO] [stderr] 77 | | pub fn new(data: T) -> UnsafeCell<T> {
[INFO] [stderr] 78 | | UnsafeCell(std::cell::UnsafeCell::new(data))
[INFO] [stderr] 79 | | }
[INFO] [stderr] ... |
[INFO] [stderr] 95 | | }
[INFO] [stderr] 96 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:77:9
[INFO] [stderr] |
[INFO] [stderr] 77 | / pub fn new(data: T) -> UnsafeCell<T> {
[INFO] [stderr] 78 | | UnsafeCell(std::cell::UnsafeCell::new(data))
[INFO] [stderr] 79 | | }
[INFO] [stderr] | |_________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:82:9
[INFO] [stderr] |
[INFO] [stderr] 82 | / pub fn with<F, R>(&self, f: F) -> R
[INFO] [stderr] 83 | | where
[INFO] [stderr] 84 | | F: FnOnce(*const T) -> R,
[INFO] [stderr] 85 | | {
[INFO] [stderr] 86 | | f(self.0.get())
[INFO] [stderr] 87 | | }
[INFO] [stderr] | |_________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/sync.rs:90:9
[INFO] [stderr] |
[INFO] [stderr] 90 | / pub fn with_mut<F, R>(&self, f: F) -> R
[INFO] [stderr] 91 | | where
[INFO] [stderr] 92 | | F: FnOnce(*mut T) -> R,
[INFO] [stderr] 93 | | {
[INFO] [stderr] 94 | | f(self.0.get())
[INFO] [stderr] 95 | | }
[INFO] [stderr] | |_________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::{
[INFO] [stderr] 2 | | cfg::{self, CfgPrivate},
[INFO] [stderr] 3 | | page,
[INFO] [stderr] 4 | | sync::{
[INFO] [stderr] ... |
[INFO] [stderr] 180 | | }
[INFO] [stderr] 181 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:17:1
[INFO] [stderr] |
[INFO] [stderr] 17 | /// Uniquely identifies a thread.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:25:1
[INFO] [stderr] |
[INFO] [stderr] 25 | struct Registration(Cell<Option<usize>>);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:27:1
[INFO] [stderr] |
[INFO] [stderr] 27 | / struct Registry {
[INFO] [stderr] 28 | | next: AtomicUsize,
[INFO] [stderr] 29 | | free: Mutex<VecDeque<usize>>,
[INFO] [stderr] 30 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:32:1
[INFO] [stderr] |
[INFO] [stderr] 32 | / lazy_static! {
[INFO] [stderr] 33 | | static ref REGISTRY: Registry = Registry {
[INFO] [stderr] 34 | | next: AtomicUsize::new(0),
[INFO] [stderr] 35 | | free: Mutex::new(VecDeque::new()),
[INFO] [stderr] 36 | | };
[INFO] [stderr] 37 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:65:1
[INFO] [stderr] |
[INFO] [stderr] 65 | / impl<C: cfg::Config> Tid<C> {
[INFO] [stderr] 66 | | #[inline]
[INFO] [stderr] 67 | | pub(crate) fn current() -> Self {
[INFO] [stderr] 68 | | REGISTRATION
[INFO] [stderr] ... |
[INFO] [stderr] 82 | | }
[INFO] [stderr] 83 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:67:5
[INFO] [stderr] |
[INFO] [stderr] 67 | / pub(crate) fn current() -> Self {
[INFO] [stderr] 68 | | REGISTRATION
[INFO] [stderr] 69 | | .try_with(Registration::current)
[INFO] [stderr] 70 | | .unwrap_or_else(|_| Self::poisoned())
[INFO] [stderr] 71 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:73:5
[INFO] [stderr] |
[INFO] [stderr] 73 | / pub(crate) fn is_current(self) -> bool {
[INFO] [stderr] 74 | | REGISTRATION
[INFO] [stderr] 75 | | .try_with(|r| self == r.current::<C>())
[INFO] [stderr] 76 | | .unwrap_or(false)
[INFO] [stderr] 77 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:80:5
[INFO] [stderr] |
[INFO] [stderr] 80 | / pub fn new(id: usize) -> Self {
[INFO] [stderr] 81 | | Self::from_usize(id)
[INFO] [stderr] 82 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:85:1
[INFO] [stderr] |
[INFO] [stderr] 85 | / impl<C> Tid<C> {
[INFO] [stderr] 86 | | #[cold]
[INFO] [stderr] 87 | | fn poisoned() -> Self {
[INFO] [stderr] 88 | | Self {
[INFO] [stderr] ... |
[INFO] [stderr] 98 | | }
[INFO] [stderr] 99 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:87:5
[INFO] [stderr] |
[INFO] [stderr] 87 | / fn poisoned() -> Self {
[INFO] [stderr] 88 | | Self {
[INFO] [stderr] 89 | | id: std::usize::MAX,
[INFO] [stderr] 90 | | _not_send: PhantomData,
[INFO] [stderr] 91 | | _cfg: PhantomData,
[INFO] [stderr] 92 | | }
[INFO] [stderr] 93 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:95:5
[INFO] [stderr] |
[INFO] [stderr] 95 | /// Returns true if the local thread ID was accessed while unwinding.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:133:1
[INFO] [stderr] |
[INFO] [stderr] 133 | / impl Registration {
[INFO] [stderr] 134 | | fn new() -> Self {
[INFO] [stderr] 135 | | Self(Cell::new(None))
[INFO] [stderr] 136 | | }
[INFO] [stderr] ... |
[INFO] [stderr] 164 | | }
[INFO] [stderr] 165 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:134:5
[INFO] [stderr] |
[INFO] [stderr] 134 | / fn new() -> Self {
[INFO] [stderr] 135 | | Self(Cell::new(None))
[INFO] [stderr] 136 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:139:5
[INFO] [stderr] |
[INFO] [stderr] 139 | / fn current<C: cfg::Config>(&self) -> Tid<C> {
[INFO] [stderr] 140 | | if let Some(tid) = self.0.get().map(Tid::new) {
[INFO] [stderr] 141 | | tid
[INFO] [stderr] 142 | | } else {
[INFO] [stderr] 143 | | self.register()
[INFO] [stderr] 144 | | }
[INFO] [stderr] 145 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:148:5
[INFO] [stderr] |
[INFO] [stderr] 148 | / fn register<C: cfg::Config>(&self) -> Tid<C> {
[INFO] [stderr] 149 | | let id = REGISTRY
[INFO] [stderr] 150 | | .free
[INFO] [stderr] 151 | | .lock()
[INFO] [stderr] ... |
[INFO] [stderr] 163 | | Tid::new(id)
[INFO] [stderr] 164 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::page::{
[INFO] [stderr] 2 | | slot::{Generation, RefCount},
[INFO] [stderr] 3 | | Addr,
[INFO] [stderr] 4 | | };
[INFO] [stderr] ... |
[INFO] [stderr] 214 | | }
[INFO] [stderr] 215 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:7:1
[INFO] [stderr] |
[INFO] [stderr] 7 | /// Configuration parameters which can be overridden to tune the behavior of a slab.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:42:1
[INFO] [stderr] |
[INFO] [stderr] 42 | / pub(crate) trait CfgPrivate: Config {
[INFO] [stderr] 43 | | const USED_BITS: usize = Generation::<Self>::LEN + Generation::<Self>::SHIFT;
[INFO] [stderr] 44 | | const INITIAL_SZ: usize = next_pow2(Self::INITIAL_PAGE_SIZE);
[INFO] [stderr] 45 | | const MAX_SHARDS: usize = next_pow2(Self::MAX_THREADS - 1);
[INFO] [stderr] ... |
[INFO] [stderr] 112 | | }
[INFO] [stderr] 113 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:48:5
[INFO] [stderr] |
[INFO] [stderr] 48 | / fn page_size(n: usize) -> usize {
[INFO] [stderr] 49 | | Self::INITIAL_SZ * 2usize.pow(n as _)
[INFO] [stderr] 50 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:52:5
[INFO] [stderr] |
[INFO] [stderr] 52 | / fn debug() -> DebugConfig<Self> {
[INFO] [stderr] 53 | | DebugConfig { _cfg: PhantomData }
[INFO] [stderr] 54 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:56:5
[INFO] [stderr] |
[INFO] [stderr] 56 | / fn validate() {
[INFO] [stderr] 57 | | assert!(
[INFO] [stderr] 58 | | Self::INITIAL_SZ.is_power_of_two(),
[INFO] [stderr] 59 | | "invalid Config: {:#?}",
[INFO] [stderr] ... |
[INFO] [stderr] 91 | | );
[INFO] [stderr] 92 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:95:5
[INFO] [stderr] |
[INFO] [stderr] 95 | / fn unpack<A: Pack<Self>>(packed: usize) -> A {
[INFO] [stderr] 96 | | A::from_packed(packed)
[INFO] [stderr] 97 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:100:5
[INFO] [stderr] |
[INFO] [stderr] 100 | / fn unpack_addr(packed: usize) -> Addr<Self> {
[INFO] [stderr] 101 | | Self::unpack(packed)
[INFO] [stderr] 102 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:105:5
[INFO] [stderr] |
[INFO] [stderr] 105 | / fn unpack_tid(packed: usize) -> crate::Tid<Self> {
[INFO] [stderr] 106 | | Self::unpack(packed)
[INFO] [stderr] 107 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:110:5
[INFO] [stderr] |
[INFO] [stderr] 110 | / fn unpack_gen(packed: usize) -> Generation<Self> {
[INFO] [stderr] 111 | | Self::unpack(packed)
[INFO] [stderr] 112 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:116:1
[INFO] [stderr] |
[INFO] [stderr] 116 | /// Default slab configuration values.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:122:1
[INFO] [stderr] |
[INFO] [stderr] 122 | / pub(crate) struct DebugConfig<C: Config> {
[INFO] [stderr] 123 | | _cfg: PhantomData<fn(C)>,
[INFO] [stderr] 124 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:128:1
[INFO] [stderr] |
[INFO] [stderr] 128 | / pub(crate) const fn next_pow2(n: usize) -> usize {
[INFO] [stderr] 129 | | let pow2 = n.count_ones() == 1;
[INFO] [stderr] 130 | | let zeros = n.leading_zeros();
[INFO] [stderr] 131 | | 1 << (WIDTH - zeros as usize - pow2 as usize)
[INFO] [stderr] 132 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/iter.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::{page, shard};
[INFO] [stderr] 2 | | use std::slice;
[INFO] [stderr] 3 | |
[INFO] [stderr] 4 | | #[derive(Debug)]
[INFO] [stderr] ... |
[INFO] [stderr] 38 | | }
[INFO] [stderr] 39 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/iter.rs:5:1
[INFO] [stderr] |
[INFO] [stderr] 5 | / pub struct UniqueIter<'a, T, C: crate::cfg::Config> {
[INFO] [stderr] 6 | | pub(super) shards: shard::IterMut<'a, Option<T>, C>,
[INFO] [stderr] 7 | | pub(super) pages: slice::Iter<'a, page::Shared<Option<T>, C>>,
[INFO] [stderr] 8 | | pub(super) slots: Option<page::Iter<'a, T, C>>,
[INFO] [stderr] 9 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:1:1
[INFO] [stderr] |
[INFO] [stderr] 1 | / use crate::{
[INFO] [stderr] 2 | | cfg::{self, CfgPrivate},
[INFO] [stderr] 3 | | clear::Clear,
[INFO] [stderr] 4 | | page,
[INFO] [stderr] ... |
[INFO] [stderr] 424 | | }
[INFO] [stderr] 425 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:37:1
[INFO] [stderr] |
[INFO] [stderr] 37 | / pub(crate) struct Shard<T, C: cfg::Config> {
[INFO] [stderr] 38 | | /// The shard's parent thread ID.
[INFO] [stderr] 39 | | pub(crate) tid: usize,
[INFO] [stderr] 40 | | /// The local free list for each page.
[INFO] [stderr] ... |
[INFO] [stderr] 50 | | shared: Box<[page::Shared<T, C>]>,
[INFO] [stderr] 51 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:53:1
[INFO] [stderr] |
[INFO] [stderr] 53 | / pub(crate) struct Array<T, C: cfg::Config> {
[INFO] [stderr] 54 | | shards: Box<[Ptr<T, C>]>,
[INFO] [stderr] 55 | | max: AtomicUsize,
[INFO] [stderr] 56 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:59:1
[INFO] [stderr] |
[INFO] [stderr] 59 | struct Ptr<T, C: cfg::Config>(AtomicPtr<alloc::Track<Shard<T, C>>>);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:62:1
[INFO] [stderr] |
[INFO] [stderr] 62 | pub(crate) struct IterMut<'a, T: 'a, C: cfg::Config + 'a>(slice::IterMut<'a, Ptr<T, C>>);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:66:1
[INFO] [stderr] |
[INFO] [stderr] 66 | / impl<T, C> Shard<T, C>
[INFO] [stderr] 67 | | where
[INFO] [stderr] 68 | | C: cfg::Config,
[INFO] [stderr] 69 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 99 | | }
[INFO] [stderr] 100 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:71:5
[INFO] [stderr] |
[INFO] [stderr] 71 | / pub(crate) fn with_slot<'a, U>(
[INFO] [stderr] 72 | | &'a self,
[INFO] [stderr] 73 | | idx: usize,
[INFO] [stderr] 74 | | f: impl FnOnce(&'a page::Slot<T, C>) -> Option<U>,
[INFO] [stderr] ... |
[INFO] [stderr] 84 | | self.shared[page_index].with_slot(addr, f)
[INFO] [stderr] 85 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:87:5
[INFO] [stderr] |
[INFO] [stderr] 87 | / pub(crate) fn new(tid: usize) -> Self {
[INFO] [stderr] 88 | | let mut total_sz = 0;
[INFO] [stderr] 89 | | let shared = (0..C::MAX_PAGES)
[INFO] [stderr] 90 | | .map(|page_num| {
[INFO] [stderr] ... |
[INFO] [stderr] 98 | | Self { tid, local, shared }
[INFO] [stderr] 99 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:102:1
[INFO] [stderr] |
[INFO] [stderr] 102 | / impl<T, C> Shard<Option<T>, C>
[INFO] [stderr] 103 | | where
[INFO] [stderr] 104 | | C: cfg::Config,
[INFO] [stderr] 105 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 156 | | }
[INFO] [stderr] 157 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:106:5
[INFO] [stderr] |
[INFO] [stderr] 106 | /// Remove an item on the shard's local thread.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:118:5
[INFO] [stderr] |
[INFO] [stderr] 118 | /// Remove an item, while on a different thread from the shard's local thread.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:131:5
[INFO] [stderr] |
[INFO] [stderr] 131 | / pub(crate) fn remove_local(&self, idx: usize) -> bool {
[INFO] [stderr] 132 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 133 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 134 | |
[INFO] [stderr] ... |
[INFO] [stderr] 139 | | self.shared[page_index].remove(addr, C::unpack_gen(idx), self.local(page_index))
[INFO] [stderr] 140 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:142:5
[INFO] [stderr] |
[INFO] [stderr] 142 | / pub(crate) fn remove_remote(&self, idx: usize) -> bool {
[INFO] [stderr] 143 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 144 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 145 | |
[INFO] [stderr] ... |
[INFO] [stderr] 151 | | shared.remove(addr, C::unpack_gen(idx), shared.free_list())
[INFO] [stderr] 152 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:154:5
[INFO] [stderr] |
[INFO] [stderr] 154 | / pub(crate) fn iter<'a>(&'a self) -> std::slice::Iter<'a, page::Shared<Option<T>, C>> {
[INFO] [stderr] 155 | | self.shared.iter()
[INFO] [stderr] 156 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:159:1
[INFO] [stderr] |
[INFO] [stderr] 159 | / impl<T, C> Shard<T, C>
[INFO] [stderr] 160 | | where
[INFO] [stderr] 161 | | T: Clear + Default,
[INFO] [stderr] 162 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 253 | | }
[INFO] [stderr] 254 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:164:5
[INFO] [stderr] |
[INFO] [stderr] 164 | / pub(crate) fn init_with<U>(
[INFO] [stderr] 165 | | &self,
[INFO] [stderr] 166 | | mut init: impl FnMut(usize, &page::Slot<T, C>) -> Option<U>,
[INFO] [stderr] 167 | | ) -> Option<U> {
[INFO] [stderr] ... |
[INFO] [stderr] 179 | | None
[INFO] [stderr] 180 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:182:5
[INFO] [stderr] |
[INFO] [stderr] 182 | / pub(crate) fn mark_clear_local(&self, idx: usize) -> bool {
[INFO] [stderr] 183 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 184 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 185 | |
[INFO] [stderr] ... |
[INFO] [stderr] 190 | | self.shared[page_index].mark_clear(addr, C::unpack_gen(idx), self.local(page_index))
[INFO] [stderr] 191 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:193:5
[INFO] [stderr] |
[INFO] [stderr] 193 | / pub(crate) fn mark_clear_remote(&self, idx: usize) -> bool {
[INFO] [stderr] 194 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 195 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 196 | |
[INFO] [stderr] ... |
[INFO] [stderr] 202 | | shared.mark_clear(addr, C::unpack_gen(idx), shared.free_list())
[INFO] [stderr] 203 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:205:5
[INFO] [stderr] |
[INFO] [stderr] 205 | / pub(crate) fn clear_after_release(&self, idx: usize) {
[INFO] [stderr] 206 | | crate::sync::atomic::fence(crate::sync::atomic::Ordering::Acquire);
[INFO] [stderr] 207 | | let tid = Tid::<C>::current().as_usize();
[INFO] [stderr] 208 | | test_println!(
[INFO] [stderr] ... |
[INFO] [stderr] 217 | | }
[INFO] [stderr] 218 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:220:5
[INFO] [stderr] |
[INFO] [stderr] 220 | / fn clear_local(&self, idx: usize) -> bool {
[INFO] [stderr] 221 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 222 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 223 | |
[INFO] [stderr] ... |
[INFO] [stderr] 228 | | self.shared[page_index].clear(addr, C::unpack_gen(idx), self.local(page_index))
[INFO] [stderr] 229 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:231:5
[INFO] [stderr] |
[INFO] [stderr] 231 | / fn clear_remote(&self, idx: usize) -> bool {
[INFO] [stderr] 232 | | debug_assert_eq!(Tid::<C>::from_packed(idx).as_usize(), self.tid);
[INFO] [stderr] 233 | | let (addr, page_index) = page::indices::<C>(idx);
[INFO] [stderr] 234 | |
[INFO] [stderr] ... |
[INFO] [stderr] 240 | | shared.clear(addr, C::unpack_gen(idx), shared.free_list())
[INFO] [stderr] 241 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:244:5
[INFO] [stderr] |
[INFO] [stderr] 244 | / fn local(&self, i: usize) -> &page::Local {
[INFO] [stderr] 245 | | #[cfg(debug_assertions)]
[INFO] [stderr] 246 | | debug_assert_eq!(
[INFO] [stderr] 247 | | Tid::<C>::current().as_usize(),
[INFO] [stderr] ... |
[INFO] [stderr] 252 | | &self.local[i]
[INFO] [stderr] 253 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:268:1
[INFO] [stderr] |
[INFO] [stderr] 268 | / impl<T, C> Array<T, C>
[INFO] [stderr] 269 | | where
[INFO] [stderr] 270 | | C: cfg::Config,
[INFO] [stderr] 271 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 323 | | }
[INFO] [stderr] 324 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:272:5
[INFO] [stderr] |
[INFO] [stderr] 272 | / pub(crate) fn new() -> Self {
[INFO] [stderr] 273 | | let mut shards = Vec::with_capacity(C::MAX_SHARDS);
[INFO] [stderr] 274 | | for _ in 0..C::MAX_SHARDS {
[INFO] [stderr] 275 | | // XXX(eliza): T_T this could be avoided with maybeuninit or something...
[INFO] [stderr] ... |
[INFO] [stderr] 281 | | }
[INFO] [stderr] 282 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:285:5
[INFO] [stderr] |
[INFO] [stderr] 285 | / pub(crate) fn get<'a>(&'a self, idx: usize) -> Option<&'a Shard<T, C>> {
[INFO] [stderr] 286 | | test_println!("-> get shard={}", idx);
[INFO] [stderr] 287 | | self.shards.get(idx)?.load(Acquire)
[INFO] [stderr] 288 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:291:5
[INFO] [stderr] |
[INFO] [stderr] 291 | / pub(crate) fn current<'a>(&'a self) -> (Tid<C>, &'a Shard<T, C>) {
[INFO] [stderr] 292 | | let tid = Tid::<C>::current();
[INFO] [stderr] 293 | | test_println!("current: {:?}", tid);
[INFO] [stderr] 294 | | let idx = tid.as_usize();
[INFO] [stderr] ... |
[INFO] [stderr] 315 | | (tid, shard)
[INFO] [stderr] 316 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:318:5
[INFO] [stderr] |
[INFO] [stderr] 318 | / pub(crate) fn iter_mut(&mut self) -> IterMut<'_, T, C> {
[INFO] [stderr] 319 | | test_println!("Array::iter_mut");
[INFO] [stderr] 320 | | let max = self.max.load(Acquire);
[INFO] [stderr] 321 | | test_println!("-> highest index={}", max);
[INFO] [stderr] 322 | | IterMut(self.shards[0..=max].iter_mut())
[INFO] [stderr] 323 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:365:1
[INFO] [stderr] |
[INFO] [stderr] 365 | / impl<T, C: cfg::Config> Ptr<T, C> {
[INFO] [stderr] 366 | | #[inline]
[INFO] [stderr] 367 | | fn null() -> Self {
[INFO] [stderr] 368 | | Self(AtomicPtr::new(ptr::null_mut()))
[INFO] [stderr] ... |
[INFO] [stderr] 399 | | }
[INFO] [stderr] 400 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:367:5
[INFO] [stderr] |
[INFO] [stderr] 367 | / fn null() -> Self {
[INFO] [stderr] 368 | | Self(AtomicPtr::new(ptr::null_mut()))
[INFO] [stderr] 369 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:372:5
[INFO] [stderr] |
[INFO] [stderr] 372 | / fn load(&self, order: Ordering) -> Option<&Shard<T, C>> {
[INFO] [stderr] 373 | | let ptr = self.0.load(order);
[INFO] [stderr] 374 | | test_println!("---> loaded={:p} (order={:?})", ptr, order);
[INFO] [stderr] 375 | | if ptr.is_null() {
[INFO] [stderr] ... |
[INFO] [stderr] 391 | | Some(track.get_ref())
[INFO] [stderr] 392 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:395:5
[INFO] [stderr] |
[INFO] [stderr] 395 | / fn set(&self, new: *mut alloc::Track<Shard<T, C>>) {
[INFO] [stderr] 396 | | self.0
[INFO] [stderr] 397 | | .compare_exchange(ptr::null_mut(), new, AcqRel, Acquire)
[INFO] [stderr] 398 | | .expect("a shard can only be inserted by the thread that owns it, this is a bug!");
[INFO] [stderr] 399 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:250:1
[INFO] [stderr] |
[INFO] [stderr] 250 | / /// A sharded slab.
[INFO] [stderr] 251 | | ///
[INFO] [stderr] 252 | | /// See the [crate-level documentation](index.html) for details on using this type.
[INFO] [stderr] | |___________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:258:1
[INFO] [stderr] |
[INFO] [stderr] 258 | / /// A handle that allows access to an object in a slab.
[INFO] [stderr] 259 | | ///
[INFO] [stderr] 260 | | /// While the guard exists, it indicates to the slab that the item the guard
[INFO] [stderr] 261 | | /// references is currently being accessed. If the item is removed from the slab
[INFO] [stderr] 262 | | /// while a guard exists, the removal will be deferred until all guards are dropped.
[INFO] [stderr] | |____________________________________________________________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:394:1
[INFO] [stderr] |
[INFO] [stderr] 394 | / impl<T> Slab<T> {
[INFO] [stderr] 395 | | /// Returns a new slab with the default configuration parameters.
[INFO] [stderr] 396 | | pub fn new() -> Self {
[INFO] [stderr] 397 | | Self::new_with_config()
[INFO] [stderr] ... |
[INFO] [stderr] 407 | | }
[INFO] [stderr] 408 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:395:5
[INFO] [stderr] |
[INFO] [stderr] 395 | /// Returns a new slab with the default configuration parameters.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:400:5
[INFO] [stderr] |
[INFO] [stderr] 400 | /// Returns a new slab with the provided configuration parameters.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:410:1
[INFO] [stderr] |
[INFO] [stderr] 410 | / impl<T, C: cfg::Config> Slab<T, C> {
[INFO] [stderr] 411 | | /// The number of bits in each index which are used by the slab.
[INFO] [stderr] 412 | | ///
[INFO] [stderr] 413 | | /// If other data is packed into the `usize` indices returned by
[INFO] [stderr] ... |
[INFO] [stderr] 773 | | }
[INFO] [stderr] 774 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:762:5
[INFO] [stderr] |
[INFO] [stderr] 762 | /// Returns an iterator over all the items in the slab.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:796:1
[INFO] [stderr] |
[INFO] [stderr] 796 | / impl<'a, T, C: cfg::Config> Entry<'a, T, C> {
[INFO] [stderr] 797 | | /// Returns the key used to access the guard.
[INFO] [stderr] 798 | | pub fn key(&self) -> usize {
[INFO] [stderr] 799 | | self.key
[INFO] [stderr] ... |
[INFO] [stderr] 810 | | }
[INFO] [stderr] 811 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:797:5
[INFO] [stderr] |
[INFO] [stderr] 797 | /// Returns the key used to access the guard.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:803:5
[INFO] [stderr] |
[INFO] [stderr] 803 | / fn value(&self) -> &T {
[INFO] [stderr] 804 | | unsafe {
[INFO] [stderr] 805 | | // Safety: this is always going to be valid, as it's projected from
[INFO] [stderr] 806 | | // the safe reference to `self.value` --- this is just to avoid
[INFO] [stderr] ... |
[INFO] [stderr] 809 | | }
[INFO] [stderr] 810 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:860:1
[INFO] [stderr] |
[INFO] [stderr] 860 | / impl<'a, T, C: cfg::Config> VacantEntry<'a, T, C> {
[INFO] [stderr] 861 | | /// Insert a value in the entry.
[INFO] [stderr] 862 | | ///
[INFO] [stderr] 863 | | /// To get the key associated with the value, use `key` prior to calling
[INFO] [stderr] ... |
[INFO] [stderr] 929 | | }
[INFO] [stderr] 930 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:933:1
[INFO] [stderr] |
[INFO] [stderr] 933 | / impl<T, C> OwnedEntry<T, C>
[INFO] [stderr] 934 | | where
[INFO] [stderr] 935 | | C: cfg::Config,
[INFO] [stderr] 936 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 950 | | }
[INFO] [stderr] 951 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:937:5
[INFO] [stderr] |
[INFO] [stderr] 937 | /// Returns the key used to access this guard
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:943:5
[INFO] [stderr] |
[INFO] [stderr] 943 | / fn value(&self) -> &T {
[INFO] [stderr] 944 | | unsafe {
[INFO] [stderr] 945 | | // Safety: this is always going to be valid, as it's projected from
[INFO] [stderr] 946 | | // the safe reference to `self.value` --- this is just to avoid
[INFO] [stderr] ... |
[INFO] [stderr] 949 | | }
[INFO] [stderr] 950 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1027:1
[INFO] [stderr] |
[INFO] [stderr] 1027 | / pub(crate) trait Pack<C: cfg::Config>: Sized {
[INFO] [stderr] 1028 | | // ====== provided by each implementation =================================
[INFO] [stderr] 1029 | |
[INFO] [stderr] 1030 | | /// The number of bits occupied by this type when packed into a usize.
[INFO] [stderr] ... |
[INFO] [stderr] 1084 | | }
[INFO] [stderr] 1085 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1068:5
[INFO] [stderr] |
[INFO] [stderr] 1068 | fn as_usize(&self) -> usize;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1069:5
[INFO] [stderr] |
[INFO] [stderr] 1069 | fn from_usize(val: usize) -> Self;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1072:5
[INFO] [stderr] |
[INFO] [stderr] 1072 | / fn pack(&self, to: usize) -> usize {
[INFO] [stderr] 1073 | | let value = self.as_usize();
[INFO] [stderr] 1074 | | debug_assert!(value <= Self::BITS);
[INFO] [stderr] 1075 | |
[INFO] [stderr] 1076 | | (to & !Self::MASK) | (value << Self::SHIFT)
[INFO] [stderr] 1077 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1080:5
[INFO] [stderr] |
[INFO] [stderr] 1080 | / fn from_packed(from: usize) -> Self {
[INFO] [stderr] 1081 | | let value = (from & Self::MASK) >> Self::SHIFT;
[INFO] [stderr] 1082 | | debug_assert!(value <= Self::BITS);
[INFO] [stderr] 1083 | | Self::from_usize(value)
[INFO] [stderr] 1084 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:29:1
[INFO] [stderr] |
[INFO] [stderr] 29 | / impl<T> Clear for Option<T> {
[INFO] [stderr] 30 | | fn clear(&mut self) {
[INFO] [stderr] 31 | | let _ = self.take();
[INFO] [stderr] 32 | | }
[INFO] [stderr] 33 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:30:5
[INFO] [stderr] |
[INFO] [stderr] 30 | / fn clear(&mut self) {
[INFO] [stderr] 31 | | let _ = self.take();
[INFO] [stderr] 32 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:35:1
[INFO] [stderr] |
[INFO] [stderr] 35 | / impl<T> Clear for Box<T>
[INFO] [stderr] 36 | | where
[INFO] [stderr] 37 | | T: Clear,
[INFO] [stderr] 38 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 42 | | }
[INFO] [stderr] 43 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:40:5
[INFO] [stderr] |
[INFO] [stderr] 40 | / fn clear(&mut self) {
[INFO] [stderr] 41 | | self.deref_mut().clear()
[INFO] [stderr] 42 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:45:1
[INFO] [stderr] |
[INFO] [stderr] 45 | / impl<T> Clear for Vec<T> {
[INFO] [stderr] 46 | | #[inline]
[INFO] [stderr] 47 | | fn clear(&mut self) {
[INFO] [stderr] 48 | | Vec::clear(self)
[INFO] [stderr] 49 | | }
[INFO] [stderr] 50 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:47:5
[INFO] [stderr] |
[INFO] [stderr] 47 | / fn clear(&mut self) {
[INFO] [stderr] 48 | | Vec::clear(self)
[INFO] [stderr] 49 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:52:1
[INFO] [stderr] |
[INFO] [stderr] 52 | / impl<K, V, S> Clear for collections::HashMap<K, V, S>
[INFO] [stderr] 53 | | where
[INFO] [stderr] 54 | | K: hash::Hash + Eq,
[INFO] [stderr] 55 | | S: hash::BuildHasher,
[INFO] [stderr] ... |
[INFO] [stderr] 60 | | }
[INFO] [stderr] 61 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:58:5
[INFO] [stderr] |
[INFO] [stderr] 58 | / fn clear(&mut self) {
[INFO] [stderr] 59 | | collections::HashMap::clear(self)
[INFO] [stderr] 60 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:63:1
[INFO] [stderr] |
[INFO] [stderr] 63 | / impl<T, S> Clear for collections::HashSet<T, S>
[INFO] [stderr] 64 | | where
[INFO] [stderr] 65 | | T: hash::Hash + Eq,
[INFO] [stderr] 66 | | S: hash::BuildHasher,
[INFO] [stderr] ... |
[INFO] [stderr] 71 | | }
[INFO] [stderr] 72 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:69:5
[INFO] [stderr] |
[INFO] [stderr] 69 | / fn clear(&mut self) {
[INFO] [stderr] 70 | | collections::HashSet::clear(self)
[INFO] [stderr] 71 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:74:1
[INFO] [stderr] |
[INFO] [stderr] 74 | / impl Clear for String {
[INFO] [stderr] 75 | | #[inline]
[INFO] [stderr] 76 | | fn clear(&mut self) {
[INFO] [stderr] 77 | | String::clear(self)
[INFO] [stderr] 78 | | }
[INFO] [stderr] 79 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:76:5
[INFO] [stderr] |
[INFO] [stderr] 76 | / fn clear(&mut self) {
[INFO] [stderr] 77 | | String::clear(self)
[INFO] [stderr] 78 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:81:1
[INFO] [stderr] |
[INFO] [stderr] 81 | / impl<T: Clear> Clear for sync::Mutex<T> {
[INFO] [stderr] 82 | | #[inline]
[INFO] [stderr] 83 | | fn clear(&mut self) {
[INFO] [stderr] 84 | | self.get_mut().unwrap().clear();
[INFO] [stderr] 85 | | }
[INFO] [stderr] 86 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:83:5
[INFO] [stderr] |
[INFO] [stderr] 83 | / fn clear(&mut self) {
[INFO] [stderr] 84 | | self.get_mut().unwrap().clear();
[INFO] [stderr] 85 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:88:1
[INFO] [stderr] |
[INFO] [stderr] 88 | / impl<T: Clear> Clear for sync::RwLock<T> {
[INFO] [stderr] 89 | | #[inline]
[INFO] [stderr] 90 | | fn clear(&mut self) {
[INFO] [stderr] 91 | | self.write().unwrap().clear();
[INFO] [stderr] 92 | | }
[INFO] [stderr] 93 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/clear.rs:90:5
[INFO] [stderr] |
[INFO] [stderr] 90 | / fn clear(&mut self) {
[INFO] [stderr] 91 | | self.write().unwrap().clear();
[INFO] [stderr] 92 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:55:1
[INFO] [stderr] |
[INFO] [stderr] 55 | / impl<C: cfg::Config> super::FreeList<C> for TransferStack<C> {
[INFO] [stderr] 56 | | fn push<T>(&self, new_head: usize, slot: &super::Slot<T, C>) {
[INFO] [stderr] 57 | | self.push(new_head, |next| slot.set_next(next))
[INFO] [stderr] 58 | | }
[INFO] [stderr] 59 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/stack.rs:56:5
[INFO] [stderr] |
[INFO] [stderr] 56 | / fn push<T>(&self, new_head: usize, slot: &super::Slot<T, C>) {
[INFO] [stderr] 57 | | self.push(new_head, |next| slot.set_next(next))
[INFO] [stderr] 58 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:113:1
[INFO] [stderr] |
[INFO] [stderr] 113 | / impl<C: cfg::Config> FreeList<C> for Local {
[INFO] [stderr] 114 | | fn push<T>(&self, new_head: usize, slot: &Slot<T, C>) {
[INFO] [stderr] 115 | | slot.set_next(self.head());
[INFO] [stderr] 116 | | self.set_head(new_head);
[INFO] [stderr] 117 | | }
[INFO] [stderr] 118 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:114:5
[INFO] [stderr] |
[INFO] [stderr] 114 | / fn push<T>(&self, new_head: usize, slot: &Slot<T, C>) {
[INFO] [stderr] 115 | | slot.set_next(self.head());
[INFO] [stderr] 116 | | self.set_head(new_head);
[INFO] [stderr] 117 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:136:1
[INFO] [stderr] |
[INFO] [stderr] 136 | / impl Config for DefaultConfig {
[INFO] [stderr] 137 | | const INITIAL_PAGE_SIZE: usize = 32;
[INFO] [stderr] 138 | |
[INFO] [stderr] 139 | | #[cfg(target_pointer_width = "64")]
[INFO] [stderr] ... |
[INFO] [stderr] 145 | | const MAX_PAGES: usize = WIDTH / 2;
[INFO] [stderr] 146 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/cfg.rs:114:1
[INFO] [stderr] |
[INFO] [stderr] 114 | impl<C: Config> CfgPrivate for C {}
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:56:1
[INFO] [stderr] |
[INFO] [stderr] 56 | / impl<C: cfg::Config> Pack<C> for Generation<C> {
[INFO] [stderr] 57 | | /// Use all the remaining bits in the word for the generation counter, minus
[INFO] [stderr] 58 | | /// any bits reserved by the user.
[INFO] [stderr] 59 | | const LEN: usize = (cfg::WIDTH - C::RESERVED_BITS) - Self::SHIFT;
[INFO] [stderr] ... |
[INFO] [stderr] 72 | | }
[INFO] [stderr] 73 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:64:5
[INFO] [stderr] |
[INFO] [stderr] 64 | / fn from_usize(u: usize) -> Self {
[INFO] [stderr] 65 | | debug_assert!(u <= Self::BITS);
[INFO] [stderr] 66 | | Self::new(u)
[INFO] [stderr] 67 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:70:5
[INFO] [stderr] |
[INFO] [stderr] 70 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 71 | | self.value
[INFO] [stderr] 72 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:649:1
[INFO] [stderr] |
[INFO] [stderr] 649 | / impl<C: cfg::Config> Pack<C> for Lifecycle<C> {
[INFO] [stderr] 650 | | const LEN: usize = 2;
[INFO] [stderr] 651 | | type Prev = ();
[INFO] [stderr] 652 | |
[INFO] [stderr] ... |
[INFO] [stderr] 667 | | }
[INFO] [stderr] 668 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:653:5
[INFO] [stderr] |
[INFO] [stderr] 653 | / fn from_usize(u: usize) -> Self {
[INFO] [stderr] 654 | | Self {
[INFO] [stderr] 655 | | state: match u & Self::MASK {
[INFO] [stderr] 656 | | 0b00 => State::Present,
[INFO] [stderr] ... |
[INFO] [stderr] 662 | | }
[INFO] [stderr] 663 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:665:5
[INFO] [stderr] |
[INFO] [stderr] 665 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 666 | | self.state as usize
[INFO] [stderr] 667 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:686:1
[INFO] [stderr] |
[INFO] [stderr] 686 | / impl<C: cfg::Config> Pack<C> for RefCount<C> {
[INFO] [stderr] 687 | | const LEN: usize = cfg::WIDTH - (Lifecycle::<C>::LEN + Generation::<C>::LEN);
[INFO] [stderr] 688 | | type Prev = Lifecycle<C>;
[INFO] [stderr] 689 | |
[INFO] [stderr] ... |
[INFO] [stderr] 700 | | }
[INFO] [stderr] 701 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:690:5
[INFO] [stderr] |
[INFO] [stderr] 690 | / fn from_usize(value: usize) -> Self {
[INFO] [stderr] 691 | | debug_assert!(value <= Self::BITS);
[INFO] [stderr] 692 | | Self {
[INFO] [stderr] 693 | | value,
[INFO] [stderr] 694 | | _cfg: PhantomData,
[INFO] [stderr] 695 | | }
[INFO] [stderr] 696 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:698:5
[INFO] [stderr] |
[INFO] [stderr] 698 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 699 | | self.value
[INFO] [stderr] 700 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:758:1
[INFO] [stderr] |
[INFO] [stderr] 758 | / impl<C: cfg::Config> Pack<C> for LifecycleGen<C> {
[INFO] [stderr] 759 | | const LEN: usize = Generation::<C>::LEN;
[INFO] [stderr] 760 | | type Prev = RefCount<C>;
[INFO] [stderr] 761 | |
[INFO] [stderr] ... |
[INFO] [stderr] 768 | | }
[INFO] [stderr] 769 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:762:5
[INFO] [stderr] |
[INFO] [stderr] 762 | / fn from_usize(value: usize) -> Self {
[INFO] [stderr] 763 | | Self(Generation::from_usize(value))
[INFO] [stderr] 764 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/slot.rs:766:5
[INFO] [stderr] |
[INFO] [stderr] 766 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 767 | | self.0.as_usize()
[INFO] [stderr] 768 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:48:1
[INFO] [stderr] |
[INFO] [stderr] 48 | / impl<C: cfg::Config> Pack<C> for Addr<C> {
[INFO] [stderr] 49 | | const LEN: usize = C::MAX_PAGES + C::ADDR_INDEX_SHIFT;
[INFO] [stderr] 50 | |
[INFO] [stderr] 51 | | type Prev = ();
[INFO] [stderr] ... |
[INFO] [stderr] 63 | | }
[INFO] [stderr] 64 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:53:5
[INFO] [stderr] |
[INFO] [stderr] 53 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 54 | | self.addr
[INFO] [stderr] 55 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/page/mod.rs:57:5
[INFO] [stderr] |
[INFO] [stderr] 57 | / fn from_usize(addr: usize) -> Self {
[INFO] [stderr] 58 | | debug_assert!(addr <= Self::BITS);
[INFO] [stderr] 59 | | Self {
[INFO] [stderr] 60 | | addr,
[INFO] [stderr] 61 | | _cfg: PhantomData,
[INFO] [stderr] 62 | | }
[INFO] [stderr] 63 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:45:1
[INFO] [stderr] |
[INFO] [stderr] 45 | / impl<C: cfg::Config> Pack<C> for Tid<C> {
[INFO] [stderr] 46 | | const LEN: usize = C::MAX_SHARDS.trailing_zeros() as usize + 1;
[INFO] [stderr] 47 | |
[INFO] [stderr] 48 | | type Prev = page::Addr<C>;
[INFO] [stderr] ... |
[INFO] [stderr] 62 | | }
[INFO] [stderr] 63 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:51:5
[INFO] [stderr] |
[INFO] [stderr] 51 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 52 | | self.id
[INFO] [stderr] 53 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:56:5
[INFO] [stderr] |
[INFO] [stderr] 56 | / fn from_usize(id: usize) -> Self {
[INFO] [stderr] 57 | | Self {
[INFO] [stderr] 58 | | id,
[INFO] [stderr] 59 | | _not_send: PhantomData,
[INFO] [stderr] 60 | | _cfg: PhantomData,
[INFO] [stderr] 61 | | }
[INFO] [stderr] 62 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1087:1
[INFO] [stderr] |
[INFO] [stderr] 1087 | / impl<C: cfg::Config> Pack<C> for () {
[INFO] [stderr] 1088 | | const BITS: usize = 0;
[INFO] [stderr] 1089 | | const LEN: usize = 0;
[INFO] [stderr] 1090 | | const SHIFT: usize = 0;
[INFO] [stderr] ... |
[INFO] [stderr] 1108 | | }
[INFO] [stderr] 1109 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1095:5
[INFO] [stderr] |
[INFO] [stderr] 1095 | / fn as_usize(&self) -> usize {
[INFO] [stderr] 1096 | | unreachable!()
[INFO] [stderr] 1097 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1098:5
[INFO] [stderr] |
[INFO] [stderr] 1098 | / fn from_usize(_val: usize) -> Self {
[INFO] [stderr] 1099 | | unreachable!()
[INFO] [stderr] 1100 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1102:5
[INFO] [stderr] |
[INFO] [stderr] 1102 | / fn pack(&self, _to: usize) -> usize {
[INFO] [stderr] 1103 | | unreachable!()
[INFO] [stderr] 1104 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1106:5
[INFO] [stderr] |
[INFO] [stderr] 1106 | / fn from_packed(_from: usize) -> Self {
[INFO] [stderr] 1107 | | unreachable!()
[INFO] [stderr] 1108 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:836:1
[INFO] [stderr] |
[INFO] [stderr] 836 | / unsafe impl<T, C> Send for Pool<T, C>
[INFO] [stderr] 837 | | where
[INFO] [stderr] 838 | | T: Send + Clear + Default,
[INFO] [stderr] 839 | | C: cfg::Config,
[INFO] [stderr] 840 | | {
[INFO] [stderr] 841 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1173:1
[INFO] [stderr] |
[INFO] [stderr] 1173 | / unsafe impl<T, C> Send for OwnedRef<T, C>
[INFO] [stderr] 1174 | | where
[INFO] [stderr] 1175 | | T: Sync + Clear + Default,
[INFO] [stderr] 1176 | | C: cfg::Config,
[INFO] [stderr] 1177 | | {
[INFO] [stderr] 1178 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1337:1
[INFO] [stderr] |
[INFO] [stderr] 1337 | / unsafe impl<T, C> Send for OwnedRefMut<T, C>
[INFO] [stderr] 1338 | | where
[INFO] [stderr] 1339 | | T: Sync + Clear + Default,
[INFO] [stderr] 1340 | | C: cfg::Config,
[INFO] [stderr] 1341 | | {
[INFO] [stderr] 1342 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:791:1
[INFO] [stderr] |
[INFO] [stderr] 791 | unsafe impl<T: Send, C: cfg::Config> Send for Slab<T, C> {}
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1018:1
[INFO] [stderr] |
[INFO] [stderr] 1018 | / unsafe impl<T, C> Send for OwnedEntry<T, C>
[INFO] [stderr] 1019 | | where
[INFO] [stderr] 1020 | | T: Sync,
[INFO] [stderr] 1021 | | C: cfg::Config,
[INFO] [stderr] 1022 | | {
[INFO] [stderr] 1023 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:842:1
[INFO] [stderr] |
[INFO] [stderr] 842 | / unsafe impl<T, C> Sync for Pool<T, C>
[INFO] [stderr] 843 | | where
[INFO] [stderr] 844 | | T: Sync + Clear + Default,
[INFO] [stderr] 845 | | C: cfg::Config,
[INFO] [stderr] 846 | | {
[INFO] [stderr] 847 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1166:1
[INFO] [stderr] |
[INFO] [stderr] 1166 | / unsafe impl<T, C> Sync for OwnedRef<T, C>
[INFO] [stderr] 1167 | | where
[INFO] [stderr] 1168 | | T: Sync + Clear + Default,
[INFO] [stderr] 1169 | | C: cfg::Config,
[INFO] [stderr] 1170 | | {
[INFO] [stderr] 1171 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1330:1
[INFO] [stderr] |
[INFO] [stderr] 1330 | / unsafe impl<T, C> Sync for OwnedRefMut<T, C>
[INFO] [stderr] 1331 | | where
[INFO] [stderr] 1332 | | T: Sync + Clear + Default,
[INFO] [stderr] 1333 | | C: cfg::Config,
[INFO] [stderr] 1334 | | {
[INFO] [stderr] 1335 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:792:1
[INFO] [stderr] |
[INFO] [stderr] 792 | unsafe impl<T: Sync, C: cfg::Config> Sync for Slab<T, C> {}
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:1011:1
[INFO] [stderr] |
[INFO] [stderr] 1011 | / unsafe impl<T, C> Sync for OwnedEntry<T, C>
[INFO] [stderr] 1012 | | where
[INFO] [stderr] 1013 | | T: Sync,
[INFO] [stderr] 1014 | | C: cfg::Config,
[INFO] [stderr] 1015 | | {
[INFO] [stderr] 1016 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:908:1
[INFO] [stderr] |
[INFO] [stderr] 908 | / impl<'a, T, C> Drop for Ref<'a, T, C>
[INFO] [stderr] 909 | | where
[INFO] [stderr] 910 | | T: Clear + Default,
[INFO] [stderr] 911 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 927 | | }
[INFO] [stderr] 928 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:913:5
[INFO] [stderr] |
[INFO] [stderr] 913 | / fn drop(&mut self) {
[INFO] [stderr] 914 | | test_println!("drop Ref: try clearing data");
[INFO] [stderr] 915 | | let should_clear = unsafe {
[INFO] [stderr] 916 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] ... |
[INFO] [stderr] 926 | | }
[INFO] [stderr] 927 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1043:1
[INFO] [stderr] |
[INFO] [stderr] 1043 | / impl<'a, T, C> Drop for RefMut<'a, T, C>
[INFO] [stderr] 1044 | | where
[INFO] [stderr] 1045 | | T: Clear + Default,
[INFO] [stderr] 1046 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1058 | | }
[INFO] [stderr] 1059 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1048:5
[INFO] [stderr] |
[INFO] [stderr] 1048 | / fn drop(&mut self) {
[INFO] [stderr] 1049 | | test_println!(" -> drop RefMut: try clearing data");
[INFO] [stderr] 1050 | | let should_clear = unsafe {
[INFO] [stderr] 1051 | | // Safety: we are holding a reference to the shard which keeps the
[INFO] [stderr] ... |
[INFO] [stderr] 1057 | | }
[INFO] [stderr] 1058 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1118:1
[INFO] [stderr] |
[INFO] [stderr] 1118 | / impl<T, C> Drop for OwnedRef<T, C>
[INFO] [stderr] 1119 | | where
[INFO] [stderr] 1120 | | T: Clear + Default,
[INFO] [stderr] 1121 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1143 | | }
[INFO] [stderr] 1144 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1123:5
[INFO] [stderr] |
[INFO] [stderr] 1123 | / fn drop(&mut self) {
[INFO] [stderr] 1124 | | test_println!("drop OwnedRef: try clearing data");
[INFO] [stderr] 1125 | | let should_clear = unsafe {
[INFO] [stderr] 1126 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] ... |
[INFO] [stderr] 1142 | | }
[INFO] [stderr] 1143 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1284:1
[INFO] [stderr] |
[INFO] [stderr] 1284 | / impl<T, C> Drop for OwnedRefMut<T, C>
[INFO] [stderr] 1285 | | where
[INFO] [stderr] 1286 | | T: Clear + Default,
[INFO] [stderr] 1287 | | C: cfg::Config,
[INFO] [stderr] ... |
[INFO] [stderr] 1307 | | }
[INFO] [stderr] 1308 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/pool.rs:1289:5
[INFO] [stderr] |
[INFO] [stderr] 1289 | / fn drop(&mut self) {
[INFO] [stderr] 1290 | | test_println!("drop OwnedRefMut: try clearing data");
[INFO] [stderr] 1291 | | let should_clear = unsafe {
[INFO] [stderr] 1292 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] ... |
[INFO] [stderr] 1306 | | }
[INFO] [stderr] 1307 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:173:1
[INFO] [stderr] |
[INFO] [stderr] 173 | / impl Drop for Registration {
[INFO] [stderr] 174 | | fn drop(&mut self) {
[INFO] [stderr] 175 | | if let Some(id) = self.0.get() {
[INFO] [stderr] 176 | | if let Ok(mut free) = REGISTRY.free.lock() {
[INFO] [stderr] ... |
[INFO] [stderr] 180 | | }
[INFO] [stderr] 181 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/tid.rs:174:5
[INFO] [stderr] |
[INFO] [stderr] 174 | / fn drop(&mut self) {
[INFO] [stderr] 175 | | if let Some(id) = self.0.get() {
[INFO] [stderr] 176 | | if let Ok(mut free) = REGISTRY.free.lock() {
[INFO] [stderr] 177 | | free.push_back(id);
[INFO] [stderr] 178 | | }
[INFO] [stderr] 179 | | }
[INFO] [stderr] 180 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:326:1
[INFO] [stderr] |
[INFO] [stderr] 326 | / impl<T, C: cfg::Config> Drop for Array<T, C> {
[INFO] [stderr] 327 | | fn drop(&mut self) {
[INFO] [stderr] 328 | | // XXX(eliza): this could be `with_mut` if we wanted to impl a wrapper for std atomics to change `get_mut` to `with_mut`...
[INFO] [stderr] 329 | | let max = self.max.load(Acquire);
[INFO] [stderr] ... |
[INFO] [stderr] 344 | | }
[INFO] [stderr] 345 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/shard.rs:327:5
[INFO] [stderr] |
[INFO] [stderr] 327 | / fn drop(&mut self) {
[INFO] [stderr] 328 | | // XXX(eliza): this could be `with_mut` if we wanted to impl a wrapper for std atomics to change `get_mut` to `with_mut`...
[INFO] [stderr] 329 | | let max = self.max.load(Acquire);
[INFO] [stderr] 330 | | for shard in &self.shards[0..=max] {
[INFO] [stderr] ... |
[INFO] [stderr] 343 | | }
[INFO] [stderr] 344 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:821:1
[INFO] [stderr] |
[INFO] [stderr] 821 | / impl<'a, T, C: cfg::Config> Drop for Entry<'a, T, C> {
[INFO] [stderr] 822 | | fn drop(&mut self) {
[INFO] [stderr] 823 | | let should_remove = unsafe {
[INFO] [stderr] 824 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] ... |
[INFO] [stderr] 835 | | }
[INFO] [stderr] 836 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:822:5
[INFO] [stderr] |
[INFO] [stderr] 822 | / fn drop(&mut self) {
[INFO] [stderr] 823 | | let should_remove = unsafe {
[INFO] [stderr] 824 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] 825 | | // `Guard` value contains a pointer to the slot that may outlive the
[INFO] [stderr] ... |
[INFO] [stderr] 834 | | }
[INFO] [stderr] 835 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:964:1
[INFO] [stderr] |
[INFO] [stderr] 964 | / impl<T, C> Drop for OwnedEntry<T, C>
[INFO] [stderr] 965 | | where
[INFO] [stderr] 966 | | C: cfg::Config,
[INFO] [stderr] 967 | | {
[INFO] [stderr] ... |
[INFO] [stderr] 988 | | }
[INFO] [stderr] 989 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:968:5
[INFO] [stderr] |
[INFO] [stderr] 968 | / fn drop(&mut self) {
[INFO] [stderr] 969 | | test_println!("drop OwnedEntry: try clearing data");
[INFO] [stderr] 970 | | let should_clear = unsafe {
[INFO] [stderr] 971 | | // Safety: calling `slot::Guard::release` is unsafe, since the
[INFO] [stderr] ... |
[INFO] [stderr] 987 | | }
[INFO] [stderr] 988 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/iter.rs:11:1
[INFO] [stderr] |
[WARN] too much data in the log, truncating it