[INFO] cloning repository https://github.com/phiresky/track-pc-usage-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/phiresky/track-pc-usage-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Ftrack-pc-usage-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Ftrack-pc-usage-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a6754c2e14c95c6008a264703de71949d3540835 [INFO] checking phiresky/track-pc-usage-rs against try#6f12b8fe67b4eed2e838dab803ed9493b9d62c0f for pr-79073 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Ftrack-pc-usage-rs" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/phiresky/track-pc-usage-rs on toolchain 6f12b8fe67b4eed2e838dab803ed9493b9d62c0f [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+6f12b8fe67b4eed2e838dab803ed9493b9d62c0f" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/phiresky/track-pc-usage-rs [INFO] finished tweaking git repo https://github.com/phiresky/track-pc-usage-rs [INFO] tweaked toml for git repo https://github.com/phiresky/track-pc-usage-rs written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/phiresky/track-pc-usage-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+6f12b8fe67b4eed2e838dab803ed9493b9d62c0f" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/onelson/typescript-definitions` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded jobserver v0.1.21 [INFO] [stderr] Downloaded tar v0.4.29 [INFO] [stderr] Downloaded miniz_oxide v0.4.0 [INFO] [stderr] Downloaded hermit-abi v0.1.15 [INFO] [stderr] Downloaded backtrace v0.3.50 [INFO] [stderr] Downloaded enum-utils v0.1.2 [INFO] [stderr] Downloaded autocfg v0.1.7 [INFO] [stderr] Downloaded thiserror v1.0.20 [INFO] [stderr] Downloaded lru-cache v0.1.2 [INFO] [stderr] Downloaded rocket_codegen v0.4.5 [INFO] [stderr] Downloaded libm v0.2.1 [INFO] [stderr] Downloaded digest v0.7.6 [INFO] [stderr] Downloaded diesel v1.4.5 [INFO] [stderr] Downloaded gcc v0.3.55 [INFO] [stderr] Downloaded generic-array v0.9.0 [INFO] [stderr] Downloaded os_info v2.0.8 [INFO] [stderr] Downloaded whirlpool v0.9.0 [INFO] [stderr] Downloaded crypto-mac v0.9.1 [INFO] [stderr] Downloaded anyhow v1.0.32 [INFO] [stderr] Downloaded enum_dispatch v0.3.2 [INFO] [stderr] Downloaded blake2 v0.9.0 [INFO] [stderr] Downloaded crypto-mac v0.8.0 [INFO] [stderr] Downloaded num_enum v0.5.1 [INFO] [stderr] Downloaded pkg-config v0.3.18 [INFO] [stderr] Downloaded ripemd160 v0.7.0 [INFO] [stderr] Downloaded crypto-hashes v0.9.0 [INFO] [stderr] Downloaded serde_derive_internals v0.24.1 [INFO] [stderr] Downloaded proc-macro-crate v0.1.5 [INFO] [stderr] Downloaded bzip2 v0.4.1 [INFO] [stderr] Downloaded digest v0.9.0 [INFO] [stderr] Downloaded concat-reader v0.1.0 [INFO] [stderr] Downloaded sysinfo v0.15.1 [INFO] [stderr] Downloaded core-foundation v0.6.4 [INFO] [stderr] Downloaded migrations_internals v1.4.1 [INFO] [stderr] Downloaded ntapi v0.3.4 [INFO] [stderr] Downloaded rayon-core v1.7.1 [INFO] [stderr] Downloaded uom v0.26.0 [INFO] [stderr] Downloaded chrono v0.4.15 [INFO] [stderr] Downloaded groestl v0.9.0 [INFO] [stderr] Downloaded fsevent-sys v2.0.1 [INFO] [stderr] Downloaded state v0.4.1 [INFO] [stderr] Downloaded xcb v0.9.0 [INFO] [stderr] Downloaded serde_json v1.0.57 [INFO] [stderr] Downloaded x11rb v0.6.0 [INFO] [stderr] Downloaded fallible-streaming-iterator v0.1.9 [INFO] [stderr] Downloaded generic-array v0.14.4 [INFO] [stderr] Downloaded rust-crypto v0.2.36 [INFO] [stderr] Downloaded libsqlite3-sys v0.18.0 [INFO] [stderr] Downloaded simple_asn1 v0.4.1 [INFO] [stderr] Downloaded rocket v0.4.5 [INFO] [stderr] Downloaded num-bigint-dig v0.6.0 [INFO] [stderr] Downloaded fsevent v0.4.0 [INFO] [stderr] Downloaded num-iter v0.1.41 [INFO] [stderr] Downloaded sha3 v0.9.1 [INFO] [stderr] Downloaded diesel_migrations v1.4.0 [INFO] [stderr] Downloaded inotify v0.7.1 [INFO] [stderr] Downloaded hostname v0.3.1 [INFO] [stderr] Downloaded serde_derive_internals v0.25.0 [INFO] [stderr] Downloaded mach v0.2.3 [INFO] [stderr] Downloaded r2d2 v0.8.9 [INFO] [stderr] Downloaded crc32fast v1.2.0 [INFO] [stderr] Downloaded opaque-debug v0.3.0 [INFO] [stderr] Downloaded structopt-derive v0.4.9 [INFO] [stderr] Downloaded rocket_contrib v0.4.5 [INFO] [stderr] Downloaded zstd-safe v2.0.5+zstd.1.4.5 [INFO] [stderr] Downloaded block-buffer v0.3.3 [INFO] [stderr] Downloaded block-buffer v0.9.0 [INFO] [stderr] Downloaded memoffset v0.5.5 [INFO] [stderr] Downloaded mio-extras v2.0.6 [INFO] [stderr] Downloaded byte-tools v0.2.0 [INFO] [stderr] Downloaded rayon v1.3.1 [INFO] [stderr] Downloaded hashbrown v0.8.2 [INFO] [stderr] Downloaded flate2 v1.0.16 [INFO] [stderr] Downloaded bzip2-sys v0.1.9+1.0.8 [INFO] [stderr] Downloaded zstd-sys v1.4.17+zstd.1.4.5 [INFO] [stderr] Downloaded nix v0.15.0 [INFO] [stderr] Downloaded battery v0.7.5 [INFO] [stderr] Downloaded migrations_macros v1.4.2 [INFO] [stderr] Downloaded core-foundation-sys v0.6.2 [INFO] [stderr] Downloaded ucd-trie v0.1.3 [INFO] [stderr] Downloaded rusqlite v0.23.1 [INFO] [stderr] Downloaded object v0.20.0 [INFO] [stderr] Downloaded serde v1.0.115 [INFO] [stderr] Downloaded cc v1.0.58 [INFO] [stderr] Downloaded diesel_derives v1.4.1 [INFO] [stderr] Downloaded rocket_contrib_codegen v0.4.5 [INFO] [stderr] Downloaded failure_derive v0.1.8 [INFO] [stderr] Downloaded pest v2.1.3 [INFO] [stderr] Downloaded sha-1 v0.8.2 [INFO] [stderr] Downloaded pest_meta v2.1.3 [INFO] [stderr] Downloaded pest_generator v2.1.3 [INFO] [stderr] Downloaded proc-macro2 v1.0.19 [INFO] [stderr] Downloaded nix v0.17.0 [INFO] [stderr] Downloaded zstd v0.5.3+zstd.1.4.5 [INFO] [stderr] Downloaded rocket_http v0.4.5 [INFO] [stderr] Downloaded zeroize v1.1.0 [INFO] [stderr] Downloaded instant v0.1.6 [INFO] [stderr] Downloaded subtle v2.2.3 [INFO] [stderr] Downloaded cpuid-bool v0.1.2 [INFO] [stderr] Downloaded addr2line v0.13.0 [INFO] [stderr] Downloaded sha-1 v0.9.1 [INFO] [stderr] Downloaded rocket_cors v0.5.2 [INFO] [stderr] Downloaded sha2 v0.9.1 [INFO] [stderr] Downloaded indexmap v1.5.1 [INFO] [stderr] Downloaded serde_derive v1.0.115 [INFO] [stderr] Downloaded libc v0.2.74 [INFO] [stderr] Downloaded lazycell v1.3.0 [INFO] [stderr] Downloaded num-bigint v0.2.6 [INFO] [stderr] Downloaded rand v0.3.23 [INFO] [stderr] Downloaded derivative v2.1.1 [INFO] [stderr] Downloaded block-padding v0.2.1 [INFO] [stderr] Downloaded num_enum_derive v0.5.1 [INFO] [stderr] Downloaded structopt v0.3.16 [INFO] [stderr] Downloaded doc-comment v0.3.3 [INFO] [stderr] Downloaded crossbeam-queue v0.2.3 [INFO] [stderr] Downloaded gimli v0.22.0 [INFO] [stderr] Downloaded pem v0.8.1 [INFO] [stderr] Downloaded zeroize_derive v1.0.0 [INFO] [stderr] Downloaded dotenv v0.15.0 [INFO] [stderr] Downloaded hmac v0.9.0 [INFO] [stderr] Downloaded synstructure v0.12.4 [INFO] [stderr] Downloaded tinyvec v0.3.4 [INFO] [stderr] Downloaded notify v4.0.15 [INFO] [stderr] Downloaded spin v0.5.2 [INFO] [stderr] Downloaded scheduled-thread-pool v0.2.5 [INFO] [stderr] Downloaded unicase_serde v0.1.0 [INFO] [stderr] Downloaded thiserror-impl v1.0.20 [INFO] [stderr] Downloaded rsa v0.3.0 [INFO] [stderr] Downloaded enum-utils-from-str v0.1.2 [INFO] [stderr] Downloaded maplit v1.0.2 [INFO] [stderr] Downloaded pest_derive v2.1.0 [INFO] [stderr] Downloaded gethostname v0.2.1 [INFO] [stderr] Downloaded keccak v0.1.0 [INFO] [stderr] Downloaded hex v0.4.2 [INFO] [stderr] Downloaded match_cfg v0.1.0 [INFO] [stderr] Downloaded inotify-sys v0.1.3 [INFO] [stderr] Downloaded either v1.6.0 [INFO] [stderr] Downloaded xattr v0.2.2 [INFO] [stderr] Downloaded filetime v0.2.12 [INFO] [stderr] Downloaded failure v0.1.8 [INFO] [stderr] Downloaded syn v1.0.38 [INFO] [stderr] Downloaded itertools v0.9.0 [INFO] [stderr] Downloaded winapi-wsapoll v0.1.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+6f12b8fe67b4eed2e838dab803ed9493b9d62c0f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 7d65736b649644127db811fb665be5727dbd0cbbe41895f36bbef276a8681a6e [INFO] running `Command { std: "docker" "start" "-a" "7d65736b649644127db811fb665be5727dbd0cbbe41895f36bbef276a8681a6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d65736b649644127db811fb665be5727dbd0cbbe41895f36bbef276a8681a6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d65736b649644127db811fb665be5727dbd0cbbe41895f36bbef276a8681a6e", kill_on_drop: false }` [INFO] [stdout] 7d65736b649644127db811fb665be5727dbd0cbbe41895f36bbef276a8681a6e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+6f12b8fe67b4eed2e838dab803ed9493b9d62c0f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3ec85006fba9983210875036b2cb538ee2c7ac63e2c85f8b21fef708c97bee07 [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" "3ec85006fba9983210875036b2cb538ee2c7ac63e2c85f8b21fef708c97bee07", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.74 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling syn v1.0.38 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling serde_derive v1.0.115 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling pkg-config v0.3.18 [INFO] [stderr] Compiling serde v1.0.115 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling yansi v0.5.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking subtle v2.2.3 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Checking smallvec v1.4.2 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling httparse v1.3.4 [INFO] [stderr] Checking opaque-debug v0.2.3 [INFO] [stderr] Checking ppv-lite86 v0.2.8 [INFO] [stderr] Checking tinyvec v0.3.4 [INFO] [stderr] Checking matches v0.1.8 [INFO] [stderr] Checking byte-tools v0.3.1 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling subtle v1.0.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking instant v0.1.6 [INFO] [stderr] Checking block-padding v0.2.1 [INFO] [stderr] Compiling percent-encoding v1.0.1 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Checking base64 v0.12.3 [INFO] [stderr] Compiling gimli v0.22.0 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling adler v0.2.3 [INFO] [stderr] Compiling typeable v0.1.2 [INFO] [stderr] Compiling either v1.6.0 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling traitobject v0.1.0 [INFO] [stderr] Compiling language-tags v0.2.2 [INFO] [stderr] Compiling ucd-trie v0.1.3 [INFO] [stderr] Compiling state v0.4.1 [INFO] [stderr] Compiling object v0.20.0 [INFO] [stderr] Compiling rustc-demangle v0.1.16 [INFO] [stderr] Compiling rayon-core v1.7.1 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Checking regex-syntax v0.6.18 [INFO] [stderr] Compiling libm v0.2.1 [INFO] [stderr] Checking cpuid-bool v0.1.2 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Compiling serde_json v1.0.57 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Compiling unicode-segmentation v1.6.0 [INFO] [stderr] Checking arrayref v0.3.6 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Checking once_cell v1.4.1 [INFO] [stderr] Compiling nix v0.17.0 [INFO] [stderr] Compiling gcc v0.3.55 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking byte-tools v0.2.0 [INFO] [stderr] Compiling anyhow v1.0.32 [INFO] [stderr] Checking keccak v0.1.0 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Compiling battery v0.7.5 [INFO] [stderr] Checking linked-hash-map v0.5.3 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling sysinfo v0.15.1 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Compiling openssl v0.10.30 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking rustc-serialize v0.3.24 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Checking hex v0.4.2 [INFO] [stderr] Checking concat-reader v0.1.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking lock_api v0.4.1 [INFO] [stderr] Checking unicode-bidi v0.3.4 [INFO] [stderr] Checking block-padding v0.1.5 [INFO] [stderr] Checking unicode-normalization v0.1.13 [INFO] [stderr] Compiling miniz_oxide v0.4.0 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Compiling hashbrown v0.8.2 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling indexmap v1.5.1 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling memoffset v0.5.5 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Compiling generic-array v0.14.4 [INFO] [stderr] Compiling pear_codegen v0.1.4 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling rocket_codegen v0.4.5 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling rocket v0.4.5 [INFO] [stderr] Compiling rocket_contrib_codegen v0.4.5 [INFO] [stderr] Compiling pest v2.1.3 [INFO] [stderr] Compiling unicase v1.4.2 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Checking block-buffer v0.3.3 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking lru-cache v0.1.2 [INFO] [stderr] Compiling addr2line v0.13.0 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Compiling num-bigint-dig v0.6.0 [INFO] [stderr] Compiling idna v0.1.5 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking aho-corasick v0.7.13 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling pest_meta v2.1.3 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Checking url v1.7.2 [INFO] [stderr] Checking url v2.1.1 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking parking_lot_core v0.8.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking net2 v0.2.34 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking filetime v0.2.12 [INFO] [stderr] Checking inotify-sys v0.1.3 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking gethostname v0.2.1 [INFO] [stderr] Checking xattr v0.2.2 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking flate2 v1.0.16 [INFO] [stderr] Compiling jobserver v0.1.21 [INFO] [stderr] Compiling backtrace v0.3.50 [INFO] [stderr] Compiling mime v0.2.6 [INFO] [stderr] Checking generic-array v0.12.3 [INFO] [stderr] Checking generic-array v0.9.0 [INFO] [stderr] Compiling enum-utils-from-str v0.1.2 [INFO] [stderr] Checking regex v1.3.9 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Checking uom v0.26.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking parking_lot v0.11.0 [INFO] [stderr] Checking inotify v0.7.1 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking tar v0.4.29 [INFO] [stderr] Compiling cc v1.0.58 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Compiling hyper v0.10.16 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking block-cipher-trait v0.6.2 [INFO] [stderr] Checking universal-hash v0.3.0 [INFO] [stderr] Checking crypto-mac v0.7.0 [INFO] [stderr] Checking aead v0.2.0 [INFO] [stderr] Checking block-buffer v0.7.3 [INFO] [stderr] Checking digest v0.7.6 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking crypto-mac v0.8.0 [INFO] [stderr] Checking crypto-mac v0.9.1 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking pem v0.8.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking scheduled-thread-pool v0.2.5 [INFO] [stderr] Checking x11rb v0.6.0 [INFO] [stdout] error[E0277]: the trait bound `L: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `L` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, L: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `M: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `M` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, M: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `T` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, T: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `I: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `I` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, I: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Th: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `Th` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, Th: Integer [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `N: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `N` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, N: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `J: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 290 | impl_from!(AngleKind, Kind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `J` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, J: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `L: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 291 | impl_from!(Kind, AngleKind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `L` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, L: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `M: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 291 | impl_from!(Kind, AngleKind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `M` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, M: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `T: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 291 | impl_from!(Kind, AngleKind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `T` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, T: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `syn` [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `rustc --crate-name syn /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/syn-0.15.44/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on --cfg 'feature="clone-impls"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="extra-traits"' --cfg 'feature="full"' --cfg 'feature="parsing"' --cfg 'feature="printing"' --cfg 'feature="proc-macro"' --cfg 'feature="quote"' --cfg 'feature="visit-mut"' -C metadata=3ab3b5cd9c84ae7f -C extra-filename=-3ab3b5cd9c84ae7f --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern proc_macro2=/opt/rustwide/target/debug/deps/libproc_macro2-1542341bd6c533ed.rmeta --extern quote=/opt/rustwide/target/debug/deps/libquote-64daf5f1663b9ec8.rmeta --extern unicode_xid=/opt/rustwide/target/debug/deps/libunicode_xid-e17b99937a3a0adc.rmeta --cap-lints allow --cap-lints=forbid --cfg syn_can_match_trailing_dollar --cfg syn_can_use_thread_id --cfg syn_can_use_associated_constants --cfg syn_can_call_macro_by_path` (signal: 9, SIGKILL: kill) [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0277]: the trait bound `I: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs:175:21 [INFO] [stdout] | [INFO] [stdout] 175 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 176 | | dyn Dimension, [INFO] [stdout] 177 | | Ul, [INFO] [stdout] 178 | | V, [INFO] [stdout] 179 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 291 | impl_from!(Kind, AngleKind); [INFO] [stdout] | ---------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | pub struct Quantity [INFO] [stdout] | -------- required by a bound in this [INFO] [stdout] 244 | where [INFO] [stdout] 245 | D: Dimension + ?Sized, [INFO] [stdout] | --------- required by this bound in `si::Quantity` [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider further restricting type parameter `I` [INFO] [stdout] | [INFO] [stdout] 183 | V: ::num_traits::Num + ::Conversion, I: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] {"message":"the trait bound `Th: Integer` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func(foo: T) {\n foo.bar();\n}\n\nfn main() {\n // we now call the method with the i32 type, which doesn't implement\n // the Foo trait\n some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n fn bar(&self);\n}\n\nfn some_func(foo: T) {\n foo.bar(); // we can now use this method since i32 implements the\n // Foo trait\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n fn bar(&self) {}\n}\n\nfn main() {\n some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func(foo: T) {\n println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n // implemented for the type `T`\n}\n\nfn main() {\n // We now call the method with the i32 type,\n // which *does* implement the Debug trait.\n some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function: Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function: It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func(foo: T) {\n println!(\"{:?}\", foo);\n}\n\nfn main() {\n // Calling the method is still fine, as i32 implements Debug.\n some_func(5i32);\n\n // This would fail to compile now:\n // struct WithoutDebug;\n // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs","byte_start":6720,"byte_end":6899,"line_start":175,"line_end":179,"column_start":21,"column_end":18,"is_primary":true,"text":[{"text":" for Quantity<","highlight_start":21,"highlight_end":30},{"text":" dyn Dimension,","highlight_start":1,"highlight_end":101},{"text":" Ul,","highlight_start":1,"highlight_end":24},{"text":" V,","highlight_start":1,"highlight_end":23},{"text":" >","highlight_start":1,"highlight_end":18}],"label":"the trait `Integer` is not implemented for `Th`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs","byte_start":10735,"byte_end":10763,"line_start":291,"line_end":291,"column_start":5,"column_end":33,"is_primary":false,"text":[{"text":" impl_from!(Kind, AngleKind);","highlight_start":5,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"impl_from!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs","byte_start":6068,"byte_end":8609,"line_start":156,"line_end":227,"column_start":5,"column_end":6,"is_primary":false,"text":[{"text":" macro_rules! impl_from {","highlight_start":5,"highlight_end":29},{"text":" ($a:ident, $b:ident) => {","highlight_start":1,"highlight_end":34},{"text":" impl","highlight_start":1,"highlight_end":50},{"text":" From<","highlight_start":1,"highlight_end":22},{"text":" Quantity<","highlight_start":1,"highlight_end":30},{"text":" dyn Dimension<","highlight_start":1,"highlight_end":39},{"text":" L = L,","highlight_start":1,"highlight_end":35},{"text":" M = M,","highlight_start":1,"highlight_end":35},{"text":" T = T,","highlight_start":1,"highlight_end":35},{"text":" I = I,","highlight_start":1,"highlight_end":35},{"text":" Th = Th,","highlight_start":1,"highlight_end":37},{"text":" N = N,","highlight_start":1,"highlight_end":35},{"text":" J = J,","highlight_start":1,"highlight_end":35},{"text":" Kind = dyn $a,","highlight_start":1,"highlight_end":43},{"text":" >,","highlight_start":1,"highlight_end":27},{"text":" Ur,","highlight_start":1,"highlight_end":28},{"text":" V,","highlight_start":1,"highlight_end":27},{"text":" >,","highlight_start":1,"highlight_end":23},{"text":" >","highlight_start":1,"highlight_end":18},{"text":" for Quantity<","highlight_start":1,"highlight_end":30},{"text":" dyn Dimension,","highlight_start":1,"highlight_end":101},{"text":" Ul,","highlight_start":1,"highlight_end":24},{"text":" V,","highlight_start":1,"highlight_end":23},{"text":" >","highlight_start":1,"highlight_end":18},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" V: ::num_traits::Num + ::Conversion,","highlight_start":1,"highlight_end":56},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" fn from(","highlight_start":1,"highlight_end":25},{"text":" val: Quantity<","highlight_start":1,"highlight_end":35},{"text":" dyn Dimension<","highlight_start":1,"highlight_end":39},{"text":" L = L,","highlight_start":1,"highlight_end":35},{"text":" M = M,","highlight_start":1,"highlight_end":35},{"text":" T = T,","highlight_start":1,"highlight_end":35},{"text":" I = I,","highlight_start":1,"highlight_end":35},{"text":" Th = Th,","highlight_start":1,"highlight_end":37},{"text":" N = N,","highlight_start":1,"highlight_end":35},{"text":" J = J,","highlight_start":1,"highlight_end":35},{"text":" Kind = dyn $a,","highlight_start":1,"highlight_end":43},{"text":" >,","highlight_start":1,"highlight_end":27},{"text":" Ur,","highlight_start":1,"highlight_end":28},{"text":" V,","highlight_start":1,"highlight_end":27},{"text":" >,","highlight_start":1,"highlight_end":23},{"text":" ) -> Quantity<","highlight_start":1,"highlight_end":31},{"text":" dyn Dimension,","highlight_start":1,"highlight_end":101},{"text":" Ul,","highlight_start":1,"highlight_end":24},{"text":" V,","highlight_start":1,"highlight_end":23},{"text":" > {","highlight_start":1,"highlight_end":20},{"text":" Self {","highlight_start":1,"highlight_end":27},{"text":" dimension: ::lib::marker::PhantomData,","highlight_start":1,"highlight_end":63},{"text":" units: ::lib::marker::PhantomData,","highlight_start":1,"highlight_end":59},{"text":" value: super::change_base::<","highlight_start":1,"highlight_end":53},{"text":" dyn Dimension<","highlight_start":1,"highlight_end":43},{"text":" L = L,","highlight_start":1,"highlight_end":39},{"text":" M = M,","highlight_start":1,"highlight_end":39},{"text":" T = T,","highlight_start":1,"highlight_end":39},{"text":" I = I,","highlight_start":1,"highlight_end":39},{"text":" Th = Th,","highlight_start":1,"highlight_end":41},{"text":" N = N,","highlight_start":1,"highlight_end":39},{"text":" J = J,","highlight_start":1,"highlight_end":39},{"text":" Kind = dyn $b,","highlight_start":1,"highlight_end":47},{"text":" >,","highlight_start":1,"highlight_end":31},{"text":" Ul,","highlight_start":1,"highlight_end":32},{"text":" Ur,","highlight_start":1,"highlight_end":32},{"text":" V,","highlight_start":1,"highlight_end":31},{"text":" >(&val.value),","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":11},{"text":" }","highlight_start":1,"highlight_end":6}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs","byte_start":10400,"byte_end":10408,"line_start":243,"line_end":243,"column_start":20,"column_end":28,"is_primary":false,"text":[{"text":" pub struct Quantity","highlight_start":20,"highlight_end":28}],"label":"required by a bound in this","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs","byte_start":3795,"byte_end":4089,"line_start":99,"line_end":108,"column_start":9,"column_end":10,"is_primary":false,"text":[{"text":" system! {","highlight_start":9,"highlight_end":18},{"text":" $(#[$quantities_attr])*","highlight_start":1,"highlight_end":36},{"text":" quantities: $quantities {","highlight_start":1,"highlight_end":38},{"text":" $($(#[$name_attr])* $name: $unit, $symbol;)+","highlight_start":1,"highlight_end":61},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" $(#[$units_attr])*","highlight_start":1,"highlight_end":31},{"text":" units: $units {","highlight_start":1,"highlight_end":28},{"text":" $(mod $module::$quantity,)+","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/si/mod.rs","byte_start":254,"byte_end":3938,"line_start":10,"line_end":96,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"system! {","highlight_start":1,"highlight_end":10},{"text":" /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ).","highlight_start":1,"highlight_end":90},{"text":" ///","highlight_start":1,"highlight_end":8},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":30},{"text":" /// * `L`: Length dimension.","highlight_start":1,"highlight_end":33},{"text":" /// * `M`: Mass dimension.","highlight_start":1,"highlight_end":31},{"text":" /// * `T`: Time dimension.","highlight_start":1,"highlight_end":31},{"text":" /// * `I`: Electric current dimension.","highlight_start":1,"highlight_end":43},{"text":" /// * `Th`: Thermodynamic temperature dimension.","highlight_start":1,"highlight_end":53},{"text":" /// * `N`: Amount of substance dimension.","highlight_start":1,"highlight_end":46},{"text":" /// * `J`: Luminous intensity dimension.","highlight_start":1,"highlight_end":45},{"text":" /// * `K`: Kind.","highlight_start":1,"highlight_end":21},{"text":" quantities: ISQ {","highlight_start":1,"highlight_end":22},{"text":" /// Length, one of the base quantities in the ISQ, denoted by the symbol L. The base unit","highlight_start":1,"highlight_end":98},{"text":" /// for length is meter in the SI.","highlight_start":1,"highlight_end":43},{"text":" length: meter, L;","highlight_start":1,"highlight_end":26},{"text":" /// Mass, one of the base quantities in the ISQ, denoted by the symbol M. The base unit","highlight_start":1,"highlight_end":96},{"text":" /// for mass is kilogram in the SI.","highlight_start":1,"highlight_end":44},{"text":" mass: kilogram, M;","highlight_start":1,"highlight_end":27},{"text":" /// Time, one of the base quantities in the ISQ, denoted by the symbol T. The base unit","highlight_start":1,"highlight_end":96},{"text":" /// for time is second in the SI.","highlight_start":1,"highlight_end":42},{"text":" time: second, T;","highlight_start":1,"highlight_end":25},{"text":" /// Electric current, one of the base quantities in the ISQ, denoted by the symbol I. The","highlight_start":1,"highlight_end":98},{"text":" /// base unit for electric current is ampere in the SI.","highlight_start":1,"highlight_end":64},{"text":" electric_current: ampere, I;","highlight_start":1,"highlight_end":37},{"text":" /// Thermodynamic temperature, one of the base quantities in the ISQ, denoted by the symbol","highlight_start":1,"highlight_end":100},{"text":" /// Th (Θ). The base unit for thermodynamic temperature is kelvin in the SI.","highlight_start":1,"highlight_end":85},{"text":" thermodynamic_temperature: kelvin, Th;","highlight_start":1,"highlight_end":47},{"text":" /// Amount of substance, one of the base quantities in the ISQ, denoted by the symbol N.","highlight_start":1,"highlight_end":97},{"text":" /// The base unit for amount of substance is mole in the SI.","highlight_start":1,"highlight_end":69},{"text":" amount_of_substance: mole, N;","highlight_start":1,"highlight_end":38},{"text":" /// Luminous intensity, one of the base quantities in the ISQ, denoted by the symbol J. The","highlight_start":1,"highlight_end":100},{"text":" /// base unit for luminous intensity is candela in the SI.","highlight_start":1,"highlight_end":67},{"text":" luminous_intensity: candela, J;","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":6},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// [International System of Units](http://jcgm.bipm.org/vim/en/1.16.html) (SI).","highlight_start":1,"highlight_end":85},{"text":" units: SI {","highlight_start":1,"highlight_end":16},{"text":" acceleration::Acceleration,","highlight_start":1,"highlight_end":36},{"text":" amount_of_substance::AmountOfSubstance,","highlight_start":1,"highlight_end":48},{"text":" angle::Angle,","highlight_start":1,"highlight_end":22},{"text":" angular_acceleration::AngularAcceleration,","highlight_start":1,"highlight_end":51},{"text":" angular_jerk::AngularJerk,","highlight_start":1,"highlight_end":35},{"text":" angular_velocity::AngularVelocity,","highlight_start":1,"highlight_end":43},{"text":" area::Area,","highlight_start":1,"highlight_end":20},{"text":" available_energy::AvailableEnergy,","highlight_start":1,"highlight_end":43},{"text":" capacitance::Capacitance,","highlight_start":1,"highlight_end":34},{"text":" electric_charge::ElectricCharge,","highlight_start":1,"highlight_end":41},{"text":" electric_current::ElectricCurrent,","highlight_start":1,"highlight_end":43},{"text":" electric_potential::ElectricPotential,","highlight_start":1,"highlight_end":47},{"text":" electrical_conductance::ElectricalConductance,","highlight_start":1,"highlight_end":55},{"text":" electrical_resistance::ElectricalResistance,","highlight_start":1,"highlight_end":53},{"text":" energy::Energy,","highlight_start":1,"highlight_end":24},{"text":" force::Force,","highlight_start":1,"highlight_end":22},{"text":" frequency::Frequency,","highlight_start":1,"highlight_end":30},{"text":" heat_capacity::HeatCapacity,","highlight_start":1,"highlight_end":37},{"text":" heat_flux_density::HeatFluxDensity,","highlight_start":1,"highlight_end":44},{"text":" heat_transfer::HeatTransfer,","highlight_start":1,"highlight_end":37},{"text":" inductance::Inductance,","highlight_start":1,"highlight_end":32},{"text":" information::Information,","highlight_start":1,"highlight_end":34},{"text":" information_rate::InformationRate,","highlight_start":1,"highlight_end":43},{"text":" jerk::Jerk,","highlight_start":1,"highlight_end":20},{"text":" length::Length,","highlight_start":1,"highlight_end":24},{"text":" luminance::Luminance,","highlight_start":1,"highlight_end":30},{"text":" luminous_intensity::LuminousIntensity,","highlight_start":1,"highlight_end":47},{"text":" magnetic_flux::MagneticFlux,","highlight_start":1,"highlight_end":37},{"text":" magnetic_flux_density::MagneticFluxDensity,","highlight_start":1,"highlight_end":52},{"text":" mass::Mass,","highlight_start":1,"highlight_end":20},{"text":" mass_density::MassDensity,","highlight_start":1,"highlight_end":35},{"text":" mass_rate::MassRate,","highlight_start":1,"highlight_end":29},{"text":" molar_energy::MolarEnergy,","highlight_start":1,"highlight_end":35},{"text":" molar_mass::MolarMass,","highlight_start":1,"highlight_end":31},{"text":" momentum::Momentum,","highlight_start":1,"highlight_end":28},{"text":" power::Power,","highlight_start":1,"highlight_end":22},{"text":" pressure::Pressure,","highlight_start":1,"highlight_end":28},{"text":" ratio::Ratio,","highlight_start":1,"highlight_end":22},{"text":" specific_heat_capacity::SpecificHeatCapacity,","highlight_start":1,"highlight_end":54},{"text":" temperature_interval::TemperatureInterval,","highlight_start":1,"highlight_end":51},{"text":" thermal_conductivity::ThermalConductivity,","highlight_start":1,"highlight_end":51},{"text":" thermodynamic_temperature::ThermodynamicTemperature,","highlight_start":1,"highlight_end":61},{"text":" time::Time,","highlight_start":1,"highlight_end":20},{"text":" torque::Torque,","highlight_start":1,"highlight_end":24},{"text":" velocity::Velocity,","highlight_start":1,"highlight_end":28},{"text":" volume::Volume,","highlight_start":1,"highlight_end":24},{"text":" volume_rate::VolumeRate,","highlight_start":1,"highlight_end":33},{"text":" }","highlight_start":1,"highlight_end":6},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"system!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.26.0/src/system.rs","byte_start":3414,"byte_end":63666,"line_start":87,"line_end":1568,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! system {","highlight_start":1,"highlight_end":22},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" $(#[$quantities_attr:meta])* quantities: $quantities:ident {","highlight_start":1,"highlight_end":69},{"text":" $($(#[$name_attr:meta])* $name:ident: $unit:ident, $symbol:ident;)+","highlight_start":1,"highlight_end":80},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(#[$units_attr:meta])* units: $units:ident {","highlight_start":1,"highlight_end":54},{"text":" $($module:ident::$quantity:ident,)+","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[macro_use]","highlight_start":1,"highlight_end":23},{"text":" pub mod $module;)+","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" system! {","highlight_start":1,"highlight_end":18},{"text":" $(#[$quantities_attr])*","highlight_start":1,"highlight_end":36},{"text":" quantities: $quantities {","highlight_start":1,"highlight_end":38},{"text":" $($(#[$name_attr])* $name: $unit, $symbol;)+","highlight_start":1,"highlight_end":61},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" $(#[$units_attr])*","highlight_start":1,"highlight_end":31},{"text":" units: $units {","highlight_start":1,"highlight_end":28},{"text":" $(mod $module::$quantity,)+","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" $(#[$quantities_attr:meta])* quantities: $quantities:ident {","highlight_start":1,"highlight_end":69},{"text":" $($(#[$name_attr:meta])* $name:ident: $unit:ident, $symbol:ident;)+","highlight_start":1,"highlight_end":80},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(#[$units_attr:meta])* units: $units:ident {","highlight_start":1,"highlight_end":54},{"text":" $(mod $module:ident::$quantity:ident,)+","highlight_start":1,"highlight_end":52},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" /// Marker trait to express the dependence of a [quantity][quantity] on the","highlight_start":1,"highlight_end":84},{"text":" /// [base quantities][base] of a [system of quantities][quantities] as a product of powers","highlight_start":1,"highlight_end":99},{"text":" /// of factors corresponding to the base quantities, omitting any numerical factor.","highlight_start":1,"highlight_end":92},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// * ","highlight_start":1,"highlight_end":53},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// [quantity]: http://jcgm.bipm.org/vim/en/1.1.html","highlight_start":1,"highlight_end":61},{"text":" /// [base]: http://jcgm.bipm.org/vim/en/1.4.html","highlight_start":1,"highlight_end":57},{"text":" /// [quantities]: http://jcgm.bipm.org/vim/en/1.3.html","highlight_start":1,"highlight_end":63},{"text":" pub trait Dimension: Send + Sync {","highlight_start":1,"highlight_end":43},{"text":" $($(#[$name_attr])*","highlight_start":1,"highlight_end":32},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// Quantity dimension.","highlight_start":1,"highlight_end":36},{"text":" type $symbol: $crate::typenum::Integer;)+","highlight_start":1,"highlight_end":54},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// [Kind](https://jcgm.bipm.org/vim/en/1.2.html) of the quantity. Quantities of the","highlight_start":1,"highlight_end":97},{"text":" /// same dimension but differing kinds are not comparable.","highlight_start":1,"highlight_end":71},{"text":" type Kind: ?Sized;","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Marker trait to identify a [system of units][units] based on a set of [base units][base]","highlight_start":1,"highlight_end":101},{"text":" /// of a [system of quantities][quantities].","highlight_start":1,"highlight_end":53},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `V`: Underlying storage type trait is implemented for.","highlight_start":1,"highlight_end":69},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// [units]: http://jcgm.bipm.org/vim/en/1.13.html","highlight_start":1,"highlight_end":59},{"text":" /// [base]: http://jcgm.bipm.org/vim/en/1.10.html","highlight_start":1,"highlight_end":58},{"text":" /// [quantities]: http://jcgm.bipm.org/vim/en/1.3.html","highlight_start":1,"highlight_end":63},{"text":" pub trait Units: Send + Sync","highlight_start":1,"highlight_end":40},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" V: $crate::Conversion,","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" $($(#[$name_attr])*","highlight_start":1,"highlight_end":32},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// Base unit.","highlight_start":1,"highlight_end":27},{"text":" type $name: Unit + $crate::Conversion;)+","highlight_start":1,"highlight_end":66},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Trait to identify [measurement units][measurement] of individual","highlight_start":1,"highlight_end":77},{"text":" /// [quantities][quantity].","highlight_start":1,"highlight_end":36},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// [measurement]: http://jcgm.bipm.org/vim/en/1.9.html","highlight_start":1,"highlight_end":64},{"text":" /// [quantity]: http://jcgm.bipm.org/vim/en/1.1.html","highlight_start":1,"highlight_end":61},{"text":" pub trait Unit: Copy {","highlight_start":1,"highlight_end":31},{"text":" /// Unit abbreviation.","highlight_start":1,"highlight_end":35},{"text":" fn abbreviation() -> &'static str;","highlight_start":1,"highlight_end":47},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Unit singular description.","highlight_start":1,"highlight_end":43},{"text":" fn singular() -> &'static str;","highlight_start":1,"highlight_end":43},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Unit plural description.","highlight_start":1,"highlight_end":41},{"text":" fn plural() -> &'static str;","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Property of a phenomenon, body or substance, where the property has a magnitude that","highlight_start":1,"highlight_end":97},{"text":" /// can be expressed as a number and a reference.","highlight_start":1,"highlight_end":58},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// The preferred method of creating a `Quantity` instance is to use the `new` constructor","highlight_start":1,"highlight_end":99},{"text":" /// which is generic over the input unit and accepts the input value as it's only","highlight_start":1,"highlight_end":90},{"text":" /// parameter.","highlight_start":1,"highlight_end":23},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":76},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":88},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":35},{"text":" /// # use uom::si::length::meter;","highlight_start":1,"highlight_end":42},{"text":" /// // Create a length of 1 meter.","highlight_start":1,"highlight_end":43},{"text":" /// let l = Length::new::(1.0);","highlight_start":1,"highlight_end":47},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// `Quantity` fields are public to allow for the creation of `const` values and instances","highlight_start":1,"highlight_end":99},{"text":" /// of non-named `Quantity`s. This functionality will be deprecated and subsequently removed","highlight_start":1,"highlight_end":101},{"text":" /// once the [`const fn`](https://github.com/rust-lang/rust/issues/24111) feature is","highlight_start":1,"highlight_end":93},{"text":" /// stabilized.","highlight_start":1,"highlight_end":24},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":76},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":88},{"text":" /// # use uom::si::{Quantity, ISQ, SI};","highlight_start":1,"highlight_end":48},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":35},{"text":" /// # use uom::lib::marker::PhantomData;","highlight_start":1,"highlight_end":49},{"text":" /// # use uom::typenum::{P2, Z0};","highlight_start":1,"highlight_end":42},{"text":" /// // Create a `const` length of 1 meter.","highlight_start":1,"highlight_end":51},{"text":" /// const L: Length = Length { dimension: PhantomData, units: PhantomData, value: 1.0, };","highlight_start":1,"highlight_end":98},{"text":" /// // Create a `const` area of 1 square meter explicitly without using the `Area` alias.","highlight_start":1,"highlight_end":98},{"text":" /// const A: Quantity, SI, f32> =","highlight_start":1,"highlight_end":79},{"text":" /// Quantity { dimension: PhantomData, units: PhantomData, value: 1.0, };","highlight_start":1,"highlight_end":86},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// Using units for the wrong quantity will cause a compile error:","highlight_start":1,"highlight_end":75},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust,compile_fail\")]","highlight_start":1,"highlight_end":89},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":88},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":35},{"text":" /// # use uom::si::time::second;","highlight_start":1,"highlight_end":41},{"text":" /// // error[E0277]: the trait bound `second: length::Unit` is not satisfied","highlight_start":1,"highlight_end":85},{"text":" /// let l = Length::new::(1.0);","highlight_start":1,"highlight_end":48},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// Mixing quantities will also cause a compile error:","highlight_start":1,"highlight_end":63},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust,compile_fail\")]","highlight_start":1,"highlight_end":89},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":88},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":35},{"text":" /// # use uom::si::length::meter;","highlight_start":1,"highlight_end":42},{"text":" /// # use uom::si::time::second;","highlight_start":1,"highlight_end":41},{"text":" /// // error[E0308]: mismatched types","highlight_start":1,"highlight_end":46},{"text":" /// let r = Length::new::(1.0) + Time::new::(1.0);","highlight_start":1,"highlight_end":74},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust,compile_fail\")]","highlight_start":1,"highlight_end":89},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":88},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":35},{"text":" /// # use uom::si::length::meter;","highlight_start":1,"highlight_end":42},{"text":" /// # use uom::si::time::second;","highlight_start":1,"highlight_end":41},{"text":" /// // error[E0308]: mismatched types","highlight_start":1,"highlight_end":46},{"text":" /// let v: Velocity = Length::new::(1.0) * Time::new::(1.0);","highlight_start":1,"highlight_end":84},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// * ","highlight_start":1,"highlight_end":53},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `D`: Quantity dimension. See [`Dimension`](./trait.Dimension.html).","highlight_start":1,"highlight_end":82},{"text":" /// * `U`: Quantity base units. See [`Units`](./trait.Units.html).","highlight_start":1,"highlight_end":75},{"text":" /// * `V`: Quantity value underlying storage type.","highlight_start":1,"highlight_end":59},{"text":" #[repr(transparent)]","highlight_start":1,"highlight_end":29},{"text":" pub struct Quantity","highlight_start":1,"highlight_end":37},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":57},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" /// Quantity dimension. See [`Dimension`](./trait.Dimension.html).","highlight_start":1,"highlight_end":79},{"text":" pub dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":64},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Quantity base units. See [`Units`](./trait.Units.html).","highlight_start":1,"highlight_end":72},{"text":" pub units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":60},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Quantity value stored in the base units for the quantity.","highlight_start":1,"highlight_end":74},{"text":" pub value: V,","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Type alias for dimensions where all exponents of the factors are the given value.","highlight_start":1,"highlight_end":93},{"text":" type DN = dyn Dimension<$($symbol = system!(@replace $symbol N),)+","highlight_start":1,"highlight_end":78},{"text":" Kind = dyn $crate::Kind>;","highlight_start":1,"highlight_end":38},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Type alias for [dimension one][one] for which all the exponents of the factors","highlight_start":1,"highlight_end":91},{"text":" /// corresponding to the [base quantities][base] are zero.","highlight_start":1,"highlight_end":67},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// [one]: http://jcgm.bipm.org/vim/en/1.8.html","highlight_start":1,"highlight_end":56},{"text":" /// [base]: http://jcgm.bipm.org/vim/en/1.4.html","highlight_start":1,"highlight_end":57},{"text":" #[allow(dead_code)]","highlight_start":1,"highlight_end":28},{"text":" pub type DimensionOne = DN<$crate::typenum::Z0>;","highlight_start":1,"highlight_end":57},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $(#[$quantities_attr])*","highlight_start":1,"highlight_end":32},{"text":" pub type $quantities<$($symbol,)+ K = dyn $crate::Kind> =","highlight_start":1,"highlight_end":66},{"text":" dyn Dimension<$($symbol = $symbol,)+ Kind = K>;","highlight_start":1,"highlight_end":60},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $(#[$units_attr])*","highlight_start":1,"highlight_end":27},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `V`: Underlying storage type.","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_qualifications)]","highlight_start":1,"highlight_end":40},{"text":" pub type $units = dyn Units;","highlight_start":1,"highlight_end":70},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Convert a value from base units to the given unit.","highlight_start":1,"highlight_end":63},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `D`: Dimension.","highlight_start":1,"highlight_end":30},{"text":" /// * `U`: Base units.","highlight_start":1,"highlight_end":31},{"text":" /// * `V`: Value underlying storage type.","highlight_start":1,"highlight_end":50},{"text":" /// * `N`: Unit.","highlight_start":1,"highlight_end":25},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":26},{"text":" fn from_base(v: &V) -> V","highlight_start":1,"highlight_end":45},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::Conversion + $crate::lib::ops::Mul,","highlight_start":1,"highlight_end":77},{"text":" N: $crate::Conversion,","highlight_start":1,"highlight_end":48},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" use $crate::typenum::Integer;","highlight_start":1,"highlight_end":42},{"text":" use $crate::Conversion;","highlight_start":1,"highlight_end":36},{"text":" use $crate::ConversionFactor;","highlight_start":1,"highlight_end":42},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (v.into_conversion() $(* U::$name::coefficient().powi(D::$symbol::to_i32()))+","highlight_start":1,"highlight_end":90},{"text":" / N::coefficient() - N::constant($crate::ConstantOp::Sub))","highlight_start":1,"highlight_end":79},{"text":" .value()","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Convert a value from the given unit to base units.","highlight_start":1,"highlight_end":63},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `D`: Dimension.","highlight_start":1,"highlight_end":30},{"text":" /// * `U`: Base units.","highlight_start":1,"highlight_end":31},{"text":" /// * `V`: Value underlying storage type.","highlight_start":1,"highlight_end":50},{"text":" /// * `N`: Unit.","highlight_start":1,"highlight_end":25},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":26},{"text":" fn to_base(v: &V) -> V","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::Conversion + $crate::lib::ops::Mul,","highlight_start":1,"highlight_end":77},{"text":" N: $crate::Conversion,","highlight_start":1,"highlight_end":48},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" use $crate::typenum::Integer;","highlight_start":1,"highlight_end":42},{"text":" use $crate::Conversion;","highlight_start":1,"highlight_end":36},{"text":" use $crate::ConversionFactor;","highlight_start":1,"highlight_end":42},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ((v.into_conversion() + N::constant($crate::ConstantOp::Add)) * N::coefficient()","highlight_start":1,"highlight_end":93},{"text":" / (V::coefficient() $(* U::$name::coefficient().powi(D::$symbol::to_i32()))+))","highlight_start":1,"highlight_end":99},{"text":" .value()","highlight_start":1,"highlight_end":25},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Convert a value from one set of base units to a second.","highlight_start":1,"highlight_end":68},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":34},{"text":" /// * `D`: Dimension.","highlight_start":1,"highlight_end":30},{"text":" /// * `Ul`: Base units for left quantity.","highlight_start":1,"highlight_end":50},{"text":" /// * `Ur`: Base units for right quantity.","highlight_start":1,"highlight_end":51},{"text":" /// * `V`: Value underlying storage type.","highlight_start":1,"highlight_end":50},{"text":" autoconvert_test! {","highlight_start":1,"highlight_end":28},{"text":" #[allow(dead_code)]","highlight_start":1,"highlight_end":28},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":26},{"text":" fn change_base(v: &V) -> V","highlight_start":1,"highlight_end":49},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" V: $crate::Conversion + $crate::lib::ops::Mul,","highlight_start":1,"highlight_end":77},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" use $crate::typenum::Integer;","highlight_start":1,"highlight_end":42},{"text":" use $crate::Conversion;","highlight_start":1,"highlight_end":36},{"text":" use $crate::ConversionFactor;","highlight_start":1,"highlight_end":42},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (v.into_conversion() $(* Ur::$name::coefficient().powi(D::$symbol::to_i32())","highlight_start":1,"highlight_end":89},{"text":" / Ul::$name::coefficient().powi(D::$symbol::to_i32()))+)","highlight_start":1,"highlight_end":77},{"text":" .value()","highlight_start":1,"highlight_end":25},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[doc(hidden)]","highlight_start":1,"highlight_end":23},{"text":" macro_rules! impl_ops {","highlight_start":1,"highlight_end":32},{"text":" (","highlight_start":1,"highlight_end":14},{"text":" $AddSubTrait:ident, $addsub_fun:ident, $addsub_op:tt,","highlight_start":1,"highlight_end":70},{"text":" $AddSubAssignTrait:ident, $addsubassign_fun:ident, $addsubassign_op:tt,","highlight_start":1,"highlight_end":88},{"text":" $AddSubAlias:ident,","highlight_start":1,"highlight_end":36},{"text":" $MulDivTrait:ident, $muldiv_fun:ident, $muldiv_op:tt,","highlight_start":1,"highlight_end":70},{"text":" $MulDivAssignTrait:ident, $muldivassign_fun:ident, $muldivassign_op:tt,","highlight_start":1,"highlight_end":88},{"text":" $Mod:ident","highlight_start":1,"highlight_end":27},{"text":" ) => {","highlight_start":1,"highlight_end":19},{"text":" autoconvert! {","highlight_start":1,"highlight_end":31},{"text":" impl $crate::lib::ops::$AddSubTrait>","highlight_start":1,"highlight_end":86},{"text":" for Quantity","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$AddSubTrait,","highlight_start":1,"highlight_end":59},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":65},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" type Output = Quantity;","highlight_start":1,"highlight_end":54},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $addsub_fun(self, rhs: Quantity) -> Self::Output {","highlight_start":1,"highlight_end":84},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: self.value $addsub_op change_base::(&rhs.value),","highlight_start":1,"highlight_end":98},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" not_autoconvert! {","highlight_start":1,"highlight_end":35},{"text":" impl $crate::lib::ops::$AddSubTrait for Quantity","highlight_start":1,"highlight_end":83},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$AddSubTrait,","highlight_start":1,"highlight_end":59},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":42},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":65},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" type Output = Self;","highlight_start":1,"highlight_end":40},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $addsub_fun(self, rhs: Self) -> Self::Output {","highlight_start":1,"highlight_end":70},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: self.value $addsub_op rhs.value,","highlight_start":1,"highlight_end":68},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" autoconvert! {","highlight_start":1,"highlight_end":31},{"text":" impl $crate::lib::ops::$AddSubAssignTrait>","highlight_start":1,"highlight_end":92},{"text":" for Quantity","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$AddSubAssignTrait,","highlight_start":1,"highlight_end":65},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" V: $crate::num::Num + $crate::Conversion","highlight_start":1,"highlight_end":64},{"text":" + $crate::lib::ops::$AddSubAssignTrait,","highlight_start":1,"highlight_end":67},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $addsubassign_fun(&mut self, rhs: Quantity) {","highlight_start":1,"highlight_end":79},{"text":" self.value $addsubassign_op change_base::(&rhs.value);","highlight_start":1,"highlight_end":93},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" not_autoconvert! {","highlight_start":1,"highlight_end":35},{"text":" impl $crate::lib::ops::$AddSubAssignTrait for Quantity","highlight_start":1,"highlight_end":89},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$AddSubAssignTrait,","highlight_start":1,"highlight_end":65},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":42},{"text":" V: $crate::num::Num + $crate::Conversion","highlight_start":1,"highlight_end":64},{"text":" + $crate::lib::ops::$AddSubAssignTrait,","highlight_start":1,"highlight_end":67},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $addsubassign_fun(&mut self, rhs: Self) {","highlight_start":1,"highlight_end":65},{"text":" self.value $addsubassign_op rhs.value;","highlight_start":1,"highlight_end":63},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" autoconvert! {","highlight_start":1,"highlight_end":31},{"text":" impl $crate::lib::ops::$MulDivTrait>","highlight_start":1,"highlight_end":92},{"text":" for Quantity","highlight_start":1,"highlight_end":44},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" Dl: Dimension + ?Sized,","highlight_start":1,"highlight_end":44},{"text":" $(Dl::$symbol: $crate::lib::ops::$AddSubTrait,)+","highlight_start":1,"highlight_end":82},{"text":" Dl::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":60},{"text":" Dr: Dimension + ?Sized,","highlight_start":1,"highlight_end":44},{"text":" Dr::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":60},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::ops::$MulDivTrait,","highlight_start":1,"highlight_end":101},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" type Output = Quantity<","highlight_start":1,"highlight_end":44},{"text":" $quantities<$($crate::typenum::$AddSubAlias,)+>,","highlight_start":1,"highlight_end":99},{"text":" Ul, V>;","highlight_start":1,"highlight_end":32},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $muldiv_fun(self, rhs: Quantity) -> Self::Output {","highlight_start":1,"highlight_end":85},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: self.value $muldiv_op change_base::(&rhs.value),","highlight_start":1,"highlight_end":99},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" not_autoconvert! {","highlight_start":1,"highlight_end":35},{"text":" impl $crate::lib::ops::$MulDivTrait>","highlight_start":1,"highlight_end":86},{"text":" for Quantity","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" Dl: Dimension + ?Sized,","highlight_start":1,"highlight_end":44},{"text":" $(Dl::$symbol: $crate::lib::ops::$AddSubTrait,)+","highlight_start":1,"highlight_end":82},{"text":" Dl::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":60},{"text":" Dr: Dimension + ?Sized,","highlight_start":1,"highlight_end":44},{"text":" Dr::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":60},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":42},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::ops::$MulDivTrait,","highlight_start":1,"highlight_end":101},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" type Output = Quantity<","highlight_start":1,"highlight_end":44},{"text":" $quantities<$($crate::typenum::$AddSubAlias,)+>,","highlight_start":1,"highlight_end":99},{"text":" U, V>;","highlight_start":1,"highlight_end":31},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $muldiv_fun(self, rhs: Quantity) -> Self::Output {","highlight_start":1,"highlight_end":84},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: self.value $muldiv_op rhs.value,","highlight_start":1,"highlight_end":68},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }}","highlight_start":1,"highlight_end":19},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::ops::$MulDivTrait for Quantity","highlight_start":1,"highlight_end":86},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":59},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":42},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":65},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" type Output = Quantity;","highlight_start":1,"highlight_end":53},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $muldiv_fun(self, rhs: V) -> Self::Output {","highlight_start":1,"highlight_end":67},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: self.value $muldiv_op rhs,","highlight_start":1,"highlight_end":62},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::ops::$MulDivAssignTrait for Quantity","highlight_start":1,"highlight_end":92},{"text":" where","highlight_start":1,"highlight_end":22},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":43},{"text":" D::Kind: $crate::marker::$MulDivAssignTrait,","highlight_start":1,"highlight_end":65},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":42},{"text":" V: $crate::num::Num + $crate::Conversion","highlight_start":1,"highlight_end":64},{"text":" + $crate::lib::ops::$MulDivAssignTrait,","highlight_start":1,"highlight_end":67},{"text":" {","highlight_start":1,"highlight_end":18},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":38},{"text":" fn $muldivassign_fun(&mut self, rhs: V) {","highlight_start":1,"highlight_end":62},{"text":" self.value $muldivassign_op rhs;","highlight_start":1,"highlight_end":57},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[doc(hidden)]","highlight_start":1,"highlight_end":31},{"text":" mod $Mod {","highlight_start":1,"highlight_end":27},{"text":" storage_types! {","highlight_start":1,"highlight_end":37},{"text":" use super::super::*;","highlight_start":1,"highlight_end":45},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::ops::$MulDivTrait> for V","highlight_start":1,"highlight_end":91},{"text":" where","highlight_start":1,"highlight_end":30},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":51},{"text":" D::Kind: $crate::marker::$MulDivTrait,","highlight_start":1,"highlight_end":67},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":50},{"text":" $($crate::typenum::Z0: $crate::lib::ops::$AddSubTrait,)+","highlight_start":1,"highlight_end":97},{"text":" {","highlight_start":1,"highlight_end":26},{"text":" type Output = Quantity<","highlight_start":1,"highlight_end":52},{"text":" $quantities<","highlight_start":1,"highlight_end":45},{"text":" $($crate::typenum::$AddSubAlias<","highlight_start":1,"highlight_end":69},{"text":" $crate::typenum::Z0,","highlight_start":1,"highlight_end":59},{"text":" D::$symbol>,)+","highlight_start":1,"highlight_end":53},{"text":" D::Kind>,","highlight_start":1,"highlight_end":48},{"text":" U, V>;","highlight_start":1,"highlight_end":39},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":46},{"text":" fn $muldiv_fun(self, rhs: Quantity) -> Self::Output {","highlight_start":1,"highlight_end":91},{"text":" Quantity {","highlight_start":1,"highlight_end":43},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":81},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":77},{"text":" value: self $muldiv_op rhs.value,","highlight_start":1,"highlight_end":70},{"text":" }","highlight_start":1,"highlight_end":34},{"text":" }","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl_ops!(Add, add, +, AddAssign, add_assign, +=, Sum,","highlight_start":1,"highlight_end":63},{"text":" Mul, mul, *, MulAssign, mul_assign, *=, add_mul);","highlight_start":1,"highlight_end":62},{"text":" impl_ops!(Sub, sub, -, SubAssign, sub_assign, -=, Diff,","highlight_start":1,"highlight_end":64},{"text":" Div, div, /, DivAssign, div_assign, /=, sub_div);","highlight_start":1,"highlight_end":62},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl Quantity","highlight_start":1,"highlight_end":40},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":57},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" /// Returns `true` if this value is `NAN` and `false` otherwise.","highlight_start":1,"highlight_end":77},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_nan(self) -> bool","highlight_start":1,"highlight_end":40},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_nan()","highlight_start":1,"highlight_end":36},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns `true` if this value is positive infinity or negative infinity and","highlight_start":1,"highlight_end":91},{"text":" /// `false` otherwise.","highlight_start":1,"highlight_end":35},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_infinite(self) -> bool","highlight_start":1,"highlight_end":45},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_infinite()","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns `true` if this number is neither infinite nor `NAN`.","highlight_start":1,"highlight_end":77},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_finite(self) -> bool","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_finite()","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns `true` if the number is neither zero, infinite, subnormal, or `NAN`.","highlight_start":1,"highlight_end":93},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_normal(self) -> bool","highlight_start":1,"highlight_end":43},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_normal()","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns the floating point category of the number. If only one property is","highlight_start":1,"highlight_end":91},{"text":" /// going to be tested, it is generally faster to use the specific predicate","highlight_start":1,"highlight_end":89},{"text":" /// instead.","highlight_start":1,"highlight_end":25},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn classify(self) -> $crate::lib::num::FpCategory","highlight_start":1,"highlight_end":66},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.classify()","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" std! {","highlight_start":1,"highlight_end":19},{"text":" /// Takes the cubic root of a number.","highlight_start":1,"highlight_end":50},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":80},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::volume::cubic_meter;","highlight_start":1,"highlight_end":52},{"text":" /// let l: Length = Volume::new::(8.0).cbrt();","highlight_start":1,"highlight_end":72},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// The input type must have dimensions divisible by three:","highlight_start":1,"highlight_end":72},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust,compile_fail\")]","highlight_start":1,"highlight_end":93},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::area::square_meter;","highlight_start":1,"highlight_end":51},{"text":" /// // error[E0271]: type mismatch resolving ...","highlight_start":1,"highlight_end":61},{"text":" /// let r = Area::new::(8.0).cbrt();","highlight_start":1,"highlight_end":63},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn cbrt(","highlight_start":1,"highlight_end":25},{"text":" self","highlight_start":1,"highlight_end":21},{"text":" ) -> Quantity<","highlight_start":1,"highlight_end":27},{"text":" $quantities<$($crate::typenum::PartialQuot),+>,","highlight_start":1,"highlight_end":97},{"text":" U, V>","highlight_start":1,"highlight_end":22},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" $(D::$symbol: $crate::lib::ops::PartialDiv<$crate::typenum::P3>,)+","highlight_start":1,"highlight_end":83},{"text":" D::Kind: $crate::marker::Div,","highlight_start":1,"highlight_end":46},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.cbrt(),","highlight_start":1,"highlight_end":46},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }}","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Computes the absolute value of `self`. Returns `NAN` if the quantity is","highlight_start":1,"highlight_end":88},{"text":" /// `NAN`.","highlight_start":1,"highlight_end":23},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn abs(self) -> Self","highlight_start":1,"highlight_end":37},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Signed,","highlight_start":1,"highlight_end":40},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.abs(),","highlight_start":1,"highlight_end":45},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns a quantity that represents the sign of `self`.","highlight_start":1,"highlight_end":71},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// * `1.0` of the base unit if the number is positive, `+0.0`, or `INFINITY`.","highlight_start":1,"highlight_end":91},{"text":" /// * `-1.0` of the base unit if the number is negative, `-0.0`, or","highlight_start":1,"highlight_end":80},{"text":" /// `NEG_INFINITY`.","highlight_start":1,"highlight_end":34},{"text":" /// * `NAN` if the number is `NAN`.","highlight_start":1,"highlight_end":48},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn signum(self) -> Self","highlight_start":1,"highlight_end":40},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Signed,","highlight_start":1,"highlight_end":40},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.signum(),","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns `true` if `self`'s sign bit is positive, including `+0.0` and","highlight_start":1,"highlight_end":86},{"text":" /// `INFINITY`.","highlight_start":1,"highlight_end":28},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_sign_positive(self) -> bool","highlight_start":1,"highlight_end":50},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_sign_positive()","highlight_start":1,"highlight_end":46},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns `true` if `self`'s sign is negative, including `-0.0` and","highlight_start":1,"highlight_end":82},{"text":" /// `NEG_INFINITY`.","highlight_start":1,"highlight_end":32},{"text":" #[cfg_attr(feature = \"cargo-clippy\", allow(clippy::wrong_self_convention))]","highlight_start":1,"highlight_end":88},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn is_sign_negative(self) -> bool","highlight_start":1,"highlight_end":50},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.is_sign_negative()","highlight_start":1,"highlight_end":46},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" std! {","highlight_start":1,"highlight_end":19},{"text":" /// Fused multiply-add. Computes `(self * a) + b` with only one rounding error.","highlight_start":1,"highlight_end":92},{"text":" /// This produces a more accurate result with better performance than a separate","highlight_start":1,"highlight_end":93},{"text":" /// multiplication operation followed by an add.","highlight_start":1,"highlight_end":61},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":38},{"text":" /// * `Da`: Dimension for parameter `a`.","highlight_start":1,"highlight_end":53},{"text":" /// * `Ua`: Base units for parameter `a`.","highlight_start":1,"highlight_end":54},{"text":" /// * `Ub`: Base units for parameter `b`.","highlight_start":1,"highlight_end":54},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn mul_add(","highlight_start":1,"highlight_end":40},{"text":" self,","highlight_start":1,"highlight_end":22},{"text":" a: Quantity,","highlight_start":1,"highlight_end":40},{"text":" b: Quantity<$quantities<$($crate::typenum::Sum),+>, Ub, V>,","highlight_start":1,"highlight_end":101},{"text":" ) -> Quantity<$quantities<$($crate::typenum::Sum),+>, U, V>","highlight_start":1,"highlight_end":97},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" $(D::$symbol: $crate::lib::ops::Add,)+","highlight_start":1,"highlight_end":68},{"text":" D::Kind: $crate::marker::Mul,","highlight_start":1,"highlight_end":46},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" Da: Dimension + ?Sized,","highlight_start":1,"highlight_end":40},{"text":" Da::Kind: $crate::marker::Mul,","highlight_start":1,"highlight_end":47},{"text":" Ua: Units + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" Ub: Units + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" // (self * a) + b","highlight_start":1,"highlight_end":34},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.mul_add(a.value, b.value),","highlight_start":1,"highlight_end":65},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }}","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Takes the reciprocal (inverse) of a number, `1/x`.","highlight_start":1,"highlight_end":67},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":80},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::time::second;","highlight_start":1,"highlight_end":45},{"text":" /// let f: Frequency = Time::new::(1.0).recip();","highlight_start":1,"highlight_end":69},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn recip(","highlight_start":1,"highlight_end":26},{"text":" self","highlight_start":1,"highlight_end":21},{"text":" ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V>","highlight_start":1,"highlight_end":87},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" $(D::$symbol: $crate::lib::ops::Neg,)+","highlight_start":1,"highlight_end":55},{"text":" D::Kind: $crate::marker::Div,","highlight_start":1,"highlight_end":46},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.recip(),","highlight_start":1,"highlight_end":47},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Raises a quantity to an integer power.","highlight_start":1,"highlight_end":55},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":80},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::length::meter;","highlight_start":1,"highlight_end":46},{"text":" /// let a: Area = Length::new::(3.0).powi(::uom::typenum::P2::new());","highlight_start":1,"highlight_end":89},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":38},{"text":" /// * `E`: `typenum::Integer` power.","highlight_start":1,"highlight_end":49},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn powi(","highlight_start":1,"highlight_end":28},{"text":" self, e: E","highlight_start":1,"highlight_end":27},{"text":" ) -> Quantity<$quantities<$($crate::typenum::Prod),+>, U, V>","highlight_start":1,"highlight_end":88},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" $(D::$symbol: $crate::lib::ops::Mul,)+","highlight_start":1,"highlight_end":58},{"text":" D::Kind: $crate::marker::Mul,","highlight_start":1,"highlight_end":46},{"text":" E: $crate::typenum::Integer,","highlight_start":1,"highlight_end":45},{"text":" V: $crate::typenum::Pow + $crate::Conversion,","highlight_start":1,"highlight_end":80},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: $crate::typenum::Pow::powi(self.value, e),","highlight_start":1,"highlight_end":70},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" std! {","highlight_start":1,"highlight_end":19},{"text":" /// Takes the square root of a number. Returns `NAN` if `self` is a negative","highlight_start":1,"highlight_end":89},{"text":" /// number.","highlight_start":1,"highlight_end":24},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust\")]","highlight_start":1,"highlight_end":80},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::area::square_meter;","highlight_start":1,"highlight_end":51},{"text":" /// let l: Length = Area::new::(4.0).sqrt();","highlight_start":1,"highlight_end":71},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// The input type must have dimensions divisible by two:","highlight_start":1,"highlight_end":70},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" #[cfg_attr(all(feature = \"si\", feature = \"f32\"), doc = \" ```rust,compile_fail\")]","highlight_start":1,"highlight_end":93},{"text":" #[cfg_attr(not(all(feature = \"si\", feature = \"f32\")), doc = \" ```rust,ignore\")]","highlight_start":1,"highlight_end":92},{"text":" /// # use uom::si::f32::*;","highlight_start":1,"highlight_end":39},{"text":" /// # use uom::si::length::meter;","highlight_start":1,"highlight_end":46},{"text":" /// // error[E0271]: type mismatch resolving ...","highlight_start":1,"highlight_end":61},{"text":" /// let r = Length::new::(4.0).sqrt();","highlight_start":1,"highlight_end":58},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn sqrt(","highlight_start":1,"highlight_end":25},{"text":" self","highlight_start":1,"highlight_end":21},{"text":" ) -> Quantity<","highlight_start":1,"highlight_end":27},{"text":" $quantities<$($crate::typenum::PartialQuot),+>,","highlight_start":1,"highlight_end":97},{"text":" U, V>","highlight_start":1,"highlight_end":22},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" $(D::$symbol: $crate::typenum::PartialDiv<$crate::typenum::P2>,)+","highlight_start":1,"highlight_end":82},{"text":" D::Kind: $crate::marker::Div,","highlight_start":1,"highlight_end":46},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.sqrt(),","highlight_start":1,"highlight_end":46},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }}","highlight_start":1,"highlight_end":15},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns the maximum of the two quantities.","highlight_start":1,"highlight_end":59},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn max(self, other: Self) -> Self","highlight_start":1,"highlight_end":50},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.max(other.value),","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Returns the minimum of the two quantities.","highlight_start":1,"highlight_end":59},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" pub fn min(self, other: Self) -> Self","highlight_start":1,"highlight_end":50},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" V: $crate::num::Float,","highlight_start":1,"highlight_end":39},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.min(other.value),","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::clone::Clone for Quantity","highlight_start":1,"highlight_end":70},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::clone::Clone,","highlight_start":1,"highlight_end":85},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn clone(&self) -> Self {","highlight_start":1,"highlight_end":38},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" Quantity { ref value, .. } => {","highlight_start":1,"highlight_end":52},{"text":" Quantity {","highlight_start":1,"highlight_end":35},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":73},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" value: $crate::lib::clone::Clone::clone(&(*value)),","highlight_start":1,"highlight_end":80},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::marker::Copy for Quantity","highlight_start":1,"highlight_end":70},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::marker::Copy,","highlight_start":1,"highlight_end":85},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[allow(non_camel_case_types)]","highlight_start":1,"highlight_end":39},{"text":" impl $crate::lib::fmt::Debug for Quantity","highlight_start":1,"highlight_end":68},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::fmt::Debug,","highlight_start":1,"highlight_end":83},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn fmt(&self, f: &mut $crate::lib::fmt::Formatter) -> $crate::lib::fmt::Result {","highlight_start":1,"highlight_end":93},{"text":" self.value.fmt(f)","highlight_start":1,"highlight_end":34},{"text":" $(.and_then(|_| {","highlight_start":1,"highlight_end":34},{"text":" let d = ::to_i32();","highlight_start":1,"highlight_end":80},{"text":"","highlight_start":1,"highlight_end":1},{"text":" if 0 != d {","highlight_start":1,"highlight_end":32},{"text":" write!(f, \" {}^{}\", U::$name::abbreviation(), d)","highlight_start":1,"highlight_end":73},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" else {","highlight_start":1,"highlight_end":27},{"text":" Ok(())","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":22},{"text":" }))+","highlight_start":1,"highlight_end":21},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::default::Default for Quantity","highlight_start":1,"highlight_end":74},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::default::Default,","highlight_start":1,"highlight_end":89},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn default() -> Self {","highlight_start":1,"highlight_end":35},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: V::default(),","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::cmp::Eq for Quantity","highlight_start":1,"highlight_end":65},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::cmp::Eq,","highlight_start":1,"highlight_end":80},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::hash::Hash for Quantity","highlight_start":1,"highlight_end":68},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::hash::Hash,","highlight_start":1,"highlight_end":83},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn hash(&self, state: &mut H) {","highlight_start":1,"highlight_end":74},{"text":" self.value.hash(state);","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::ops::Neg for Quantity","highlight_start":1,"highlight_end":66},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" D::Kind: $crate::marker::Neg,","highlight_start":1,"highlight_end":42},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Signed + $crate::Conversion,","highlight_start":1,"highlight_end":60},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" type Output = Quantity;","highlight_start":1,"highlight_end":45},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn neg(self) -> Self::Output {","highlight_start":1,"highlight_end":43},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: -self.value,","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::cmp::Ord for Quantity","highlight_start":1,"highlight_end":66},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::cmp::Ord,","highlight_start":1,"highlight_end":81},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn cmp(&self, other: &Self) -> $crate::lib::cmp::Ordering {","highlight_start":1,"highlight_end":72},{"text":" self.value.cmp(&other.value)","highlight_start":1,"highlight_end":45},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn max(self, other: Self) -> Self {","highlight_start":1,"highlight_end":48},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.max(other.value),","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn min(self, other: Self) -> Self {","highlight_start":1,"highlight_end":48},{"text":" Quantity {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":65},{"text":" units: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":61},{"text":" value: self.value.min(other.value),","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" autoconvert! {","highlight_start":1,"highlight_end":23},{"text":" impl $crate::lib::cmp::PartialEq> for Quantity","highlight_start":1,"highlight_end":98},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":57},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn eq(&self, other: &Quantity) -> bool {","highlight_start":1,"highlight_end":63},{"text":" self.value == change_base::(&other.value)","highlight_start":1,"highlight_end":72},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" not_autoconvert! {","highlight_start":1,"highlight_end":27},{"text":" impl $crate::lib::cmp::PartialEq for Quantity","highlight_start":1,"highlight_end":72},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion,","highlight_start":1,"highlight_end":57},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn eq(&self, other: &Self) -> bool {","highlight_start":1,"highlight_end":49},{"text":" self.value == other.value","highlight_start":1,"highlight_end":42},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" autoconvert! {","highlight_start":1,"highlight_end":23},{"text":" impl $crate::lib::cmp::PartialOrd> for Quantity","highlight_start":1,"highlight_end":99},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ul: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" Ur: Units + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::cmp::PartialOrd,","highlight_start":1,"highlight_end":88},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn partial_cmp(","highlight_start":1,"highlight_end":28},{"text":" &self, other: &Quantity","highlight_start":1,"highlight_end":50},{"text":" ) -> Option<$crate::lib::cmp::Ordering>","highlight_start":1,"highlight_end":52},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.partial_cmp(&change_base::(&other.value))"," [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "3ec85006fba9983210875036b2cb538ee2c7ac63e2c85f8b21fef708c97bee07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ec85006fba9983210875036b2cb538ee2c7ac63e2c85f8b21fef708c97bee07", kill_on_drop: false }` [INFO] [stdout] 3ec85006fba9983210875036b2cb538ee2c7ac63e2c85f8b21fef708c97bee07