[INFO] fetching crate ckb-memory-tracker 0.38.0... [INFO] checking ckb-memory-tracker-0.38.0 against master#a609fb45efad59dfd459c76e50899be9f0583b5a for pr-80579 [INFO] extracting crate ckb-memory-tracker 0.38.0 into /workspace/builds/worker-4/source [INFO] validating manifest of crates.io crate ckb-memory-tracker 0.38.0 on toolchain a609fb45efad59dfd459c76e50899be9f0583b5a [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a609fb45efad59dfd459c76e50899be9f0583b5a" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate ckb-memory-tracker 0.38.0 [INFO] finished tweaking crates.io crate ckb-memory-tracker 0.38.0 [INFO] tweaked toml for crates.io crate ckb-memory-tracker 0.38.0 written to /workspace/builds/worker-4/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a609fb45efad59dfd459c76e50899be9f0583b5a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a609fb45efad59dfd459c76e50899be9f0583b5a" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+a609fb45efad59dfd459c76e50899be9f0583b5a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a9afed74a940db8ad7471b346af10b1c9109bdcfe170200d020c1cfe5cae20f3 [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" "a9afed74a940db8ad7471b346af10b1c9109bdcfe170200d020c1cfe5cae20f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a9afed74a940db8ad7471b346af10b1c9109bdcfe170200d020c1cfe5cae20f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a9afed74a940db8ad7471b346af10b1c9109bdcfe170200d020c1cfe5cae20f3", kill_on_drop: false }` [INFO] [stdout] a9afed74a940db8ad7471b346af10b1c9109bdcfe170200d020c1cfe5cae20f3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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:c8ac004eab7d63a0ad09a2dde3d3353ba464f767bee4de425dc8f74c46a1905e" "/opt/rustwide/cargo-home/bin/cargo" "+a609fb45efad59dfd459c76e50899be9f0583b5a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", 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] af793970198928bdcb667b44e1c38c0bf534721cb758ed203949bf7117eb3544 [INFO] running `Command { std: "docker" "start" "-a" "af793970198928bdcb667b44e1c38c0bf534721cb758ed203949bf7117eb3544", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.81 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling nix v0.17.0 [INFO] [stderr] Compiling heim-common v0.0.10 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Compiling fs_extra v1.2.0 [INFO] [stderr] Compiling heim-host v0.0.10 [INFO] [stderr] Compiling metrics v0.12.1 [INFO] [stderr] Checking platforms v0.2.1 [INFO] [stderr] Checking macaddr v1.0.1 [INFO] [stderr] Checking hex v0.4.0 [INFO] [stderr] Checking metrics-core v0.5.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.1 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Checking futures-channel v0.3.8 [INFO] [stderr] Compiling paste-impl v0.1.18 [INFO] [stderr] Checking ckb-metrics v0.38.0 [INFO] [stderr] Checking futures-util v0.3.8 [INFO] [stderr] Compiling crossbeam-epoch v0.9.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.0 [INFO] [stderr] Checking paste v0.1.18 [INFO] [stderr] Compiling crossbeam-deque v0.8.0 [INFO] [stderr] Checking num-integer v0.1.44 [INFO] [stderr] Checking ordered-float v1.0.2 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking backtrace v0.3.55 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking parking_lot_core v0.6.2 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking flate2 v1.0.19 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking uname v0.1.1 [INFO] [stderr] Checking hostname v0.1.5 [INFO] [stderr] Checking env_logger v0.6.2 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking tokio-threadpool v0.1.18 [INFO] [stderr] Checking futures-cpupool v0.1.8 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand v0.6.5 [INFO] [stderr] Checking parking_lot v0.9.0 [INFO] [stderr] Checking uom v0.27.0 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking includedir v0.5.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking tokio-io v0.1.13 [INFO] [stderr] Checking http v0.1.21 [INFO] [stderr] Checking tokio-buf v0.1.1 [INFO] [stderr] Checking string v0.2.1 [INFO] [stderr] Checking cookie v0.12.0 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking ckb-fixed-hash-core v0.38.0 [INFO] [stderr] Checking ckb-error v0.38.0 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking cookie_store v0.7.0 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Checking tokio-reactor v0.1.12 [INFO] [stderr] Checking tokio v0.2.24 [INFO] [stderr] Checking uuid v0.7.4 [INFO] [stderr] Checking numext-fixed-uint-core v0.1.6 [INFO] [stderr] Checking tempfile v3.1.0 [INFO] [stderr] Checking tokio-tcp v0.1.4 [INFO] [stderr] Checking debugid v0.4.0 [INFO] [stderr] Checking futures-executor v0.3.8 [INFO] [stderr] Checking sentry-types v0.11.0 [INFO] [stderr] Checking tokio v0.1.22 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Checking futures v0.3.8 [INFO] [stderr] Checking http-body v0.1.0 [INFO] [stderr] Checking h2 v0.1.26 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling includedir_codegen v0.5.0 [INFO] [stderr] Compiling ckb-fixed-hash-macros v0.38.0 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Compiling cc v1.0.41 [INFO] [stderr] Checking ckb-fixed-hash v0.38.0 [INFO] [stderr] Checking hyper v0.12.35 [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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 300 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 301 | 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.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | V: ::num_traits::Num + ::Conversion, T: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling blake2b-rs v0.1.5 [INFO] [stderr] Compiling openssl-sys v0.9.60 [INFO] [stderr] Compiling secp256k1-sys v0.1.2 [INFO] [stderr] Compiling ring v0.16.12 [INFO] [stderr] Compiling raw-cpuid v7.0.4 [INFO] [stderr] Compiling ckb-librocksdb-sys v6.7.4 [INFO] [stderr] Compiling jemalloc-sys v0.3.2 [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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 302 | impl_from!(InformationKind, Kind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 303 | impl_from!(Kind, InformationKind); [INFO] [stdout] | ---------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 304 | impl_from!(ConstituentConcentrationKind, Kind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `L` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `M` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `T` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `I` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `Th` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `N` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | 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.27.0/src/si/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | for Quantity< [INFO] [stdout] | _____________________^ [INFO] [stdout] 186 | | dyn Dimension, [INFO] [stdout] 187 | | Ul, [INFO] [stdout] 188 | | V, [INFO] [stdout] 189 | | > [INFO] [stdout] | |_________________^ the trait `Integer` is not implemented for `J` [INFO] [stdout] ... [INFO] [stdout] 305 | impl_from!(Kind, ConstituentConcentrationKind); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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] 193 | V: ::num_traits::Num + ::Conversion, J: Integer [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ckb-hash v0.38.0 [INFO] [stderr] Compiling ckb-system-scripts v0.5.1 [INFO] [stdout] error[E0277]: the trait bound `<::L as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::L as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling openssl v0.10.32 [INFO] [stderr] Compiling native-tls v0.2.7 [INFO] [stdout] error[E0277]: the trait bound `<::M as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::M as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `<::T as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::T as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `<::I as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::I as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking secp256k1 v0.17.2 [INFO] [stdout] error[E0277]: the trait bound `<::Th as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::Th as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `<::N as std::ops::Neg>::Output: Integer` is not satisfied [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/system.rs:757:18 [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] 757 | ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Integer` is not implemented for `<::N as std::ops::Neg>::Output` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/si/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / system! { [INFO] [stdout] 11 | | /// [International System of Quantities](http://jcgm.bipm.org/vim/en/1.6.html) (ISQ). [INFO] [stdout] 12 | | /// [INFO] [stdout] 13 | | /// ## Generic Parameters [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [INFO] [stdout] 101 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] {"message":"the trait bound `<::J as std::ops::Neg>::Output: 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.27.0/src/system.rs","byte_start":32299,"byte_end":32368,"line_start":757,"line_end":757,"column_start":18,"column_end":87,"is_primary":true,"text":[{"text":" ) -> Quantity<$quantities<$($crate::typenum::Negate),+>, U, V>","highlight_start":18,"highlight_end":87}],"label":"the trait `Integer` is not implemented for `<::J as std::ops::Neg>::Output`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.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.27.0/src/si/mod.rs","byte_start":254,"byte_end":4190,"line_start":10,"line_end":101,"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":" catalytic_activity::CatalyticActivity,","highlight_start":1,"highlight_end":47},{"text":" catalytic_activity_concentration::CatalyticActivityConcentration,","highlight_start":1,"highlight_end":74},{"text":" curvature::Curvature,","highlight_start":1,"highlight_end":30},{"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_concentration::MassConcentration,","highlight_start":1,"highlight_end":47},{"text":" mass_density::MassDensity,","highlight_start":1,"highlight_end":35},{"text":" mass_rate::MassRate,","highlight_start":1,"highlight_end":29},{"text":" molar_concentration::MolarConcentration,","highlight_start":1,"highlight_end":49},{"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.27.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))","highlight_start":1,"highlight_end":83},{"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 lt(&self, other: &Quantity) -> bool {","highlight_start":1,"highlight_end":63},{"text":" self.value.lt(&change_base::(&other.value))","highlight_start":1,"highlight_end":74},{"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 le(&self, other: &Quantity) -> bool {","highlight_start":1,"highlight_end":63},{"text":" self.value.le(&change_base::(&other.value))","highlight_start":1,"highlight_end":74},{"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 gt(&self, other: &Quantity) -> bool {","highlight_start":1,"highlight_end":63},{"text":" self.value.gt(&change_base::(&other.value))","highlight_start":1,"highlight_end":74},{"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 ge(&self, other: &Quantity) -> bool {","highlight_start":1,"highlight_end":63},{"text":" self.value.ge(&change_base::(&other.value))","highlight_start":1,"highlight_end":74},{"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::PartialOrd for Quantity","highlight_start":1,"highlight_end":73},{"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::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(&self, other: &Self) -> Option<$crate::lib::cmp::Ordering> {","highlight_start":1,"highlight_end":88},{"text":" self.value.partial_cmp(&other.value)","highlight_start":1,"highlight_end":53},{"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 lt(&self, other: &Self) -> bool {","highlight_start":1,"highlight_end":49},{"text":" self.value.lt(&other.value)","highlight_start":1,"highlight_end":44},{"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 le(&self, other: &Self) -> bool {","highlight_start":1,"highlight_end":49},{"text":" self.value.le(&other.value)","highlight_start":1,"highlight_end":44},{"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 gt(&self, other: &Self) -> bool {","highlight_start":1,"highlight_end":49},{"text":" self.value.gt(&other.value)","highlight_start":1,"highlight_end":44},{"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 ge(&self, other: &Self) -> bool {","highlight_start":1,"highlight_end":49},{"text":" self.value.ge(&other.value)","highlight_start":1,"highlight_end":44},{"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::ops::Rem> for Quantity","highlight_start":1,"highlight_end":92},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" D::Kind: $crate::marker::Rem,","highlight_start":1,"highlight_end":42},{"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":" type Output = Quantity;","highlight_start":1,"highlight_end":46},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn rem(self, rhs: Quantity) -> Self::Output {","highlight_start":1,"highlight_end":68},{"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 % change_base::(&rhs.value)","highlight_start":1,"highlight_end":80},{"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":1},{"text":" not_autoconvert! {","highlight_start":1,"highlight_end":27},{"text":" impl $crate::lib::ops::Rem 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::Rem,","highlight_start":1,"highlight_end":42},{"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":" type Output = Self;","highlight_start":1,"highlight_end":32},{"text":"","highlight_start":1,"highlight_end":1},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn rem(self, rhs: Self) -> Self::Output {","highlight_start":1,"highlight_end":54},{"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 % rhs.value","highlight_start":1,"highlight_end":50},{"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":1},{"text":" autoconvert! {","highlight_start":1,"highlight_end":23},{"text":" impl $crate::lib::ops::RemAssign> 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":" D::Kind: $crate::marker::RemAssign,","highlight_start":1,"highlight_end":48},{"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::ops::RemAssign,","highlight_start":1,"highlight_end":87},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn rem_assign(&mut self, rhs: Quantity) {","highlight_start":1,"highlight_end":64},{"text":" self.value %= change_base::(&rhs.value)","highlight_start":1,"highlight_end":70},{"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::ops::RemAssign 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":" D::Kind: $crate::marker::RemAssign,","highlight_start":1,"highlight_end":48},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::ops::RemAssign,","highlight_start":1,"highlight_end":87},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" #[inline(always)]","highlight_start":1,"highlight_end":30},{"text":" fn rem_assign(&mut self, rhs: Self) {","highlight_start":1,"highlight_end":50},{"text":" self.value %= rhs.value","highlight_start":1,"highlight_end":40},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::num::Saturating 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":" D::Kind: $crate::marker::Saturating,","highlight_start":1,"highlight_end":49},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::num::Saturating,","highlight_start":1,"highlight_end":83},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn saturating_add(self, v: Self) -> Self {","highlight_start":1,"highlight_end":55},{"text":" Quantity { value: self.value.saturating_add(v.value), ..self }","highlight_start":1,"highlight_end":79},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" fn saturating_sub(self, v: Self) -> Self {","highlight_start":1,"highlight_end":55},{"text":" Quantity { value: self.value.saturating_sub(v.value), ..self }","highlight_start":1,"highlight_end":79},{"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::iter::Sum for Quantity","highlight_start":1,"highlight_end":67},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" D::Kind: $crate::marker::Add,","highlight_start":1,"highlight_end":42},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":34},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::iter::Sum,","highlight_start":1,"highlight_end":82},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn sum(iter: I) -> Self","highlight_start":1,"highlight_end":39},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" I: Iterator,","highlight_start":1,"highlight_end":42},{"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: iter.map(|v| { v.value }).sum(),","highlight_start":1,"highlight_end":60},{"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":" test! {","highlight_start":1,"highlight_end":16},{"text":" impl $crate::tests::Test for Quantity","highlight_start":1,"highlight_end":64},{"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::tests::Test,","highlight_start":1,"highlight_end":79},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn assert_eq(lhs: &Self, rhs: &Self) {","highlight_start":1,"highlight_end":51},{"text":" $crate::tests::Test::assert_eq(&lhs.value, &rhs.value);","highlight_start":1,"highlight_end":72},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" fn assert_approx_eq(lhs: &Self, rhs: &Self) {","highlight_start":1,"highlight_end":58},{"text":" $crate::tests::Test::assert_approx_eq(&lhs.value, &rhs.value);","highlight_start":1,"highlight_end":79},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" fn eq(lhs: &Self, rhs: &Self) -> bool {","highlight_start":1,"highlight_end":52},{"text":" $crate::tests::Test::eq(&lhs.value, &rhs.value)","highlight_start":1,"highlight_end":64},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" fn approx_eq(lhs: &Self, rhs: &Self) -> bool {","highlight_start":1,"highlight_end":59},{"text":" $crate::tests::Test::approx_eq(&lhs.value, &rhs.value)","highlight_start":1,"highlight_end":71},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::num::Zero for Quantity","highlight_start":1,"highlight_end":62},{"text":" where","highlight_start":1,"highlight_end":14},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":35},{"text":" D::Kind: $crate::marker::Add,","highlight_start":1,"highlight_end":42},{"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":" fn zero() -> Self {","highlight_start":1,"highlight_end":32},{"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::zero(),","highlight_start":1,"highlight_end":38},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" fn is_zero(&self) -> bool {","highlight_start":1,"highlight_end":40},{"text":" self.value.is_zero()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" serde! {","highlight_start":1,"highlight_end":17},{"text":" impl $crate::serde::Serialize for Quantity","highlight_start":1,"highlight_end":69},{"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::serde::Serialize,","highlight_start":1,"highlight_end":84},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn serialize(&self, serializer: S) -> Result","highlight_start":1,"highlight_end":77},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" S: $crate::serde::Serializer","highlight_start":1,"highlight_end":45},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" self.value.serialize(serializer)","highlight_start":1,"highlight_end":49},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl<'de, D, U, V> $crate::serde::Deserialize<'de> for Quantity","highlight_start":1,"highlight_end":81},{"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::serde::Deserialize<'de>,","highlight_start":1,"highlight_end":91},{"text":" {","highlight_start":1,"highlight_end":10},{"text":" fn deserialize(deserializer: De) -> Result","highlight_start":1,"highlight_end":76},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" De: $crate::serde::Deserializer<'de>,","highlight_start":1,"highlight_end":54},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" let value: V = $crate::serde::Deserialize::deserialize(deserializer)?;","highlight_start":1,"highlight_end":87},{"text":"","highlight_start":1,"highlight_end":1},{"text":" Ok(Quantity {","highlight_start":1,"highlight_end":30},{"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,","highlight_start":1,"highlight_end":27},{"text":" })","highlight_start":1,"highlight_end":19},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }}","highlight_start":1,"highlight_end":11},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Utilities for formatting and printing quantities.","highlight_start":1,"highlight_end":62},{"text":" pub mod fmt {","highlight_start":1,"highlight_end":22},{"text":" use $crate::lib::fmt;","highlight_start":1,"highlight_end":34},{"text":" use super::{Dimension, Quantity, Unit, Units, from_base};","highlight_start":1,"highlight_end":70},{"text":" use $crate::num::Num;","highlight_start":1,"highlight_end":34},{"text":" use $crate::Conversion;","highlight_start":1,"highlight_end":36},{"text":" use $crate::fmt::DisplayStyle;","highlight_start":1,"highlight_end":43},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// A struct to specify a display style and unit.","highlight_start":1,"highlight_end":62},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// # Usage","highlight_start":1,"highlight_end":24},{"text":" /// ## Indirect style","highlight_start":1,"highlight_end":34},{"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::{centimeter, meter};","highlight_start":1,"highlight_end":60},{"text":" /// # use uom::si::fmt::Arguments;","highlight_start":1,"highlight_end":47},{"text":" /// # use uom::fmt::DisplayStyle::*;","highlight_start":1,"highlight_end":49},{"text":" /// let l = Length::new::(1.0);","highlight_start":1,"highlight_end":51},{"text":" /// let a = Length::format_args(centimeter, Description);","highlight_start":1,"highlight_end":70},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// assert_eq!(\"100 centimeters\", format!(\"{}\", a.with(l)));","highlight_start":1,"highlight_end":73},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// ## Direct style","highlight_start":1,"highlight_end":32},{"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::{centimeter, meter};","highlight_start":1,"highlight_end":60},{"text":" /// # use uom::si::fmt::Arguments;","highlight_start":1,"highlight_end":47},{"text":" /// # use uom::fmt::DisplayStyle::*;","highlight_start":1,"highlight_end":49},{"text":" /// let l = Length::new::(1.0);","highlight_start":1,"highlight_end":51},{"text":" /// let a = l.into_format_args(centimeter, Description);","highlight_start":1,"highlight_end":69},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// assert_eq!(\"100 centimeters\", format!(\"{}\", a));","highlight_start":1,"highlight_end":65},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":38},{"text":" /// * `D`: Dimension.","highlight_start":1,"highlight_end":34},{"text":" /// * `N`: Unit.","highlight_start":1,"highlight_end":29},{"text":" #[allow(missing_debug_implementations)] // Prevent accidental direct use.","highlight_start":1,"highlight_end":86},{"text":" pub struct Arguments","highlight_start":1,"highlight_end":39},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" pub(super) dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":75},{"text":" pub(super) unit: N,","highlight_start":1,"highlight_end":36},{"text":" pub(super) style: DisplayStyle,","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// A struct to specify a display style and unit for a given quantity.","highlight_start":1,"highlight_end":83},{"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::{centimeter, meter};","highlight_start":1,"highlight_end":60},{"text":" /// # use uom::si::fmt::Arguments;","highlight_start":1,"highlight_end":47},{"text":" /// # use uom::fmt::DisplayStyle::*;","highlight_start":1,"highlight_end":49},{"text":" /// let l = Length::new::(1.0);","highlight_start":1,"highlight_end":51},{"text":" /// let a = l.into_format_args(centimeter, Description);","highlight_start":1,"highlight_end":69},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// assert_eq!(\"100 centimeters\", format!(\"{}\", a));","highlight_start":1,"highlight_end":65},{"text":" /// ```","highlight_start":1,"highlight_end":20},{"text":" ///","highlight_start":1,"highlight_end":16},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":38},{"text":" /// * `D`: Dimension.","highlight_start":1,"highlight_end":34},{"text":" /// * `U`: Base units.","highlight_start":1,"highlight_end":35},{"text":" /// * `V`: Value underlying storage type.","highlight_start":1,"highlight_end":54},{"text":" /// * `N`: Unit.","highlight_start":1,"highlight_end":29},{"text":" pub struct QuantityArguments","highlight_start":1,"highlight_end":53},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":38},{"text":" V: Num + Conversion,","highlight_start":1,"highlight_end":40},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" pub(super) arguments: Arguments,","highlight_start":1,"highlight_end":55},{"text":" pub(super) quantity: Quantity,","highlight_start":1,"highlight_end":56},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::clone::Clone for Arguments","highlight_start":1,"highlight_end":69},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" fn clone(&self) -> Self {","highlight_start":1,"highlight_end":42},{"text":" Self {","highlight_start":1,"highlight_end":27},{"text":" dimension: $crate::lib::marker::PhantomData,","highlight_start":1,"highlight_end":69},{"text":" unit: self.unit.clone(),","highlight_start":1,"highlight_end":49},{"text":" style: self.style.clone(),","highlight_start":1,"highlight_end":51},{"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":1},{"text":" impl $crate::lib::marker::Copy for Arguments","highlight_start":1,"highlight_end":69},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::clone::Clone for QuantityArguments","highlight_start":1,"highlight_end":89},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":38},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::clone::Clone,","highlight_start":1,"highlight_end":89},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" fn clone(&self) -> Self {","highlight_start":1,"highlight_end":42},{"text":" Self {","highlight_start":1,"highlight_end":27},{"text":" arguments: self.arguments.clone(),","highlight_start":1,"highlight_end":59},{"text":" quantity: self.quantity.clone(),","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":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl $crate::lib::marker::Copy for QuantityArguments","highlight_start":1,"highlight_end":89},{"text":" where","highlight_start":1,"highlight_end":18},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":39},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":38},{"text":" V: $crate::num::Num + $crate::Conversion + $crate::lib::marker::Copy,","highlight_start":1,"highlight_end":89},{"text":" N: Unit,","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" macro_rules! format_arguments {","highlight_start":1,"highlight_end":44},{"text":" ($style:ident) => {","highlight_start":1,"highlight_end":36},{"text":" impl fmt::$style for QuantityArguments","highlight_start":1,"highlight_end":83},{"text":" where","highlight_start":1,"highlight_end":26},{"text":" D: Dimension + ?Sized,","highlight_start":1,"highlight_end":47},{"text":" U: Units + ?Sized,","highlight_start":1,"highlight_end":46},{"text":" V: Num + Conversion + fmt::$style,","highlight_start":1,"highlight_end":62},{"text":" N: Unit + Conversion,","highlight_start":1,"highlight_end":59},{"text":" {","highlight_start":1,"highlight_end":22},{"text":" fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {","highlight_start":1,"highlight_end":79},{"text":" let value = from_base::(&self.quantity.value);","highlight_start":1,"highlight_end":87},{"text":"","highlight_start":1,"highlight_end":1},{"text":" value.fmt(f)?;","highlight_start":1,"highlight_end":43},{"text":" write!(f, \" {}\",","highlight_start":1,"highlight_end":45},{"text":" match self.arguments.style {","highlight_start":1,"highlight_end":61},{"text":" DisplayStyle::Abbreviation => N::abbreviation(),","highlight_start":1,"highlight_end":85},{"text":" DisplayStyle::Description => {","highlight_start":1,"highlight_end":67},{"text":" if value.is_one() { N::singular() } else { N::plural() }","highlight_start":1,"highlight_end":97},{"text":" },","highlight_start":1,"highlight_end":39},{"text":" })","highlight_start":1,"highlight_end":35},{"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":14},{"text":"","highlight_start":1,"highlight_end":1},{"text":" format_arguments!(Binary);","highlight_start":1,"highlight_end":39},{"text":" format_arguments!(Debug);","highlight_start":1,"highlight_end":38},{"text":" format_arguments!(Display);","highlight_start":1,"highlight_end":40},{"text":" format_arguments!(LowerExp);","highlight_start":1,"highlight_end":41},{"text":" format_arguments!(LowerHex);","highlight_start":1,"highlight_end":41},{"text":" format_arguments!(Octal);","highlight_start":1,"highlight_end":38},{"text":" format_arguments!(UpperExp);","highlight_start":1,"highlight_end":41},{"text":" format_arguments!(UpperHex);","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Macro to implement [`quantity`](si/struct.Quantity.html) type aliases for a specific","highlight_start":1,"highlight_end":97},{"text":" /// [system of units][units] and value storage type.","highlight_start":1,"highlight_end":61},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// * `$path`: Path to the module where the [`system!`](macro.system.html) macro was run","highlight_start":1,"highlight_end":97},{"text":" /// (e.g. `::uom::si`).","highlight_start":1,"highlight_end":34},{"text":" /// * `$V`: Underlying value storage type (e.g. `f32`).","highlight_start":1,"highlight_end":64},{"text":" /// * `$U`: Optional. Base units. Pass as a tuple with the desired units: `(meter, kilogram,","highlight_start":1,"highlight_end":101},{"text":" /// second, ampere, kelvin, mole, candela)`. The system's base units will be used if no","highlight_start":1,"highlight_end":98},{"text":" /// value is provided. Note that a unit with a non-zero constant factor is not currently","highlight_start":1,"highlight_end":99},{"text":" /// supported as a base unit.","highlight_start":1,"highlight_end":40},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// An example invocation is given below for a meter-kilogram-second system setup in the","highlight_start":1,"highlight_end":97},{"text":" /// module `mks` with a system of quantities name `Q`. The `#[macro_use]` attribute must be","highlight_start":1,"highlight_end":100},{"text":" /// used when including the `uom` crate to make macros for predefined systems available.","highlight_start":1,"highlight_end":97},{"text":" /// The optional units parameter to change the base units is included commented out.","highlight_start":1,"highlight_end":93},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"text":" /// #[macro_use]","highlight_start":1,"highlight_end":25},{"text":" /// extern crate uom;","highlight_start":1,"highlight_end":30},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// # fn main() { }","highlight_start":1,"highlight_end":28},{"text":" /// # mod mks {","highlight_start":1,"highlight_end":24},{"text":" /// # #[macro_use]","highlight_start":1,"highlight_end":31},{"text":" /// # mod length {","highlight_start":1,"highlight_end":31},{"text":" /// # quantity! {","highlight_start":1,"highlight_end":34},{"text":" /// # /// Length (base unit meter, m).","highlight_start":1,"highlight_end":59},{"text":" /// # quantity: Length; \"length\";","highlight_start":1,"highlight_end":54},{"text":" /// # /// Length dimension, m.","highlight_start":1,"highlight_end":51},{"text":" /// # dimension: Q;","highlight_start":1,"highlight_end":81},{"text":" /// # units {","highlight_start":1,"highlight_end":34},{"text":" /// # @meter: 1.0E0; \"m\", \"meter\", \"meters\";","highlight_start":1,"highlight_end":69},{"text":" /// # @foot: 3.048E-1; \"ft\", \"foot\", \"feet\";","highlight_start":1,"highlight_end":69},{"text":" /// # }","highlight_start":1,"highlight_end":28},{"text":" /// # }","highlight_start":1,"highlight_end":24},{"text":" /// # }","highlight_start":1,"highlight_end":20},{"text":" /// # #[macro_use]","highlight_start":1,"highlight_end":31},{"text":" /// # mod mass {","highlight_start":1,"highlight_end":29},{"text":" /// # quantity! {","highlight_start":1,"highlight_end":34},{"text":" /// # /// Mass (base unit kilogram, kg).","highlight_start":1,"highlight_end":61},{"text":" /// # quantity: Mass; \"mass\";","highlight_start":1,"highlight_end":50},{"text":" /// # /// Mass dimension, kg.","highlight_start":1,"highlight_end":50},{"text":" /// # dimension: Q;","highlight_start":1,"highlight_end":81},{"text":" /// # units {","highlight_start":1,"highlight_end":34},{"text":" /// # @kilogram: 1.0; \"kg\", \"kilogram\", \"kilograms\";","highlight_start":1,"highlight_end":77},{"text":" /// # }","highlight_start":1,"highlight_end":28},{"text":" /// # }","highlight_start":1,"highlight_end":24},{"text":" /// # }","highlight_start":1,"highlight_end":20},{"text":" /// # #[macro_use]","highlight_start":1,"highlight_end":31},{"text":" /// # mod time {","highlight_start":1,"highlight_end":29},{"text":" /// # quantity! {","highlight_start":1,"highlight_end":34},{"text":" /// # /// Time (base unit second, s).","highlight_start":1,"highlight_end":58},{"text":" /// # quantity: Time; \"time\";","highlight_start":1,"highlight_end":50},{"text":" /// # /// Time dimension, s.","highlight_start":1,"highlight_end":49},{"text":" /// # dimension: Q;","highlight_start":1,"highlight_end":81},{"text":" /// # units {","highlight_start":1,"highlight_end":34},{"text":" /// # @second: 1.0; \"s\", \"second\", \"seconds\";","highlight_start":1,"highlight_end":70},{"text":" /// # }","highlight_start":1,"highlight_end":28},{"text":" /// # }","highlight_start":1,"highlight_end":24},{"text":" /// # }","highlight_start":1,"highlight_end":20},{"text":" /// # system! {","highlight_start":1,"highlight_end":28},{"text":" /// # /// System of quantities, Q.","highlight_start":1,"highlight_end":51},{"text":" /// # quantities: Q {","highlight_start":1,"highlight_end":38},{"text":" /// # length: meter, L;","highlight_start":1,"highlight_end":44},{"text":" /// # mass: kilogram, M;","highlight_start":1,"highlight_end":45},{"text":" /// # time: second, T;","highlight_start":1,"highlight_end":43},{"text":" /// # }","highlight_start":1,"highlight_end":24},{"text":" /// # /// System of units, U.","highlight_start":1,"highlight_end":46},{"text":" /// # units: U {","highlight_start":1,"highlight_end":33},{"text":" /// # mod length::Length,","highlight_start":1,"highlight_end":46},{"text":" /// # mod mass::Mass,","highlight_start":1,"highlight_end":42},{"text":" /// # mod time::Time,","highlight_start":1,"highlight_end":42},{"text":" /// # }","highlight_start":1,"highlight_end":24},{"text":" /// # }","highlight_start":1,"highlight_end":20},{"text":" /// mod f32 {","highlight_start":1,"highlight_end":22},{"text":" /// mod mks {","highlight_start":1,"highlight_end":26},{"text":" /// pub use super::super::*;","highlight_start":1,"highlight_end":45},{"text":" /// }","highlight_start":1,"highlight_end":18},{"text":" ///","highlight_start":1,"highlight_end":12},{"text":" /// // `crate::mks` works in Rust 1.30.0 or later. `mod mks {...}` workaround is needed","highlight_start":1,"highlight_end":100},{"text":" /// // to support older versions of Rust and the 2018 edition at the same time.","highlight_start":1,"highlight_end":92},{"text":" /// Q!(self::mks, f32/*, (centimeter, gram, second)*/);","highlight_start":1,"highlight_end":68},{"text":" /// }","highlight_start":1,"highlight_end":14},{"text":" /// # }","highlight_start":1,"highlight_end":16},{"text":" /// ```","highlight_start":1,"highlight_end":16},{"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":" #[macro_export]","highlight_start":1,"highlight_end":24},{"text":" macro_rules! $quantities {","highlight_start":1,"highlight_end":35},{"text":" ($path:path) => {","highlight_start":1,"highlight_end":30},{"text":" use $path as __system;","highlight_start":1,"highlight_end":39},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $(/// [`Quantity`](struct.Quantity.html) type alias using the default base units","highlight_start":1,"highlight_end":97},{"text":" /// parameterized on the underlying storage type.","highlight_start":1,"highlight_end":66},{"text":" ///","highlight_start":1,"highlight_end":20},{"text":" /// ## Generic Parameters","highlight_start":1,"highlight_end":42},{"text":" /// * `V`: Underlying storage type.","highlight_start":1,"highlight_end":52},{"text":" #[allow(dead_code)]","highlight_start":1,"highlight_end":36},{"text":" #[allow(unused_qualifications)]","highlight_start":1,"highlight_end":48},{"text":" pub type $quantity = __system::$module::$quantity<__system::$units, V>;)+","highlight_start":1,"highlight_end":96},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" ($path:path, $V:ty) => {","highlight_start":1,"highlight_end":37},{"text":" use $path as __system;","highlight_start":1,"highlight_end":39},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $(/// [`Quantity`](struct.Quantity.html) type alias using the default base units.","highlight_start":1,"highlight_end":98},{"text":" #[allow(dead_code)]","highlight_start":1,"highlight_end":36},{"text":" #[allow(unused_qualifications)]","highlight_start":1,"highlight_end":48},{"text":" pub type $quantity = __system::$module::$quantity<__system::$units<$V>, $V>;)+","highlight_start":1,"highlight_end":95},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" ($path:path, $V:ty, $U:tt) => {","highlight_start":1,"highlight_end":44},{"text":" system!(@quantities $path, $V; $($name),+; $U; $($module::$quantity),+);","highlight_start":1,"highlight_end":89},{"text":" };","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" @quantities $path:path,","highlight_start":1,"highlight_end":32},{"text":" $V:ty;","highlight_start":1,"highlight_end":15},{"text":" $($name:ident),+;","highlight_start":1,"highlight_end":26},{"text":" ($($U:ident),+);","highlight_start":1,"highlight_end":25},{"text":" $($module:ident::$quantity:ident),+","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" use $path as __system;","highlight_start":1,"highlight_end":31},{"text":"","highlight_start":1,"highlight_end":1},{"text":" type Units = dyn __system::Units<$V, $($name = __system::$name::$U,)+>;","highlight_start":1,"highlight_end":80},{"text":"","highlight_start":1,"highlight_end":1},{"text":" $(/// [`Quantity`](struct.Quantity.html) type alias using the given base units.","highlight_start":1,"highlight_end":88},{"text":" #[allow(dead_code)]","highlight_start":1,"highlight_end":28},{"text":" #[allow(unused_qualifications)]","highlight_start":1,"highlight_end":40},{"text":" pub type $quantity = __system::$module::$quantity;)+","highlight_start":1,"highlight_end":72},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (@replace $_t:tt $sub:ty) => { $sub };","highlight_start":1,"highlight_end":43},{"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.27.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,"," [INFO] [stderr] error: could not compile `uom` [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `rustc --crate-name uom /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/uom-0.27.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="autoconvert"' --cfg 'feature="f32"' --cfg 'feature="f64"' --cfg 'feature="num-rational"' --cfg 'feature="rational-support"' --cfg 'feature="si"' --cfg 'feature="std"' --cfg 'feature="u64"' -C metadata=e9d18b5a2403eca8 -C extra-filename=-e9d18b5a2403eca8 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern num_rational=/opt/rustwide/target/debug/deps/libnum_rational-30cb2df934ed7a43.rmeta --extern num_traits=/opt/rustwide/target/debug/deps/libnum_traits-782d657409219772.rmeta --extern typenum=/opt/rustwide/target/debug/deps/libtypenum-49681cb3a11b6934.rmeta --cap-lints allow --cap-lints=forbid` (signal: 9, SIGKILL: kill) [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: c++: fatal error: Killed signal terminated program cc1plus [INFO] [stderr] warning: compilation terminated. [INFO] [stderr] warning: c++: fatal error: Killed signal terminated program cc1plus [INFO] [stderr] warning: compilation terminated. [INFO] [stderr] warning: c++: fatal error: Killed signal terminated program cc1plus [INFO] [stderr] warning: compilation terminated. [INFO] [stderr] warning: c++: fatal error: Killed signal terminated program cc1plus [INFO] [stderr] warning: compilation terminated. [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "af793970198928bdcb667b44e1c38c0bf534721cb758ed203949bf7117eb3544", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af793970198928bdcb667b44e1c38c0bf534721cb758ed203949bf7117eb3544", kill_on_drop: false }` [INFO] [stdout] af793970198928bdcb667b44e1c38c0bf534721cb758ed203949bf7117eb3544