Build #288494 2020-09-01 19:26:51
# rustc version
rustc 1.48.0-nightly (d006f5734 2020-08-28)# docs.rs version
docsrs 0.6.0 (e1ae6d9 2020-08-30)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/aligned_box-0.2.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/aligned_box-0.2.0/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" "RUSTDOCFLAGS=-Z unstable-options --static-root-path / --cap-lints warn --extern-html-root-url lazy_static=https://docs.rs/lazy_static/1.4.0 --resource-suffix -20200828-1.48.0-nightly-d006f5734" "-e" "RUSTFLAGS=" "-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:e18d859f9e32a1da89bc7b2d7d51e13b57342044d1295d9fc0dd0068c58eb3d1" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "doc" "--lib" "--no-deps" "-j2", kill_on_drop: false }`
[INFO] [stdout] 139bd1abd716facad57d0ec83dd4171da756c4b1c9d75f1392924d2c3cfca6b8
[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" "139bd1abd716facad57d0ec83dd4171da756c4b1c9d75f1392924d2c3cfca6b8", kill_on_drop: false }`
[INFO] [stderr] /opt/crates-build-env/entrypoint.sh: line 7: /etc/hosts: Permission denied
[INFO] [stderr] Documenting aligned_box v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:5:1
[INFO] [stderr] |
[INFO] [stderr] 5 | //! Allocate heap memory with user-specified alignment.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr] --> src/lib.rs:2:9
[INFO] [stderr] |
[INFO] [stderr] 2 | #![warn(missing_doc_code_examples)]
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:30:1
[INFO] [stderr] |
[INFO] [stderr] 30 | / /// A wrapper around `std::boxed::Box` which allows allocating aligned heap memory. An instance of
[INFO] [stderr] 31 | | /// `AlignedBox<T>` consists of a `Box<T>` and the `std::alloc::Layout` that has been used to
[INFO] [stderr] 32 | | /// allocate the referenced memory.
[INFO] [stderr] | |___________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:7:1
[INFO] [stderr] |
[INFO] [stderr] 7 | /// Error type for custom errors of `AlignedBox`.
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:92:1
[INFO] [stderr] |
[INFO] [stderr] 92 | / impl<T: ?Sized> AlignedBox<T> {
[INFO] [stderr] 93 | | /// Decompose the `AlignedBox` into a raw pointer and the layout used during allocation.
[INFO] [stderr] 94 | | /// The caller of this function becomes responsible for proper deallocation of the memory
[INFO] [stderr] 95 | | /// behind the pointer. This can for example be done by reconstructing the `AlignedBox` using
[INFO] [stderr] ... |
[INFO] [stderr] 119 | | }
[INFO] [stderr] 120 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:93:5
[INFO] [stderr] |
[INFO] [stderr] 93 | / /// Decompose the `AlignedBox` into a raw pointer and the layout used during allocation.
[INFO] [stderr] 94 | | /// The caller of this function becomes responsible for proper deallocation of the memory
[INFO] [stderr] 95 | | /// behind the pointer. This can for example be done by reconstructing the `AlignedBox` using
[INFO] [stderr] 96 | | /// `AlignedBox::from_raw_parts`.
[INFO] [stderr] | |_____________________________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:106:5
[INFO] [stderr] |
[INFO] [stderr] 106 | / /// Construct an `AlignedBox` from a raw pointer and the layout that has been used to allocate
[INFO] [stderr] 107 | | /// the memory behind that pointer. After calling this function, the pointer is owned by the
[INFO] [stderr] 108 | | /// `AlignedBox`. In particular, the memory will be freed when the `AlignedBox` is dropped.
[INFO] [stderr] 109 | | /// This is only safe if the given layout is the same as the one that was used during memory
[INFO] [stderr] ... |
[INFO] [stderr] 114 | | /// behavior is undefined if the given layout does not correspond to the one used for
[INFO] [stderr] 115 | | /// allocation.
[INFO] [stderr] | |___________________^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:122:1
[INFO] [stderr] |
[INFO] [stderr] 122 | / impl<T> AlignedBox<T> {
[INFO] [stderr] 123 | | /// Store `value` of type `T` on the heap, making sure that it is aligned to a multiple of
[INFO] [stderr] 124 | | /// `alignment`. It is also checked if `alignment` is a valid alignment for type `T` or
[INFO] [stderr] 125 | | /// increased to a valid alignment otherwise.
[INFO] [stderr] ... |
[INFO] [stderr] 165 | | }
[INFO] [stderr] 166 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:168:1
[INFO] [stderr] |
[INFO] [stderr] 168 | / impl<T: Default> AlignedBox<[T]> {
[INFO] [stderr] 169 | | /// Allocate memory for `nelems` values of type `T` on the heap, making sure that it is aligned
[INFO] [stderr] 170 | | /// to a multiple of `alignment`. All values are initialized by the default value of type `T`.
[INFO] [stderr] 171 | | /// It is also checked if `alignment` is a valid alignment for type `T` or increased to a
[INFO] [stderr] ... |
[INFO] [stderr] 228 | | }
[INFO] [stderr] 229 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:231:1
[INFO] [stderr] |
[INFO] [stderr] 231 | / impl<T: Copy> AlignedBox<[T]> {
[INFO] [stderr] 232 | | /// Allocate memory for `nelems` values of type `T` on the heap, making sure that it is aligned
[INFO] [stderr] 233 | | /// to a multiple of `alignment`. All values are initialized by copies of `value`. It is also
[INFO] [stderr] 234 | | /// checked if `alignment` is a valid alignment for type `T` or increased to a
[INFO] [stderr] ... |
[INFO] [stderr] 288 | | }
[INFO] [stderr] 289 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:59:1
[INFO] [stderr] |
[INFO] [stderr] 59 | / impl<T: ?Sized> Drop for AlignedBox<T> {
[INFO] [stderr] 60 | | fn drop(&mut self) {
[INFO] [stderr] 61 | | // self.container is always Some, so we can just unwrap
[INFO] [stderr] 62 | | let container = self.container.take().unwrap();
[INFO] [stderr] ... |
[INFO] [stderr] 66 | | }
[INFO] [stderr] 67 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:60:5
[INFO] [stderr] |
[INFO] [stderr] 60 | / fn drop(&mut self) {
[INFO] [stderr] 61 | | // self.container is always Some, so we can just unwrap
[INFO] [stderr] 62 | | let container = self.container.take().unwrap();
[INFO] [stderr] 63 | | unsafe {
[INFO] [stderr] 64 | | std::alloc::dealloc(std::boxed::Box::into_raw(container) as *mut u8, self.layout);
[INFO] [stderr] 65 | | }
[INFO] [stderr] 66 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:69:1
[INFO] [stderr] |
[INFO] [stderr] 69 | / impl<T: Clone + ?Sized> Clone for AlignedBox<T> {
[INFO] [stderr] 70 | | fn clone(&self) -> Self {
[INFO] [stderr] 71 | | // layout is certainly valid as it has already been used to create self
[INFO] [stderr] 72 | | let ptr = unsafe { std::alloc::alloc(self.layout) as *mut T };
[INFO] [stderr] ... |
[INFO] [stderr] 89 | | }
[INFO] [stderr] 90 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:70:5
[INFO] [stderr] |
[INFO] [stderr] 70 | / fn clone(&self) -> Self {
[INFO] [stderr] 71 | | // layout is certainly valid as it has already been used to create self
[INFO] [stderr] 72 | | let ptr = unsafe { std::alloc::alloc(self.layout) as *mut T };
[INFO] [stderr] 73 | | if ptr.is_null() {
[INFO] [stderr] ... |
[INFO] [stderr] 88 | | b
[INFO] [stderr] 89 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:43:1
[INFO] [stderr] |
[INFO] [stderr] 43 | / impl<T: ?Sized> std::ops::Deref for AlignedBox<T> {
[INFO] [stderr] 44 | | type Target = T;
[INFO] [stderr] 45 | |
[INFO] [stderr] 46 | | fn deref(&self) -> &T {
[INFO] [stderr] ... |
[INFO] [stderr] 49 | | }
[INFO] [stderr] 50 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:46:5
[INFO] [stderr] |
[INFO] [stderr] 46 | / fn deref(&self) -> &T {
[INFO] [stderr] 47 | | // self.container is always Some, so we can just unwrap
[INFO] [stderr] 48 | | return self.container.as_deref().unwrap();
[INFO] [stderr] 49 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:52:1
[INFO] [stderr] |
[INFO] [stderr] 52 | / impl<T: ?Sized> std::ops::DerefMut for AlignedBox<T> {
[INFO] [stderr] 53 | | fn deref_mut(&mut self) -> &mut T {
[INFO] [stderr] 54 | | // self.container is always Some, so we can just unwrap
[INFO] [stderr] 55 | | return self.container.as_deref_mut().unwrap();
[INFO] [stderr] 56 | | }
[INFO] [stderr] 57 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:53:5
[INFO] [stderr] |
[INFO] [stderr] 53 | / fn deref_mut(&mut self) -> &mut T {
[INFO] [stderr] 54 | | // self.container is always Some, so we can just unwrap
[INFO] [stderr] 55 | | return self.container.as_deref_mut().unwrap();
[INFO] [stderr] 56 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:20:1
[INFO] [stderr] |
[INFO] [stderr] 20 | / impl std::fmt::Display for AlignedBoxError {
[INFO] [stderr] 21 | | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stderr] 22 | | match self {
[INFO] [stderr] 23 | | AlignedBoxError::TooManyElements => write!(f, "Too many elements for a slice."),
[INFO] [stderr] ... |
[INFO] [stderr] 27 | | }
[INFO] [stderr] 28 | | }
[INFO] [stderr] | |_^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:21:5
[INFO] [stderr] |
[INFO] [stderr] 21 | / fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stderr] 22 | | match self {
[INFO] [stderr] 23 | | AlignedBoxError::TooManyElements => write!(f, "Too many elements for a slice."),
[INFO] [stderr] 24 | | AlignedBoxError::OutOfMemory => write!(f, "Memory allocation failed. Out of memory?"),
[INFO] [stderr] 25 | | AlignedBoxError::ZeroAlloc => write!(f, "Zero byte allocations not supported."),
[INFO] [stderr] 26 | | }
[INFO] [stderr] 27 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr]
[INFO] [stderr] warning: missing code example in this documentation
[INFO] [stderr] --> src/lib.rs:18:1
[INFO] [stderr] |
[INFO] [stderr] 18 | impl std::error::Error for AlignedBoxError {}
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: 20 warnings emitted
[INFO] [stderr]
[INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.15s
[INFO] running `Command { std: "docker" "inspect" "139bd1abd716facad57d0ec83dd4171da756c4b1c9d75f1392924d2c3cfca6b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "139bd1abd716facad57d0ec83dd4171da756c4b1c9d75f1392924d2c3cfca6b8", kill_on_drop: false }`
[INFO] [stdout] 139bd1abd716facad57d0ec83dd4171da756c4b1c9d75f1392924d2c3cfca6b8