[INFO] crate libpulse-binding 2.4.0 is already in cache [INFO] extracting crate libpulse-binding 2.4.0 into work/ex/clippy-test-run/sources/stable/reg/libpulse-binding/2.4.0 [INFO] extracting crate libpulse-binding 2.4.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/libpulse-binding/2.4.0 [INFO] validating manifest of libpulse-binding-2.4.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of libpulse-binding-2.4.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing libpulse-binding-2.4.0 [INFO] finished frobbing libpulse-binding-2.4.0 [INFO] frobbed toml for libpulse-binding-2.4.0 written to work/ex/clippy-test-run/sources/stable/reg/libpulse-binding/2.4.0/Cargo.toml [INFO] started frobbing libpulse-binding-2.4.0 [INFO] finished frobbing libpulse-binding-2.4.0 [INFO] frobbed toml for libpulse-binding-2.4.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/libpulse-binding/2.4.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting libpulse-binding-2.4.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/libpulse-binding/2.4.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 045731082b69759eabbdd396128f07d405974d308460c8232ec0f023000f6a24 [INFO] running `"docker" "start" "-a" "045731082b69759eabbdd396128f07d405974d308460c8232ec0f023000f6a24"` [INFO] [stderr] Checking libpulse-binding v2.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_device_manager.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_device_restore.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_stream_restore.rs:96:16 [INFO] [stderr] | [INFO] [stderr] 96 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/introspect.rs:271:16 [INFO] [stderr] | [INFO] [stderr] 271 | Self { context: context } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/mod.rs:227:16 [INFO] [stderr] | [INFO] [stderr] 227 | Self { ptr: ptr, weak: false, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/format.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/format.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/io.rs:77:16 [INFO] [stderr] | [INFO] [stderr] 77 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/io.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/timer.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/timer.rs:94:16 [INFO] [stderr] | [INFO] [stderr] 94 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/deferred.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/deferred.rs:76:16 [INFO] [stderr] | [INFO] [stderr] 76 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/signal.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | Self { ptr: ptr, _signal_cb: saved } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/standard.rs:305:25 [INFO] [stderr] | [INFO] [stderr] 305 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/threaded.rs:445:25 [INFO] [stderr] | [INFO] [stderr] 445 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/operation.rs:56:16 [INFO] [stderr] | [INFO] [stderr] 56 | Self { ptr: ptr, saved_cb: saved_cb_actual, state_cb: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proplist.rs:215:16 [INFO] [stderr] | [INFO] [stderr] 215 | Self { ptr: ptr, weak: false } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proplist.rs:223:16 [INFO] [stderr] | [INFO] [stderr] 223 | Self { ptr: ptr, weak: true } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/stream.rs:658:16 [INFO] [stderr] | [INFO] [stderr] 658 | Self { ptr: ptr, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_device_manager.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_device_restore.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/ext_stream_restore.rs:96:16 [INFO] [stderr] | [INFO] [stderr] 96 | Self { context: context, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/introspect.rs:271:16 [INFO] [stderr] | [INFO] [stderr] 271 | Self { context: context } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/context/mod.rs:227:16 [INFO] [stderr] | [INFO] [stderr] 227 | Self { ptr: ptr, weak: false, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/format.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/format.rs:211:17 [INFO] [stderr] | [INFO] [stderr] 211 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/io.rs:77:16 [INFO] [stderr] | [INFO] [stderr] 77 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/io.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/timer.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/timer.rs:94:16 [INFO] [stderr] | [INFO] [stderr] 94 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/deferred.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | Self { ptr: ptr, owner: mainloop_inner, _saved_cb: callback } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/events/deferred.rs:76:16 [INFO] [stderr] | [INFO] [stderr] 76 | Self { ptr: ptr, owner: mainloop_inner } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/signal.rs:74:16 [INFO] [stderr] | [INFO] [stderr] 74 | Self { ptr: ptr, _signal_cb: saved } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/standard.rs:305:25 [INFO] [stderr] | [INFO] [stderr] 305 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mainloop/threaded.rs:445:25 [INFO] [stderr] | [INFO] [stderr] 445 | ptr: ptr, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/operation.rs:56:16 [INFO] [stderr] | [INFO] [stderr] 56 | Self { ptr: ptr, saved_cb: saved_cb_actual, state_cb: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proplist.rs:215:16 [INFO] [stderr] | [INFO] [stderr] 215 | Self { ptr: ptr, weak: false } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proplist.rs:223:16 [INFO] [stderr] | [INFO] [stderr] 223 | Self { ptr: ptr, weak: true } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/stream.rs:658:16 [INFO] [stderr] | [INFO] [stderr] 658 | Self { ptr: ptr, cb_ptrs: Default::default() } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/channelmap.rs:57:45 [INFO] [stderr] | [INFO] [stderr] 57 | pub const POSITION_MASK_ALL: PositionMask = 0xffffffffffffffffu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xffff_ffff_ffff_ffffu64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/channelmap.rs:57:45 [INFO] [stderr] | [INFO] [stderr] 57 | pub const POSITION_MASK_ALL: PositionMask = 0xffffffffffffffffu64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xffff_ffff_ffff_ffffu64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/callbacks.rs:94:50 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn get_callback<'a>(ptr: *mut c_void) -> &'a mut Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'a mut ClosureProto` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/callbacks.rs:151:11 [INFO] [stderr] | [INFO] [stderr] 151 | Entry(&'a mut Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'a mut ClosureProto` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/channelmap.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | / match self.channels == other.channels { [INFO] [stderr] 194 | | true => self.map[..self.channels as usize] == other.map[..other.channels as usize], [INFO] [stderr] 195 | | false => false, [INFO] [stderr] 196 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.channels == other.channels { self.map[..self.channels as usize] == other.map[..other.channels as usize] } else { false }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/channelmap.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn to_string(pos: Self) -> Option> { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/channelmap.rs:219:29 [INFO] [stderr] | [INFO] [stderr] 219 | pub fn to_pretty_string(pos: Self) -> Option { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/channelmap.rs:231:34 [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/channelmap.rs:243:34 [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:246:43 [INFO] [stderr] | [INFO] [stderr] 246 | if capi::pa_channel_map_parse(std::mem::transmute(&mut map), c_str.as_ptr()).is_null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut map as *mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:256:44 [INFO] [stderr] | [INFO] [stderr] 256 | unsafe { capi::pa_channel_map_init(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:262:49 [INFO] [stderr] | [INFO] [stderr] 262 | unsafe { capi::pa_channel_map_init_mono(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:268:51 [INFO] [stderr] | [INFO] [stderr] 268 | unsafe { capi::pa_channel_map_init_stereo(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:280:47 [INFO] [stderr] | [INFO] [stderr] 280 | if capi::pa_channel_map_init_auto(std::mem::transmute(&self), channels, def).is_null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:292:51 [INFO] [stderr] | [INFO] [stderr] 292 | unsafe { capi::pa_channel_map_init_extend(std::mem::transmute(&self), channels, def) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:301:71 [INFO] [stderr] | [INFO] [stderr] 301 | capi::pa_channel_map_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:308:45 [INFO] [stderr] | [INFO] [stderr] 308 | unsafe { capi::pa_channel_map_equal(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | std::mem::transmute(to)) == 1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:314:45 [INFO] [stderr] | [INFO] [stderr] 314 | unsafe { capi::pa_channel_map_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:319:50 [INFO] [stderr] | [INFO] [stderr] 319 | unsafe { capi::pa_channel_map_compatible(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | std::mem::transmute(ss)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:325:48 [INFO] [stderr] | [INFO] [stderr] 325 | unsafe { capi::pa_channel_map_superset(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:326:13 [INFO] [stderr] | [INFO] [stderr] 326 | std::mem::transmute(of)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `of as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:332:51 [INFO] [stderr] | [INFO] [stderr] 332 | unsafe { capi::pa_channel_map_can_balance(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:338:48 [INFO] [stderr] | [INFO] [stderr] 338 | unsafe { capi::pa_channel_map_can_fade(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:345:55 [INFO] [stderr] | [INFO] [stderr] 345 | unsafe { capi::pa_channel_map_can_lfe_balance(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:352:57 [INFO] [stderr] | [INFO] [stderr] 352 | let ptr = unsafe { capi::pa_channel_map_to_name(std::mem::transmute(self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:362:64 [INFO] [stderr] | [INFO] [stderr] 362 | let ptr = unsafe { capi::pa_channel_map_to_pretty_name(std::mem::transmute(self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:371:52 [INFO] [stderr] | [INFO] [stderr] 371 | unsafe { capi::pa_channel_map_has_position(std::mem::transmute(self), p.into()) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:376:44 [INFO] [stderr] | [INFO] [stderr] 376 | unsafe { capi::pa_channel_map_mask(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:41:23 [INFO] [stderr] | [INFO] [stderr] 41 | role: match src.role.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 42 | | false => Some(CStr::from_ptr(src.role).to_string_lossy()), [INFO] [stderr] 43 | | true => None, [INFO] [stderr] 44 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.role.is_null() { None } else { Some(CStr::from_ptr(src.role).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:84:23 [INFO] [stderr] | [INFO] [stderr] 84 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 85 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 86 | | true => None, [INFO] [stderr] 87 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:88:30 [INFO] [stderr] | [INFO] [stderr] 88 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 89 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 90 | | true => None, [INFO] [stderr] 91 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:92:23 [INFO] [stderr] | [INFO] [stderr] 92 | icon: match src.icon.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 93 | | false => Some(CStr::from_ptr(src.icon).to_string_lossy()), [INFO] [stderr] 94 | | true => None, [INFO] [stderr] 95 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.icon.is_null() { None } else { Some(CStr::from_ptr(src.icon).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:174:34 [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(device.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(&(*device).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(&str::clone(device)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:175:35 [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(description.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(&(*description).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(&str::clone(description)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:198:38 [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(device.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(&(*device).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(&str::clone(device)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:245:35 [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(role.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(&(*role).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(&str::clone(role)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:248:38 [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(device.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(&(*device).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(&str::clone(device)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/ext_device_restore.rs:180:39 [INFO] [stderr] | [INFO] [stderr] 180 | format_ptrs.push(unsafe { std::mem::transmute(&format.ptr) }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&format.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_stream_restore.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 53 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 54 | | true => None, [INFO] [stderr] 55 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_stream_restore.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | device: match src.name.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 59 | | false => Some(CStr::from_ptr(src.device).to_string_lossy()), [INFO] [stderr] 60 | | true => None, [INFO] [stderr] 61 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.device).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/context/ext_stream_restore.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | std::mem::transmute(data.as_ptr()), data.len() as u32, apply_immediately as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `data.as_ptr() as *const *const capi::pa_ext_stream_restore_info` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_stream_restore.rs:156:41 [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(stream.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(&(*stream).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(&str::clone(stream)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:309:23 [INFO] [stderr] | [INFO] [stderr] 309 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 310 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 311 | | true => None, [INFO] [stderr] 312 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:313:30 [INFO] [stderr] | [INFO] [stderr] 313 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 314 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 315 | | true => None, [INFO] [stderr] 316 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:401:23 [INFO] [stderr] | [INFO] [stderr] 401 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 402 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 403 | | true => None, [INFO] [stderr] 404 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:406:30 [INFO] [stderr] | [INFO] [stderr] 406 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 407 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 408 | | true => None, [INFO] [stderr] 409 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:419:38 [INFO] [stderr] | [INFO] [stderr] 419 | monitor_source_name: match src.monitor_source_name.is_null() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 420 | | false => Some(CStr::from_ptr(src.monitor_source_name).to_string_lossy()), [INFO] [stderr] 421 | | true => None, [INFO] [stderr] 422 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.monitor_source_name.is_null() { None } else { Some(CStr::from_ptr(src.monitor_source_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:424:25 [INFO] [stderr] | [INFO] [stderr] 424 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 425 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 426 | | true => None, [INFO] [stderr] 427 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:439:30 [INFO] [stderr] | [INFO] [stderr] 439 | active_port: match src.active_port.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 440 | | true => None, [INFO] [stderr] 441 | | false => Some(Box::new(SinkPortInfo::new_from_raw(src.active_port))), [INFO] [stderr] 442 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_port.is_null() { None } else { Some(Box::new(SinkPortInfo::new_from_raw(src.active_port))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:459:35 [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:506:13 [INFO] [stderr] | [INFO] [stderr] 506 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:521:35 [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:557:35 [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:577:35 [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(sink_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(&(*sink_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(&str::clone(sink_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:614:35 [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:634:35 [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:635:35 [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:689:23 [INFO] [stderr] | [INFO] [stderr] 689 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 690 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 691 | | true => None, [INFO] [stderr] 692 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:693:30 [INFO] [stderr] | [INFO] [stderr] 693 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 694 | | false=> Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 695 | | true => None, [INFO] [stderr] 696 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:781:23 [INFO] [stderr] | [INFO] [stderr] 781 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 782 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 783 | | true => None, [INFO] [stderr] 784 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:786:30 [INFO] [stderr] | [INFO] [stderr] 786 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 787 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 788 | | true => None, [INFO] [stderr] 789 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:802:39 [INFO] [stderr] | [INFO] [stderr] 802 | monitor_of_sink_name: match src.monitor_of_sink_name.is_null() { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 803 | | false => Some(CStr::from_ptr(src.monitor_of_sink_name).to_string_lossy()), [INFO] [stderr] 804 | | true => None, [INFO] [stderr] 805 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.monitor_of_sink_name.is_null() { None } else { Some(CStr::from_ptr(src.monitor_of_sink_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:807:25 [INFO] [stderr] | [INFO] [stderr] 807 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 808 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 809 | | true => None, [INFO] [stderr] 810 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:822:30 [INFO] [stderr] | [INFO] [stderr] 822 | active_port: match src.active_port.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 823 | | true => None, [INFO] [stderr] 824 | | false => Some(Box::new(SourcePortInfo::new_from_raw(src.active_port))), [INFO] [stderr] 825 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_port.is_null() { None } else { Some(Box::new(SourcePortInfo::new_from_raw(src.active_port))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:842:35 [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:889:13 [INFO] [stderr] | [INFO] [stderr] 889 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:904:35 [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:940:35 [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:960:35 [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:997:35 [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1017:35 [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1018:35 [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1082:28 [INFO] [stderr] | [INFO] [stderr] 1082 | user_name: match src.user_name.is_null() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 1083 | | false => Some(CStr::from_ptr(src.user_name).to_string_lossy()), [INFO] [stderr] 1084 | | true => None, [INFO] [stderr] 1085 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.user_name.is_null() { None } else { Some(CStr::from_ptr(src.user_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1086:28 [INFO] [stderr] | [INFO] [stderr] 1086 | host_name: match src.host_name.is_null() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 1087 | | false => Some(CStr::from_ptr(src.host_name).to_string_lossy()), [INFO] [stderr] 1088 | | true => None, [INFO] [stderr] 1089 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.host_name.is_null() { None } else { Some(CStr::from_ptr(src.host_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1090:33 [INFO] [stderr] | [INFO] [stderr] 1090 | server_version: match src.server_version.is_null() { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 1091 | | false => Some(CStr::from_ptr(src.server_version).to_string_lossy()), [INFO] [stderr] 1092 | | true => None, [INFO] [stderr] 1093 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.server_version.is_null() { None } else { Some(CStr::from_ptr(src.server_version).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1094:30 [INFO] [stderr] | [INFO] [stderr] 1094 | server_name: match src.server_name.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1095 | | false => Some(CStr::from_ptr(src.server_name).to_string_lossy()), [INFO] [stderr] 1096 | | true => None, [INFO] [stderr] 1097 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.server_name.is_null() { None } else { Some(CStr::from_ptr(src.server_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1099:36 [INFO] [stderr] | [INFO] [stderr] 1099 | default_sink_name: match src.default_sink_name.is_null() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 1100 | | false => Some(CStr::from_ptr(src.default_sink_name).to_string_lossy()), [INFO] [stderr] 1101 | | true => None, [INFO] [stderr] 1102 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.default_sink_name.is_null() { None } else { Some(CStr::from_ptr(src.default_sink_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1103:38 [INFO] [stderr] | [INFO] [stderr] 1103 | default_source_name: match src.default_source_name.is_null() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 1104 | | false => Some(CStr::from_ptr(src.default_source_name).to_string_lossy()), [INFO] [stderr] 1105 | | true => None, [INFO] [stderr] 1106 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.default_source_name.is_null() { None } else { Some(CStr::from_ptr(src.default_source_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1172:23 [INFO] [stderr] | [INFO] [stderr] 1172 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1173 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1174 | | true => None, [INFO] [stderr] 1175 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1176:27 [INFO] [stderr] | [INFO] [stderr] 1176 | argument: match src.argument.is_null() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 1177 | | false => Some(CStr::from_ptr(src.argument).to_string_lossy()), [INFO] [stderr] 1178 | | true => None, [INFO] [stderr] 1179 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.argument.is_null() { None } else { Some(CStr::from_ptr(src.argument).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1228:35 [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1229:34 [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(argument.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(&(*argument).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(&str::clone(argument)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1309:23 [INFO] [stderr] | [INFO] [stderr] 1309 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1310 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1311 | | true => None, [INFO] [stderr] 1312 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1317:25 [INFO] [stderr] | [INFO] [stderr] 1317 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1318 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1319 | | true => None, [INFO] [stderr] 1320 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1422:23 [INFO] [stderr] | [INFO] [stderr] 1422 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1423 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1424 | | true => None, [INFO] [stderr] 1425 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1426:30 [INFO] [stderr] | [INFO] [stderr] 1426 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1427 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 1428 | | true => None, [INFO] [stderr] 1429 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1480:23 [INFO] [stderr] | [INFO] [stderr] 1480 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1481 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1482 | | true => None, [INFO] [stderr] 1483 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1484:30 [INFO] [stderr] | [INFO] [stderr] 1484 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1485 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 1486 | | true => None, [INFO] [stderr] 1487 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1548:23 [INFO] [stderr] | [INFO] [stderr] 1548 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1549 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1550 | | true => None, [INFO] [stderr] 1551 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1556:25 [INFO] [stderr] | [INFO] [stderr] 1556 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1557 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1558 | | true => None, [INFO] [stderr] 1559 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1563:33 [INFO] [stderr] | [INFO] [stderr] 1563 | active_profile: match src.active_profile2.is_null() { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 1564 | | true => None, [INFO] [stderr] 1565 | | false => Some(Box::new(CardProfileInfo2::new_from_raw(src.active_profile2))), [INFO] [stderr] 1566 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_profile2.is_null() { None } else { Some(Box::new(CardProfileInfo2::new_from_raw(src.active_profile2))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1596:35 [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1628:38 [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(profile.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(&(*profile).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(&str::clone(profile)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1648:35 [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1649:38 [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(profile.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(&(*profile).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(&str::clone(profile)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1669:35 [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(card_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(&(*card_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(&str::clone(card_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1670:35 [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(port_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(&(*port_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(&str::clone(port_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1758:23 [INFO] [stderr] | [INFO] [stderr] 1758 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1759 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1760 | | true => None, [INFO] [stderr] 1761 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1776:34 [INFO] [stderr] | [INFO] [stderr] 1776 | resample_method: match src.resample_method.is_null() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 1777 | | false => Some(CStr::from_ptr(src.resample_method).to_string_lossy()), [INFO] [stderr] 1778 | | true => None, [INFO] [stderr] 1779 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.resample_method.is_null() { None } else { Some(CStr::from_ptr(src.resample_method).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1780:25 [INFO] [stderr] | [INFO] [stderr] 1780 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1781 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1782 | | true => None, [INFO] [stderr] 1783 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1836:35 [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(sink_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(&(*sink_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(&str::clone(sink_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:1873:13 [INFO] [stderr] | [INFO] [stderr] 1873 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1987:23 [INFO] [stderr] | [INFO] [stderr] 1987 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1988 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1989 | | true => None, [INFO] [stderr] 1990 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2004:34 [INFO] [stderr] | [INFO] [stderr] 2004 | resample_method: match src.resample_method.is_null() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 2005 | | false => Some(CStr::from_ptr(src.resample_method).to_string_lossy()), [INFO] [stderr] 2006 | | true => None, [INFO] [stderr] 2007 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.resample_method.is_null() { None } else { Some(CStr::from_ptr(src.resample_method).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2008:25 [INFO] [stderr] | [INFO] [stderr] 2008 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 2009 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 2010 | | true => None, [INFO] [stderr] 2011 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:2065:35 [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(source_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(&(*source_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(&str::clone(source_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:2102:13 [INFO] [stderr] | [INFO] [stderr] 2102 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2224:23 [INFO] [stderr] | [INFO] [stderr] 2224 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 2225 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 2226 | | true => None, [INFO] [stderr] 2227 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2234:27 [INFO] [stderr] | [INFO] [stderr] 2234 | filename: match src.filename.is_null() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 2235 | | false => Some(CStr::from_ptr(src.filename).to_string_lossy()), [INFO] [stderr] 2236 | | true => None, [INFO] [stderr] 2237 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.filename.is_null() { None } else { Some(CStr::from_ptr(src.filename).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:2254:35 [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:86:35 [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:116:35 [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/context/scache.rs:158:19 [INFO] [stderr] | [INFO] [stderr] 158 | callback: Option) + 'static>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:163:35 [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:165:39 [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/context/subscribe.rs:200:19 [INFO] [stderr] | [INFO] [stderr] 200 | callback: Option, Option, u32) + 'static>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:198:35 [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:199:49 [INFO] [stderr] | [INFO] [stderr] 199 | let ptr = unsafe { capi::pa_context_new(std::mem::transmute(mainloop.inner().get_api()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mainloop.inner().get_api() as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:214:35 [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | std::mem::transmute(mainloop.inner().get_api()), c_name.as_ptr(), proplist.ptr) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mainloop.inner().get_api() as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:280:42 [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(server.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(&(*server).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(&str::clone(server)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:285:35 [INFO] [stderr] | [INFO] [stderr] 285 | Some(api) => unsafe { std::mem::transmute(api) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api as *const def::SpawnApi as *const capi::pa_spawn_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:356:35 [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:375:35 [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:402:35 [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:464:38 [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(key.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(&(*key).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(&str::clone(key)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:561:65 [INFO] [stderr] | [INFO] [stderr] 561 | match unsafe { capi::pa_context_get_tile_size(self.ptr, std::mem::transmute(ss)) } { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:576:35 [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(cookie_file_path.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(&(*cookie_file_path).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(&str::clone(cookie_file_path)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/error.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn to_string(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/error.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / fn from(e: PAErr) -> Self { [INFO] [stderr] 119 | | // Error codes are negative, `Code` enum variants are positive [INFO] [stderr] 120 | | // Note, avoid transmute - likely different sizes! [INFO] [stderr] 121 | | let abs = -(e.0); [INFO] [stderr] ... | [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/format.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn to_string(e: Self) -> Option> { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:133:34 [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(encoding.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(&(*encoding).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(&str::clone(encoding)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:147:38 [INFO] [stderr] | [INFO] [stderr] 147 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:157:34 [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:162:38 [INFO] [stderr] | [INFO] [stderr] 162 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:181:35 [INFO] [stderr] | [INFO] [stderr] 181 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:184:66 [INFO] [stderr] | [INFO] [stderr] 184 | let ptr = unsafe { capi::pa_format_info_from_sample_spec(std::mem::transmute(ss), p_map) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:188:38 [INFO] [stderr] | [INFO] [stderr] 188 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:220:45 [INFO] [stderr] | [INFO] [stderr] 220 | unsafe { capi::pa_format_info_valid(std::mem::transmute(&self.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:225:46 [INFO] [stderr] | [INFO] [stderr] 225 | unsafe { capi::pa_format_info_is_pcm(std::mem::transmute(&self.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:234:53 [INFO] [stderr] | [INFO] [stderr] 234 | unsafe { capi::pa_format_info_is_compatible(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:235:13 [INFO] [stderr] | [INFO] [stderr] 235 | std::mem::transmute(&with.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&with.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:244:17 [INFO] [stderr] | [INFO] [stderr] 244 | std::mem::transmute(&self.ptr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:262:60 [INFO] [stderr] | [INFO] [stderr] 262 | match unsafe { capi::pa_format_info_to_sample_spec(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | std::mem::transmute(ss), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *mut sample::Spec as *mut capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:263:38 [INFO] [stderr] | [INFO] [stderr] 263 | std::mem::transmute(ss), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:294:34 [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:295:53 [INFO] [stderr] | [INFO] [stderr] 295 | unsafe { capi::pa_format_info_get_prop_type(std::mem::transmute(&self.ptr), c_key.as_ptr()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:303:34 [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:304:58 [INFO] [stderr] | [INFO] [stderr] 304 | match unsafe { capi::pa_format_info_get_prop_int(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:319:64 [INFO] [stderr] | [INFO] [stderr] 319 | match unsafe { capi::pa_format_info_get_prop_int_range(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:333:34 [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:337:13 [INFO] [stderr] | [INFO] [stderr] 337 | std::mem::transmute(&self.ptr), c_key.as_ptr(), &mut p_ints, &mut count) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:356:34 [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:358:68 [INFO] [stderr] | [INFO] [stderr] 358 | let result = unsafe { capi::pa_format_info_get_prop_string(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:374:34 [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | std::mem::transmute(&self.ptr), c_key.as_ptr(), &mut pp_str, &mut count) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:400:34 [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:401:52 [INFO] [stderr] | [INFO] [stderr] 401 | unsafe { capi::pa_format_info_set_prop_int(std::mem::transmute(&self.ptr), c_key.as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:409:34 [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:410:58 [INFO] [stderr] | [INFO] [stderr] 410 | unsafe { capi::pa_format_info_set_prop_int_array(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:418:34 [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:419:58 [INFO] [stderr] | [INFO] [stderr] 419 | unsafe { capi::pa_format_info_set_prop_int_range(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:427:34 [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:428:36 [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(value.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(&(*value).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(&str::clone(value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:429:55 [INFO] [stderr] | [INFO] [stderr] 429 | unsafe { capi::pa_format_info_set_prop_string(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:437:34 [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:440:40 [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(v.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(&(*v).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(&str::clone(v)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:449:56 [INFO] [stderr] | [INFO] [stderr] 449 | capi::pa_format_info_set_prop_string_array(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:460:57 [INFO] [stderr] | [INFO] [stderr] 460 | unsafe { capi::pa_format_info_set_sample_format(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:470:48 [INFO] [stderr] | [INFO] [stderr] 470 | unsafe { capi::pa_format_info_set_rate(std::mem::transmute(&self.ptr), rate) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:480:52 [INFO] [stderr] | [INFO] [stderr] 480 | unsafe { capi::pa_format_info_set_channels(std::mem::transmute(&self.ptr), channels as i32) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:489:55 [INFO] [stderr] | [INFO] [stderr] 489 | unsafe { capi::pa_format_info_set_channel_map(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:490:13 [INFO] [stderr] | [INFO] [stderr] 490 | std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:497:48 [INFO] [stderr] | [INFO] [stderr] 497 | unsafe { capi::pa_format_info_free(std::mem::transmute(&self.ptr)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:506:54 [INFO] [stderr] | [INFO] [stderr] 506 | let ptr = unsafe { capi::pa_format_info_copy(std::mem::transmute(&self.ptr)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:508:33 [INFO] [stderr] | [INFO] [stderr] 508 | Self::from_raw(unsafe { std::mem::transmute(ptr) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/mainloop/api.rs:127:23 [INFO] [stderr] | [INFO] [stderr] 127 | mut callback: Box, i32, IoEventFlagSet) + 'static> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mainloop/api.rs:284:45 [INFO] [stderr] | [INFO] [stderr] 284 | unsafe { capi::pa_mainloop_api_once(std::mem::transmute(api), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: this public function dereferences a raw pointer but is not marked `unsafe` [INFO] [stderr] --> src/mainloop/api.rs:364:38 [INFO] [stderr] | [INFO] [stderr] 364 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::not_unsafe_ptr_arg_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const capi::pa_mainloop_api`) to a reference type (`&'a mainloop::api::MainloopApi`) [INFO] [stderr] --> src/mainloop/api.rs:364:18 [INFO] [stderr] | [INFO] [stderr] 364 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(a as *const mainloop::api::MainloopApi)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mainloop/api.rs:370:18 [INFO] [stderr] | [INFO] [stderr] 370 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `a as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:236:23 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn is_success(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:245:20 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn is_quit(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:254:21 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn is_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/mainloop/standard.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | api: unsafe { std::mem::transmute(api_ptr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api_ptr as *const mainloop::api::MainloopApi` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/mainloop/threaded.rs:446:39 [INFO] [stderr] | [INFO] [stderr] 446 | api: unsafe { std::mem::transmute(api_ptr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api_ptr as *const mainloop::api::MainloopApi` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/mainloop/threaded.rs:541:35 [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/operation.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | let saved_cb_actual = match saved_cb.is_null() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 53 | | true => Some(saved_cb), [INFO] [stderr] 54 | | false => None, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if saved_cb.is_null() { Some(saved_cb) } else { None }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:203:34 [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:230:34 [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:239:34 [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:240:36 [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(value.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(&(*value).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(&str::clone(value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:256:35 [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(pair.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(&(*pair).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(&str::clone(pair)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:268:34 [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:282:34 [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:300:34 [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:323:34 [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:339:38 [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(k.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(&(*k).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(&str::clone(k)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:402:34 [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(sep.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(&(*sep).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(&str::clone(sep)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:421:34 [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:213:44 [INFO] [stderr] | [INFO] [stderr] 213 | unsafe { capi::pa_sample_spec_init(std::mem::transmute(self)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut sample::Spec as *mut capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:218:45 [INFO] [stderr] | [INFO] [stderr] 218 | unsafe { capi::pa_sample_spec_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:223:45 [INFO] [stderr] | [INFO] [stderr] 223 | unsafe { capi::pa_sample_spec_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:223:72 [INFO] [stderr] | [INFO] [stderr] 223 | unsafe { capi::pa_sample_spec_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:229:44 [INFO] [stderr] | [INFO] [stderr] 229 | unsafe { capi::pa_bytes_per_second(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:234:38 [INFO] [stderr] | [INFO] [stderr] 234 | unsafe { capi::pa_frame_size(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:239:39 [INFO] [stderr] | [INFO] [stderr] 239 | unsafe { capi::pa_sample_size(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:245:62 [INFO] [stderr] | [INFO] [stderr] 245 | MicroSeconds(unsafe { capi::pa_bytes_to_usec(length, std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:251:46 [INFO] [stderr] | [INFO] [stderr] 251 | unsafe { capi::pa_usec_to_bytes(t.0, std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:259:71 [INFO] [stderr] | [INFO] [stderr] 259 | capi::pa_sample_spec_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:297:17 [INFO] [stderr] | [INFO] [stderr] 297 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:302:22 [INFO] [stderr] | [INFO] [stderr] 302 | pub fn to_string(&self) -> Option> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/sample.rs:314:37 [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(format.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(&(*format).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(&str::clone(format)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:320:18 [INFO] [stderr] | [INFO] [stderr] 320 | pub fn is_le(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:330:18 [INFO] [stderr] | [INFO] [stderr] 330 | pub fn is_be(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:342:18 [INFO] [stderr] | [INFO] [stderr] 342 | pub fn is_ne(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:353:18 [INFO] [stderr] | [INFO] [stderr] 353 | pub fn is_re(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:573:35 [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:576:35 [INFO] [stderr] | [INFO] [stderr] 576 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:581:59 [INFO] [stderr] | [INFO] [stderr] 581 | capi::pa_stream_new(ctx.ptr, c_name.as_ptr(), std::mem::transmute(ss), p_map) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:604:35 [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:607:35 [INFO] [stderr] | [INFO] [stderr] 607 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:612:73 [INFO] [stderr] | [INFO] [stderr] 612 | capi::pa_stream_new_with_proplist(ctx.ptr, c_name.as_ptr(), std::mem::transmute(ss), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:636:35 [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:784:39 [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | Some(attr) => unsafe { std::mem::transmute(attr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:793:38 [INFO] [stderr] | [INFO] [stderr] 793 | Some(volume) => unsafe { std::mem::transmute(volume) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:827:39 [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:832:36 [INFO] [stderr] | [INFO] [stderr] 832 | Some(attr) => unsafe { std::mem::transmute(attr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/stream.rs:912:17 [INFO] [stderr] | [INFO] [stderr] 912 | / match data_ptr.is_null() { [INFO] [stderr] 913 | | true => Ok(None), [INFO] [stderr] 914 | | false => { [INFO] [stderr] 915 | | let slice = unsafe { [INFO] [stderr] ... | [INFO] [stderr] 919 | | }, [INFO] [stderr] 920 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 912 | if data_ptr.is_null() { Ok(None) } else { [INFO] [stderr] 913 | let slice = unsafe { [INFO] [stderr] 914 | std::slice::from_raw_parts_mut(data_ptr as *mut u8, nbytes_tmp) [INFO] [stderr] 915 | }; [INFO] [stderr] 916 | Ok(Some(slice)) [INFO] [stderr] 917 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/stream.rs:1013:37 [INFO] [stderr] | [INFO] [stderr] 1013 | cb_f, cb_d, offset, seek.into()) [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `seek` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:1379:35 [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/stream.rs:1497:53 [INFO] [stderr] | [INFO] [stderr] 1497 | Some(::format::Info::from_raw_weak(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:1534:70 [INFO] [stderr] | [INFO] [stderr] 1534 | let ptr = unsafe { capi::pa_stream_set_buffer_attr(self.ptr, std::mem::transmute(attr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:1595:38 [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(key.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(&(*key).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(&str::clone(key)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time/microseconds.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:50:28 [INFO] [stderr] | [INFO] [stderr] 50 | self.0.checked_mul(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:54:28 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.checked_div(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | self.0.checked_rem(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:118:31 [INFO] [stderr] | [INFO] [stderr] 118 | MicroSeconds(self.0 * rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:131:31 [INFO] [stderr] | [INFO] [stderr] 131 | MicroSeconds(self.0 / rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:144:31 [INFO] [stderr] | [INFO] [stderr] 144 | MicroSeconds(self.0 % rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/callbacks.rs:94:50 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn get_callback<'a>(ptr: *mut c_void) -> &'a mut Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'a mut ClosureProto` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/callbacks.rs:151:11 [INFO] [stderr] | [INFO] [stderr] 151 | Entry(&'a mut Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'a mut ClosureProto` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time/monotonic.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/channelmap.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | / match self.channels == other.channels { [INFO] [stderr] 194 | | true => self.map[..self.channels as usize] == other.map[..other.channels as usize], [INFO] [stderr] 195 | | false => false, [INFO] [stderr] 196 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.channels == other.channels { self.map[..self.channels as usize] == other.map[..other.channels as usize] } else { false }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/time/timeval.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / match rtclock { [INFO] [stderr] 100 | | true => { self.0.tv_usec |= PA_TIMEVAL_RTCLOCK as libc::suseconds_t; }, [INFO] [stderr] 101 | | false => { self.wallclock_from_rtclock(); }, [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if rtclock { self.0.tv_usec |= PA_TIMEVAL_RTCLOCK as libc::suseconds_t; } else { self.wallclock_from_rtclock(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/channelmap.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn to_string(pos: Self) -> Option> { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/channelmap.rs:219:29 [INFO] [stderr] | [INFO] [stderr] 219 | pub fn to_pretty_string(pos: Self) -> Option { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/channelmap.rs:231:34 [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 231 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/channelmap.rs:243:34 [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 243 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:246:43 [INFO] [stderr] | [INFO] [stderr] 246 | if capi::pa_channel_map_parse(std::mem::transmute(&mut map), c_str.as_ptr()).is_null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut map as *mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:256:44 [INFO] [stderr] | [INFO] [stderr] 256 | unsafe { capi::pa_channel_map_init(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:262:49 [INFO] [stderr] | [INFO] [stderr] 262 | unsafe { capi::pa_channel_map_init_mono(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:268:51 [INFO] [stderr] | [INFO] [stderr] 268 | unsafe { capi::pa_channel_map_init_stereo(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:280:47 [INFO] [stderr] | [INFO] [stderr] 280 | if capi::pa_channel_map_init_auto(std::mem::transmute(&self), channels, def).is_null() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:292:51 [INFO] [stderr] | [INFO] [stderr] 292 | unsafe { capi::pa_channel_map_init_extend(std::mem::transmute(&self), channels, def) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:301:71 [INFO] [stderr] | [INFO] [stderr] 301 | capi::pa_channel_map_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:308:45 [INFO] [stderr] | [INFO] [stderr] 308 | unsafe { capi::pa_channel_map_equal(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:309:13 [INFO] [stderr] | [INFO] [stderr] 309 | std::mem::transmute(to)) == 1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:314:45 [INFO] [stderr] | [INFO] [stderr] 314 | unsafe { capi::pa_channel_map_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:319:50 [INFO] [stderr] | [INFO] [stderr] 319 | unsafe { capi::pa_channel_map_compatible(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | std::mem::transmute(ss)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:325:48 [INFO] [stderr] | [INFO] [stderr] 325 | unsafe { capi::pa_channel_map_superset(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:326:13 [INFO] [stderr] | [INFO] [stderr] 326 | std::mem::transmute(of)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `of as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:332:51 [INFO] [stderr] | [INFO] [stderr] 332 | unsafe { capi::pa_channel_map_can_balance(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:338:48 [INFO] [stderr] | [INFO] [stderr] 338 | unsafe { capi::pa_channel_map_can_fade(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:345:55 [INFO] [stderr] | [INFO] [stderr] 345 | unsafe { capi::pa_channel_map_can_lfe_balance(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:352:57 [INFO] [stderr] | [INFO] [stderr] 352 | let ptr = unsafe { capi::pa_channel_map_to_name(std::mem::transmute(self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:362:64 [INFO] [stderr] | [INFO] [stderr] 362 | let ptr = unsafe { capi::pa_channel_map_to_pretty_name(std::mem::transmute(self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:371:52 [INFO] [stderr] | [INFO] [stderr] 371 | unsafe { capi::pa_channel_map_has_position(std::mem::transmute(self), p.into()) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/channelmap.rs:376:44 [INFO] [stderr] | [INFO] [stderr] 376 | unsafe { capi::pa_channel_map_mask(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/mod.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | usecs += (t.subsec_nanos() / NANOS_PER_MILLI) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(t.subsec_nanos() / NANOS_PER_MILLI)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time/mod.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | usecs += (t.subsec_nanos() / NANOS_PER_MILLI) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:41:23 [INFO] [stderr] | [INFO] [stderr] 41 | role: match src.role.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 42 | | false => Some(CStr::from_ptr(src.role).to_string_lossy()), [INFO] [stderr] 43 | | true => None, [INFO] [stderr] 44 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.role.is_null() { None } else { Some(CStr::from_ptr(src.role).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time/mod.rs:75:51 [INFO] [stderr] | [INFO] [stderr] 75 | Timeval::new(t.as_secs() as libc::time_t, (t.subsec_nanos() / NANOS_PER_MILLI) as libc::suseconds_t) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(t.subsec_nanos() / NANOS_PER_MILLI)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time/mod.rs:75:51 [INFO] [stderr] | [INFO] [stderr] 75 | Timeval::new(t.as_secs() as libc::time_t, (t.subsec_nanos() / NANOS_PER_MILLI) as libc::suseconds_t) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/utf8.rs:29:30 [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_user_name, pa_get_user_name); } else { fn_string_with_buffer!(get_user_name, pa_get_user_name); }` [INFO] [stderr] ... [INFO] [stderr] 40 | fn_string_with_buffer!(get_user_name, pa_get_user_name); [INFO] [stderr] | -------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:84:23 [INFO] [stderr] | [INFO] [stderr] 84 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 85 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 86 | | true => None, [INFO] [stderr] 87 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:88:30 [INFO] [stderr] | [INFO] [stderr] 88 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 89 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 90 | | true => None, [INFO] [stderr] 91 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_device_manager.rs:92:23 [INFO] [stderr] | [INFO] [stderr] 92 | icon: match src.icon.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 93 | | false => Some(CStr::from_ptr(src.icon).to_string_lossy()), [INFO] [stderr] 94 | | true => None, [INFO] [stderr] 95 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.icon.is_null() { None } else { Some(CStr::from_ptr(src.icon).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_host_name, pa_get_host_name); } else { fn_string_with_buffer!(get_host_name, pa_get_host_name); }` [INFO] [stderr] ... [INFO] [stderr] 43 | fn_string_with_buffer!(get_host_name, pa_get_host_name); [INFO] [stderr] | -------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_fqdn, pa_get_fqdn); } else { fn_string_with_buffer!(get_fqdn, pa_get_fqdn); }` [INFO] [stderr] ... [INFO] [stderr] 46 | fn_string_with_buffer!(get_fqdn, pa_get_fqdn); [INFO] [stderr] | ---------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_home_dir, pa_get_home_dir); } else { fn_string_with_buffer!(get_home_dir, pa_get_home_dir); }` [INFO] [stderr] ... [INFO] [stderr] 49 | fn_string_with_buffer!(get_home_dir, pa_get_home_dir); [INFO] [stderr] | ------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_binary_name, pa_get_binary_name); } else { fn_string_with_buffer!(get_binary_name, pa_get_binary_name); }` [INFO] [stderr] ... [INFO] [stderr] 53 | fn_string_with_buffer!(get_binary_name, pa_get_binary_name); [INFO] [stderr] | ------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:174:34 [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(device.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(&(*device).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 174 | let c_dev = CString::new(&str::clone(device)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:175:35 [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(description.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(&(*description).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 175 | let c_desc = CString::new(&str::clone(description)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:198:38 [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(device.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(&(*device).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 198 | c_devs.push(CString::new(&str::clone(device)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/volume.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | / match self.channels == other.channels { [INFO] [stderr] 123 | | true => self.values[..self.channels as usize] == other.values[..other.channels as usize], [INFO] [stderr] 124 | | false => false, [INFO] [stderr] 125 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.channels == other.channels { self.values[..self.channels as usize] == other.values[..other.channels as usize] } else { false }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:177:21 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn is_muted(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:181:22 [INFO] [stderr] | [INFO] [stderr] 181 | pub fn is_normal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/volume.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self.0 == 1.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.0 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/volume.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self.0 == 1.0 [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:187:21 [INFO] [stderr] | [INFO] [stderr] 187 | pub fn is_muted(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:191:22 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn is_normal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:195:19 [INFO] [stderr] | [INFO] [stderr] 195 | pub fn is_max(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:208:21 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:233:18 [INFO] [stderr] | [INFO] [stderr] 233 | pub fn print(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:243:21 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn print_db(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:245:35 [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(role.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(&(*role).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 245 | let c_role = CString::new(&str::clone(role)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_device_manager.rs:248:38 [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(device.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(&(*device).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 248 | c_devs.push(CString::new(&str::clone(device)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:256:26 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn print_verbose(&self, print_db: bool) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:277:40 [INFO] [stderr] | [INFO] [stderr] 277 | unsafe { capi::pa_cvolume_init(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:283:39 [INFO] [stderr] | [INFO] [stderr] 283 | unsafe { capi::pa_cvolume_set(std::mem::transmute(&self), channels, v.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:302:41 [INFO] [stderr] | [INFO] [stderr] 302 | unsafe { capi::pa_cvolume_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:302:68 [INFO] [stderr] | [INFO] [stderr] 302 | unsafe { capi::pa_cvolume_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:317:46 [INFO] [stderr] | [INFO] [stderr] 317 | Volume(unsafe { capi::pa_cvolume_avg(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:330:51 [INFO] [stderr] | [INFO] [stderr] 330 | Volume(unsafe { capi::pa_cvolume_avg_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:331:13 [INFO] [stderr] | [INFO] [stderr] 331 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:336:46 [INFO] [stderr] | [INFO] [stderr] 336 | Volume(unsafe { capi::pa_cvolume_max(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:349:51 [INFO] [stderr] | [INFO] [stderr] 349 | Volume(unsafe { capi::pa_cvolume_max_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:355:46 [INFO] [stderr] | [INFO] [stderr] 355 | Volume(unsafe { capi::pa_cvolume_min(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:368:51 [INFO] [stderr] | [INFO] [stderr] 368 | Volume(unsafe { capi::pa_cvolume_min_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:374:41 [INFO] [stderr] | [INFO] [stderr] 374 | unsafe { capi::pa_cvolume_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:379:53 [INFO] [stderr] | [INFO] [stderr] 379 | unsafe { capi::pa_cvolume_channels_equal_to(std::mem::transmute(self), v.0) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:387:47 [INFO] [stderr] | [INFO] [stderr] 387 | unsafe { capi::pa_sw_cvolume_multiply(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:388:13 [INFO] [stderr] | [INFO] [stderr] 388 | std::mem::transmute(&self), std::mem::transmute(with.unwrap_or(&*self))) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:388:41 [INFO] [stderr] | [INFO] [stderr] 388 | std::mem::transmute(&self), std::mem::transmute(with.unwrap_or(&*self))) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with.unwrap_or(&*self) as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:396:54 [INFO] [stderr] | [INFO] [stderr] 396 | unsafe { capi::pa_sw_cvolume_multiply_scalar(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | std::mem::transmute(&self), with.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:408:44 [INFO] [stderr] | [INFO] [stderr] 408 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:408:72 [INFO] [stderr] | [INFO] [stderr] 408 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:409:21 [INFO] [stderr] | [INFO] [stderr] 409 | std::mem::transmute(with)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:412:44 [INFO] [stderr] | [INFO] [stderr] 412 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:412:72 [INFO] [stderr] | [INFO] [stderr] 412 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:413:21 [INFO] [stderr] | [INFO] [stderr] 413 | std::mem::transmute(&self)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:423:52 [INFO] [stderr] | [INFO] [stderr] 423 | unsafe { capi::pa_sw_cvolume_divide_scalar(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:424:13 [INFO] [stderr] | [INFO] [stderr] 424 | std::mem::transmute(&self), with.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:432:41 [INFO] [stderr] | [INFO] [stderr] 432 | unsafe { capi::pa_cvolume_remap(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/ext_device_restore.rs:180:39 [INFO] [stderr] | [INFO] [stderr] 180 | format_ptrs.push(unsafe { std::mem::transmute(&format.ptr) }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&format.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:433:13 [INFO] [stderr] | [INFO] [stderr] 433 | std::mem::transmute(from), std::mem::transmute(to)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `from as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:433:40 [INFO] [stderr] | [INFO] [stderr] 433 | std::mem::transmute(from), std::mem::transmute(to)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:439:46 [INFO] [stderr] | [INFO] [stderr] 439 | unsafe { capi::pa_cvolume_compatible(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:440:13 [INFO] [stderr] | [INFO] [stderr] 440 | std::mem::transmute(ss)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:445:63 [INFO] [stderr] | [INFO] [stderr] 445 | unsafe { capi::pa_cvolume_compatible_with_channel_map(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:446:13 [INFO] [stderr] | [INFO] [stderr] 446 | std::mem::transmute(cm)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:457:47 [INFO] [stderr] | [INFO] [stderr] 457 | unsafe { capi::pa_cvolume_get_balance(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:457:74 [INFO] [stderr] | [INFO] [stderr] 457 | unsafe { capi::pa_cvolume_get_balance(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:473:57 [INFO] [stderr] | [INFO] [stderr] 473 | let ptr = unsafe { capi::pa_cvolume_set_balance(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:474:13 [INFO] [stderr] | [INFO] [stderr] 474 | std::mem::transmute(map), new_balance) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:490:44 [INFO] [stderr] | [INFO] [stderr] 490 | unsafe { capi::pa_cvolume_get_fade(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:490:71 [INFO] [stderr] | [INFO] [stderr] 490 | unsafe { capi::pa_cvolume_get_fade(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_stream_restore.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 53 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 54 | | true => None, [INFO] [stderr] 55 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:507:54 [INFO] [stderr] | [INFO] [stderr] 507 | let ptr = unsafe { capi::pa_cvolume_set_fade(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | std::mem::transmute(map), new_fade) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/ext_stream_restore.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | device: match src.name.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 59 | | false => Some(CStr::from_ptr(src.device).to_string_lossy()), [INFO] [stderr] 60 | | true => None, [INFO] [stderr] 61 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.device).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:524:51 [INFO] [stderr] | [INFO] [stderr] 524 | unsafe { capi::pa_cvolume_get_lfe_balance(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:525:13 [INFO] [stderr] | [INFO] [stderr] 525 | std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:543:61 [INFO] [stderr] | [INFO] [stderr] 543 | let ptr = unsafe { capi::pa_cvolume_set_lfe_balance(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:544:13 [INFO] [stderr] | [INFO] [stderr] 544 | std::mem::transmute(map), new_balance) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:556:51 [INFO] [stderr] | [INFO] [stderr] 556 | let ptr = unsafe { capi::pa_cvolume_scale(std::mem::transmute(&self), max.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:576:56 [INFO] [stderr] | [INFO] [stderr] 576 | let ptr = unsafe { capi::pa_cvolume_scale_mask(std::mem::transmute(&self), max.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:577:13 [INFO] [stderr] | [INFO] [stderr] 577 | std::mem::transmute(cm), mask_actual) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *mut channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:597:58 [INFO] [stderr] | [INFO] [stderr] 597 | let ptr = unsafe { capi::pa_cvolume_set_position(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:598:13 [INFO] [stderr] | [INFO] [stderr] 598 | std::mem::transmute(map), t.into(), v.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/context/ext_stream_restore.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | std::mem::transmute(data.as_ptr()), data.len() as u32, apply_immediately as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `data.as_ptr() as *const *const capi::pa_ext_stream_restore_info` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:612:55 [INFO] [stderr] | [INFO] [stderr] 612 | Volume(unsafe { capi::pa_cvolume_get_position(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | std::mem::transmute(map), t.into()) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:627:51 [INFO] [stderr] | [INFO] [stderr] 627 | let ptr = unsafe { capi::pa_cvolume_merge(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:628:13 [INFO] [stderr] | [INFO] [stderr] 628 | std::mem::transmute(&self), std::mem::transmute(with)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:628:41 [INFO] [stderr] | [INFO] [stderr] 628 | std::mem::transmute(&self), std::mem::transmute(with)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:639:55 [INFO] [stderr] | [INFO] [stderr] 639 | let ptr = unsafe { capi::pa_cvolume_inc_clamp(std::mem::transmute(&self), inc.0, limit.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/ext_stream_restore.rs:156:41 [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(stream.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(&(*stream).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 156 | c_streams.push(CString::new(&str::clone(stream)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:650:49 [INFO] [stderr] | [INFO] [stderr] 650 | let ptr = unsafe { capi::pa_cvolume_inc(std::mem::transmute(&self), inc.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:661:49 [INFO] [stderr] | [INFO] [stderr] 661 | let ptr = unsafe { capi::pa_cvolume_dec(std::mem::transmute(&self), dec.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:673:67 [INFO] [stderr] | [INFO] [stderr] 673 | capi::pa_cvolume_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:684:17 [INFO] [stderr] | [INFO] [stderr] 684 | std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:698:35 [INFO] [stderr] | [INFO] [stderr] 698 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:705:17 [INFO] [stderr] | [INFO] [stderr] 705 | std::mem::transmute(self), p_map, print_db as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:309:23 [INFO] [stderr] | [INFO] [stderr] 309 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 310 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 311 | | true => None, [INFO] [stderr] 312 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:313:30 [INFO] [stderr] | [INFO] [stderr] 313 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 314 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 315 | | true => None, [INFO] [stderr] 316 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:401:23 [INFO] [stderr] | [INFO] [stderr] 401 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 402 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 403 | | true => None, [INFO] [stderr] 404 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:406:30 [INFO] [stderr] | [INFO] [stderr] 406 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 407 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 408 | | true => None, [INFO] [stderr] 409 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:419:38 [INFO] [stderr] | [INFO] [stderr] 419 | monitor_source_name: match src.monitor_source_name.is_null() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 420 | | false => Some(CStr::from_ptr(src.monitor_source_name).to_string_lossy()), [INFO] [stderr] 421 | | true => None, [INFO] [stderr] 422 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.monitor_source_name.is_null() { None } else { Some(CStr::from_ptr(src.monitor_source_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:424:25 [INFO] [stderr] | [INFO] [stderr] 424 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 425 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 426 | | true => None, [INFO] [stderr] 427 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:439:30 [INFO] [stderr] | [INFO] [stderr] 439 | active_port: match src.active_port.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 440 | | true => None, [INFO] [stderr] 441 | | false => Some(Box::new(SinkPortInfo::new_from_raw(src.active_port))), [INFO] [stderr] 442 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_port.is_null() { None } else { Some(Box::new(SinkPortInfo::new_from_raw(src.active_port))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:459:35 [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 459 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:506:13 [INFO] [stderr] | [INFO] [stderr] 506 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:521:35 [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 521 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:526:13 [INFO] [stderr] | [INFO] [stderr] 526 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:557:35 [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 557 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:577:35 [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(sink_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(&(*sink_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 577 | let c_name = CString::new(&str::clone(sink_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:614:35 [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 614 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 85 previous errors [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:634:35 [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 634 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:635:35 [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 635 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:689:23 [INFO] [stderr] | [INFO] [stderr] 689 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 690 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 691 | | true => None, [INFO] [stderr] 692 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:693:30 [INFO] [stderr] | [INFO] [stderr] 693 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 694 | | false=> Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 695 | | true => None, [INFO] [stderr] 696 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:781:23 [INFO] [stderr] | [INFO] [stderr] 781 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 782 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 783 | | true => None, [INFO] [stderr] 784 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:786:30 [INFO] [stderr] | [INFO] [stderr] 786 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 787 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 788 | | true => None, [INFO] [stderr] 789 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:802:39 [INFO] [stderr] | [INFO] [stderr] 802 | monitor_of_sink_name: match src.monitor_of_sink_name.is_null() { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 803 | | false => Some(CStr::from_ptr(src.monitor_of_sink_name).to_string_lossy()), [INFO] [stderr] 804 | | true => None, [INFO] [stderr] 805 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.monitor_of_sink_name.is_null() { None } else { Some(CStr::from_ptr(src.monitor_of_sink_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:807:25 [INFO] [stderr] | [INFO] [stderr] 807 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 808 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 809 | | true => None, [INFO] [stderr] 810 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: Could not compile `libpulse-binding`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:822:30 [INFO] [stderr] | [INFO] [stderr] 822 | active_port: match src.active_port.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 823 | | true => None, [INFO] [stderr] 824 | | false => Some(Box::new(SourcePortInfo::new_from_raw(src.active_port))), [INFO] [stderr] 825 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_port.is_null() { None } else { Some(Box::new(SourcePortInfo::new_from_raw(src.active_port))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:842:35 [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 842 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:889:13 [INFO] [stderr] | [INFO] [stderr] 889 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:904:35 [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 904 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:909:13 [INFO] [stderr] | [INFO] [stderr] 909 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:940:35 [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 940 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:960:35 [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 960 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:997:35 [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 997 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1017:35 [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1017 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1018:35 [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(port.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(&(*port).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1018 | let c_port = CString::new(&str::clone(port)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1082:28 [INFO] [stderr] | [INFO] [stderr] 1082 | user_name: match src.user_name.is_null() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 1083 | | false => Some(CStr::from_ptr(src.user_name).to_string_lossy()), [INFO] [stderr] 1084 | | true => None, [INFO] [stderr] 1085 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.user_name.is_null() { None } else { Some(CStr::from_ptr(src.user_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1086:28 [INFO] [stderr] | [INFO] [stderr] 1086 | host_name: match src.host_name.is_null() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 1087 | | false => Some(CStr::from_ptr(src.host_name).to_string_lossy()), [INFO] [stderr] 1088 | | true => None, [INFO] [stderr] 1089 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.host_name.is_null() { None } else { Some(CStr::from_ptr(src.host_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1090:33 [INFO] [stderr] | [INFO] [stderr] 1090 | server_version: match src.server_version.is_null() { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 1091 | | false => Some(CStr::from_ptr(src.server_version).to_string_lossy()), [INFO] [stderr] 1092 | | true => None, [INFO] [stderr] 1093 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.server_version.is_null() { None } else { Some(CStr::from_ptr(src.server_version).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1094:30 [INFO] [stderr] | [INFO] [stderr] 1094 | server_name: match src.server_name.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1095 | | false => Some(CStr::from_ptr(src.server_name).to_string_lossy()), [INFO] [stderr] 1096 | | true => None, [INFO] [stderr] 1097 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.server_name.is_null() { None } else { Some(CStr::from_ptr(src.server_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1099:36 [INFO] [stderr] | [INFO] [stderr] 1099 | default_sink_name: match src.default_sink_name.is_null() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 1100 | | false => Some(CStr::from_ptr(src.default_sink_name).to_string_lossy()), [INFO] [stderr] 1101 | | true => None, [INFO] [stderr] 1102 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.default_sink_name.is_null() { None } else { Some(CStr::from_ptr(src.default_sink_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1103:38 [INFO] [stderr] | [INFO] [stderr] 1103 | default_source_name: match src.default_source_name.is_null() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 1104 | | false => Some(CStr::from_ptr(src.default_source_name).to_string_lossy()), [INFO] [stderr] 1105 | | true => None, [INFO] [stderr] 1106 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.default_source_name.is_null() { None } else { Some(CStr::from_ptr(src.default_source_name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1172:23 [INFO] [stderr] | [INFO] [stderr] 1172 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1173 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1174 | | true => None, [INFO] [stderr] 1175 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1176:27 [INFO] [stderr] | [INFO] [stderr] 1176 | argument: match src.argument.is_null() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 1177 | | false => Some(CStr::from_ptr(src.argument).to_string_lossy()), [INFO] [stderr] 1178 | | true => None, [INFO] [stderr] 1179 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.argument.is_null() { None } else { Some(CStr::from_ptr(src.argument).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1228:35 [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1228 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1229:34 [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(argument.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(&(*argument).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1229 | let c_arg = CString::new(&str::clone(argument)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1309:23 [INFO] [stderr] | [INFO] [stderr] 1309 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1310 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1311 | | true => None, [INFO] [stderr] 1312 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1317:25 [INFO] [stderr] | [INFO] [stderr] 1317 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1318 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1319 | | true => None, [INFO] [stderr] 1320 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1422:23 [INFO] [stderr] | [INFO] [stderr] 1422 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1423 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1424 | | true => None, [INFO] [stderr] 1425 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1426:30 [INFO] [stderr] | [INFO] [stderr] 1426 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1427 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 1428 | | true => None, [INFO] [stderr] 1429 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1480:23 [INFO] [stderr] | [INFO] [stderr] 1480 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1481 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1482 | | true => None, [INFO] [stderr] 1483 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1484:30 [INFO] [stderr] | [INFO] [stderr] 1484 | description: match src.description.is_null() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 1485 | | false => Some(CStr::from_ptr(src.description).to_string_lossy()), [INFO] [stderr] 1486 | | true => None, [INFO] [stderr] 1487 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.description.is_null() { None } else { Some(CStr::from_ptr(src.description).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1548:23 [INFO] [stderr] | [INFO] [stderr] 1548 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1549 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1550 | | true => None, [INFO] [stderr] 1551 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1556:25 [INFO] [stderr] | [INFO] [stderr] 1556 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1557 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1558 | | true => None, [INFO] [stderr] 1559 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1563:33 [INFO] [stderr] | [INFO] [stderr] 1563 | active_profile: match src.active_profile2.is_null() { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 1564 | | true => None, [INFO] [stderr] 1565 | | false => Some(Box::new(CardProfileInfo2::new_from_raw(src.active_profile2))), [INFO] [stderr] 1566 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.active_profile2.is_null() { None } else { Some(Box::new(CardProfileInfo2::new_from_raw(src.active_profile2))) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1596:35 [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1596 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1628:38 [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(profile.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(&(*profile).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1628 | let c_profile = CString::new(&str::clone(profile)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1648:35 [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1648 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1649:38 [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(profile.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(&(*profile).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1649 | let c_profile = CString::new(&str::clone(profile)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1669:35 [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(card_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(&(*card_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1669 | let c_name = CString::new(&str::clone(card_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1670:35 [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(port_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(&(*port_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1670 | let c_port = CString::new(&str::clone(port_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1758:23 [INFO] [stderr] | [INFO] [stderr] 1758 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1759 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1760 | | true => None, [INFO] [stderr] 1761 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1776:34 [INFO] [stderr] | [INFO] [stderr] 1776 | resample_method: match src.resample_method.is_null() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 1777 | | false => Some(CStr::from_ptr(src.resample_method).to_string_lossy()), [INFO] [stderr] 1778 | | true => None, [INFO] [stderr] 1779 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.resample_method.is_null() { None } else { Some(CStr::from_ptr(src.resample_method).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1780:25 [INFO] [stderr] | [INFO] [stderr] 1780 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 1781 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 1782 | | true => None, [INFO] [stderr] 1783 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:1836:35 [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(sink_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(&(*sink_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1836 | let c_name = CString::new(&str::clone(sink_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:1873:13 [INFO] [stderr] | [INFO] [stderr] 1873 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:1987:23 [INFO] [stderr] | [INFO] [stderr] 1987 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 1988 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 1989 | | true => None, [INFO] [stderr] 1990 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2004:34 [INFO] [stderr] | [INFO] [stderr] 2004 | resample_method: match src.resample_method.is_null() { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 2005 | | false => Some(CStr::from_ptr(src.resample_method).to_string_lossy()), [INFO] [stderr] 2006 | | true => None, [INFO] [stderr] 2007 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.resample_method.is_null() { None } else { Some(CStr::from_ptr(src.resample_method).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2008:25 [INFO] [stderr] | [INFO] [stderr] 2008 | driver: match src.driver.is_null() { [INFO] [stderr] | _________________________^ [INFO] [stderr] 2009 | | false => Some(CStr::from_ptr(src.driver).to_string_lossy()), [INFO] [stderr] 2010 | | true => None, [INFO] [stderr] 2011 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.driver.is_null() { None } else { Some(CStr::from_ptr(src.driver).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:2065:35 [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(source_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(&(*source_name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 2065 | let c_name = CString::new(&str::clone(source_name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/introspect.rs:2102:13 [INFO] [stderr] | [INFO] [stderr] 2102 | std::mem::transmute(volume), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2224:23 [INFO] [stderr] | [INFO] [stderr] 2224 | name: match src.name.is_null() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 2225 | | false => Some(CStr::from_ptr(src.name).to_string_lossy()), [INFO] [stderr] 2226 | | true => None, [INFO] [stderr] 2227 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.name.is_null() { None } else { Some(CStr::from_ptr(src.name).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/context/introspect.rs:2234:27 [INFO] [stderr] | [INFO] [stderr] 2234 | filename: match src.filename.is_null() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 2235 | | false => Some(CStr::from_ptr(src.filename).to_string_lossy()), [INFO] [stderr] 2236 | | true => None, [INFO] [stderr] 2237 | | }, [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if src.filename.is_null() { None } else { Some(CStr::from_ptr(src.filename).to_string_lossy()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/introspect.rs:2254:35 [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 2254 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:86:35 [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 86 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:116:35 [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 116 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:118:39 [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 118 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/context/scache.rs:158:19 [INFO] [stderr] | [INFO] [stderr] 158 | callback: Option) + 'static>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:163:35 [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 163 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/scache.rs:165:39 [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 165 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/context/subscribe.rs:200:19 [INFO] [stderr] | [INFO] [stderr] 200 | callback: Option, Option, u32) + 'static>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:198:35 [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 198 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:199:49 [INFO] [stderr] | [INFO] [stderr] 199 | let ptr = unsafe { capi::pa_context_new(std::mem::transmute(mainloop.inner().get_api()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mainloop.inner().get_api() as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:214:35 [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 214 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | std::mem::transmute(mainloop.inner().get_api()), c_name.as_ptr(), proplist.ptr) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mainloop.inner().get_api() as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:280:42 [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(server.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(&(*server).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 280 | Some(server) => CString::new(&str::clone(server)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:285:35 [INFO] [stderr] | [INFO] [stderr] 285 | Some(api) => unsafe { std::mem::transmute(api) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api as *const def::SpawnApi as *const capi::pa_spawn_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:356:35 [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 356 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:375:35 [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 375 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:402:35 [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 402 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:464:38 [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(key.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(&(*key).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 464 | c_keys.push(CString::new(&str::clone(key)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/context/mod.rs:561:65 [INFO] [stderr] | [INFO] [stderr] 561 | match unsafe { capi::pa_context_get_tile_size(self.ptr, std::mem::transmute(ss)) } { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/context/mod.rs:576:35 [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(cookie_file_path.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(&(*cookie_file_path).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 576 | let c_path = CString::new(&str::clone(cookie_file_path)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/error.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn to_string(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/error.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / fn from(e: PAErr) -> Self { [INFO] [stderr] 119 | | // Error codes are negative, `Code` enum variants are positive [INFO] [stderr] 120 | | // Note, avoid transmute - likely different sizes! [INFO] [stderr] 121 | | let abs = -(e.0); [INFO] [stderr] ... | [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/format.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn to_string(e: Self) -> Option> { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:133:34 [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(encoding.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(&(*encoding).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 133 | let c_enc = CString::new(&str::clone(encoding)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:147:38 [INFO] [stderr] | [INFO] [stderr] 147 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:157:34 [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 157 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:162:38 [INFO] [stderr] | [INFO] [stderr] 162 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:181:35 [INFO] [stderr] | [INFO] [stderr] 181 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:184:66 [INFO] [stderr] | [INFO] [stderr] 184 | let ptr = unsafe { capi::pa_format_info_from_sample_spec(std::mem::transmute(ss), p_map) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:188:38 [INFO] [stderr] | [INFO] [stderr] 188 | Some(Self::from_raw(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:220:45 [INFO] [stderr] | [INFO] [stderr] 220 | unsafe { capi::pa_format_info_valid(std::mem::transmute(&self.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:225:46 [INFO] [stderr] | [INFO] [stderr] 225 | unsafe { capi::pa_format_info_is_pcm(std::mem::transmute(&self.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:234:53 [INFO] [stderr] | [INFO] [stderr] 234 | unsafe { capi::pa_format_info_is_compatible(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:235:13 [INFO] [stderr] | [INFO] [stderr] 235 | std::mem::transmute(&with.ptr)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&with.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:244:17 [INFO] [stderr] | [INFO] [stderr] 244 | std::mem::transmute(&self.ptr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:262:60 [INFO] [stderr] | [INFO] [stderr] 262 | match unsafe { capi::pa_format_info_to_sample_spec(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | std::mem::transmute(ss), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *mut sample::Spec as *mut capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:263:38 [INFO] [stderr] | [INFO] [stderr] 263 | std::mem::transmute(ss), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *mut channelmap::Map as *mut capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:294:34 [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 294 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:295:53 [INFO] [stderr] | [INFO] [stderr] 295 | unsafe { capi::pa_format_info_get_prop_type(std::mem::transmute(&self.ptr), c_key.as_ptr()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:303:34 [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 303 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:304:58 [INFO] [stderr] | [INFO] [stderr] 304 | match unsafe { capi::pa_format_info_get_prop_int(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 318 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:319:64 [INFO] [stderr] | [INFO] [stderr] 319 | match unsafe { capi::pa_format_info_get_prop_int_range(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:333:34 [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 333 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:337:13 [INFO] [stderr] | [INFO] [stderr] 337 | std::mem::transmute(&self.ptr), c_key.as_ptr(), &mut p_ints, &mut count) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:356:34 [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 356 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:358:68 [INFO] [stderr] | [INFO] [stderr] 358 | let result = unsafe { capi::pa_format_info_get_prop_string(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:374:34 [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 374 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | std::mem::transmute(&self.ptr), c_key.as_ptr(), &mut pp_str, &mut count) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:400:34 [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 400 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:401:52 [INFO] [stderr] | [INFO] [stderr] 401 | unsafe { capi::pa_format_info_set_prop_int(std::mem::transmute(&self.ptr), c_key.as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:409:34 [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 409 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:410:58 [INFO] [stderr] | [INFO] [stderr] 410 | unsafe { capi::pa_format_info_set_prop_int_array(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:418:34 [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 418 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:419:58 [INFO] [stderr] | [INFO] [stderr] 419 | unsafe { capi::pa_format_info_set_prop_int_range(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:427:34 [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 427 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:428:36 [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(value.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(&(*value).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 428 | let c_value = CString::new(&str::clone(value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:429:55 [INFO] [stderr] | [INFO] [stderr] 429 | unsafe { capi::pa_format_info_set_prop_string(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:437:34 [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 437 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/format.rs:440:40 [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(v.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(&(*v).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 440 | c_values.push(CString::new(&str::clone(v)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:449:56 [INFO] [stderr] | [INFO] [stderr] 449 | capi::pa_format_info_set_prop_string_array(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:460:57 [INFO] [stderr] | [INFO] [stderr] 460 | unsafe { capi::pa_format_info_set_sample_format(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:470:48 [INFO] [stderr] | [INFO] [stderr] 470 | unsafe { capi::pa_format_info_set_rate(std::mem::transmute(&self.ptr), rate) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:480:52 [INFO] [stderr] | [INFO] [stderr] 480 | unsafe { capi::pa_format_info_set_channels(std::mem::transmute(&self.ptr), channels as i32) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:489:55 [INFO] [stderr] | [INFO] [stderr] 489 | unsafe { capi::pa_format_info_set_channel_map(std::mem::transmute(&self.ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:490:13 [INFO] [stderr] | [INFO] [stderr] 490 | std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:497:48 [INFO] [stderr] | [INFO] [stderr] 497 | unsafe { capi::pa_format_info_free(std::mem::transmute(&self.ptr)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *mut capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/format.rs:506:54 [INFO] [stderr] | [INFO] [stderr] 506 | let ptr = unsafe { capi::pa_format_info_copy(std::mem::transmute(&self.ptr)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.ptr as *const *mut format::InfoInternal as *const capi::pa_format_info` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/format.rs:508:33 [INFO] [stderr] | [INFO] [stderr] 508 | Self::from_raw(unsafe { std::mem::transmute(ptr) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/mainloop/api.rs:127:23 [INFO] [stderr] | [INFO] [stderr] 127 | mut callback: Box, i32, IoEventFlagSet) + 'static> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mainloop/api.rs:284:45 [INFO] [stderr] | [INFO] [stderr] 284 | unsafe { capi::pa_mainloop_api_once(std::mem::transmute(api), cb_fn, cb_data) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: this public function dereferences a raw pointer but is not marked `unsafe` [INFO] [stderr] --> src/mainloop/api.rs:364:38 [INFO] [stderr] | [INFO] [stderr] 364 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::not_unsafe_ptr_arg_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*const capi::pa_mainloop_api`) to a reference type (`&'a mainloop::api::MainloopApi`) [INFO] [stderr] --> src/mainloop/api.rs:364:18 [INFO] [stderr] | [INFO] [stderr] 364 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(a as *const mainloop::api::MainloopApi)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mainloop/api.rs:370:18 [INFO] [stderr] | [INFO] [stderr] 370 | unsafe { std::mem::transmute(a) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `a as *const mainloop::api::MainloopApi as *const capi::pa_mainloop_api` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:236:23 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn is_success(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:245:20 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn is_quit(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mainloop/standard.rs:254:21 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn is_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/mainloop/standard.rs:306:39 [INFO] [stderr] | [INFO] [stderr] 306 | api: unsafe { std::mem::transmute(api_ptr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api_ptr as *const mainloop::api::MainloopApi` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/mainloop/threaded.rs:446:39 [INFO] [stderr] | [INFO] [stderr] 446 | api: unsafe { std::mem::transmute(api_ptr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `api_ptr as *const mainloop::api::MainloopApi` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/mainloop/threaded.rs:541:35 [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 541 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/operation.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | let saved_cb_actual = match saved_cb.is_null() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 53 | | true => Some(saved_cb), [INFO] [stderr] 54 | | false => None, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if saved_cb.is_null() { Some(saved_cb) } else { None }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:203:34 [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 203 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:230:34 [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 230 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:239:34 [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 239 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:240:36 [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(value.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(&(*value).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 240 | let c_value = CString::new(&str::clone(value)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:256:35 [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(pair.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(&(*pair).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 256 | let c_pair = CString::new(&str::clone(pair)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:268:34 [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 268 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:282:34 [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 282 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:300:34 [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 300 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:323:34 [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 323 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:339:38 [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(k.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(&(*k).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 339 | c_keys.push(CString::new(&str::clone(k)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:402:34 [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(sep.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(&(*sep).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 402 | let c_sep = CString::new(&str::clone(sep)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/proplist.rs:421:34 [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(key.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(&(*key).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 421 | let c_key = CString::new(&str::clone(key)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:213:44 [INFO] [stderr] | [INFO] [stderr] 213 | unsafe { capi::pa_sample_spec_init(std::mem::transmute(self)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut sample::Spec as *mut capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:218:45 [INFO] [stderr] | [INFO] [stderr] 218 | unsafe { capi::pa_sample_spec_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:223:45 [INFO] [stderr] | [INFO] [stderr] 223 | unsafe { capi::pa_sample_spec_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:223:72 [INFO] [stderr] | [INFO] [stderr] 223 | unsafe { capi::pa_sample_spec_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:229:44 [INFO] [stderr] | [INFO] [stderr] 229 | unsafe { capi::pa_bytes_per_second(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:234:38 [INFO] [stderr] | [INFO] [stderr] 234 | unsafe { capi::pa_frame_size(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:239:39 [INFO] [stderr] | [INFO] [stderr] 239 | unsafe { capi::pa_sample_size(std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:245:62 [INFO] [stderr] | [INFO] [stderr] 245 | MicroSeconds(unsafe { capi::pa_bytes_to_usec(length, std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:251:46 [INFO] [stderr] | [INFO] [stderr] 251 | unsafe { capi::pa_usec_to_bytes(t.0, std::mem::transmute(self)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sample.rs:259:71 [INFO] [stderr] | [INFO] [stderr] 259 | capi::pa_sample_spec_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:297:17 [INFO] [stderr] | [INFO] [stderr] 297 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:302:22 [INFO] [stderr] | [INFO] [stderr] 302 | pub fn to_string(&self) -> Option> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/sample.rs:314:37 [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(format.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(&(*format).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 314 | let c_format = CString::new(&str::clone(format)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:320:18 [INFO] [stderr] | [INFO] [stderr] 320 | pub fn is_le(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:330:18 [INFO] [stderr] | [INFO] [stderr] 330 | pub fn is_be(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:342:18 [INFO] [stderr] | [INFO] [stderr] 342 | pub fn is_ne(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sample.rs:353:18 [INFO] [stderr] | [INFO] [stderr] 353 | pub fn is_re(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:573:35 [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 573 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:576:35 [INFO] [stderr] | [INFO] [stderr] 576 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:581:59 [INFO] [stderr] | [INFO] [stderr] 581 | capi::pa_stream_new(ctx.ptr, c_name.as_ptr(), std::mem::transmute(ss), p_map) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:604:35 [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 604 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:607:35 [INFO] [stderr] | [INFO] [stderr] 607 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:612:73 [INFO] [stderr] | [INFO] [stderr] 612 | capi::pa_stream_new_with_proplist(ctx.ptr, c_name.as_ptr(), std::mem::transmute(ss), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:636:35 [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 636 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:784:39 [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 784 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:789:36 [INFO] [stderr] | [INFO] [stderr] 789 | Some(attr) => unsafe { std::mem::transmute(attr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:793:38 [INFO] [stderr] | [INFO] [stderr] 793 | Some(volume) => unsafe { std::mem::transmute(volume) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `volume as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:827:39 [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(dev.clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(&(*dev).clone()).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 827 | Some(dev) => CString::new(&str::clone(dev)).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:832:36 [INFO] [stderr] | [INFO] [stderr] 832 | Some(attr) => unsafe { std::mem::transmute(attr) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/stream.rs:912:17 [INFO] [stderr] | [INFO] [stderr] 912 | / match data_ptr.is_null() { [INFO] [stderr] 913 | | true => Ok(None), [INFO] [stderr] 914 | | false => { [INFO] [stderr] 915 | | let slice = unsafe { [INFO] [stderr] ... | [INFO] [stderr] 919 | | }, [INFO] [stderr] 920 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 912 | if data_ptr.is_null() { Ok(None) } else { [INFO] [stderr] 913 | let slice = unsafe { [INFO] [stderr] 914 | std::slice::from_raw_parts_mut(data_ptr as *mut u8, nbytes_tmp) [INFO] [stderr] 915 | }; [INFO] [stderr] 916 | Ok(Some(slice)) [INFO] [stderr] 917 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/stream.rs:1013:37 [INFO] [stderr] | [INFO] [stderr] 1013 | cb_f, cb_d, offset, seek.into()) [INFO] [stderr] | ^^^^^^^^^^^ help: consider removing `.into()`: `seek` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:1379:35 [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(&(*name).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1379 | let c_name = CString::new(&str::clone(name)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/stream.rs:1497:53 [INFO] [stderr] | [INFO] [stderr] 1497 | Some(::format::Info::from_raw_weak(unsafe { std::mem::transmute(ptr) })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr as *mut format::InfoInternal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/stream.rs:1534:70 [INFO] [stderr] | [INFO] [stderr] 1534 | let ptr = unsafe { capi::pa_stream_set_buffer_attr(self.ptr, std::mem::transmute(attr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `attr as *const def::BufferAttr as *const capi::pa_buffer_attr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/stream.rs:1595:38 [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(key.clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(&(*key).clone()).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 1595 | c_keys.push(CString::new(&str::clone(key)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time/microseconds.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:50:28 [INFO] [stderr] | [INFO] [stderr] 50 | self.0.checked_mul(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:54:28 [INFO] [stderr] | [INFO] [stderr] 54 | self.0.checked_div(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | self.0.checked_rem(rhs as u64).and_then(|i| Some(MicroSeconds(i))) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:118:31 [INFO] [stderr] | [INFO] [stderr] 118 | MicroSeconds(self.0 * rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:131:31 [INFO] [stderr] | [INFO] [stderr] 131 | MicroSeconds(self.0 / rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/microseconds.rs:144:31 [INFO] [stderr] | [INFO] [stderr] 144 | MicroSeconds(self.0 % rhs as u64) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(rhs)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time/monotonic.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/time/timeval.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / match rtclock { [INFO] [stderr] 100 | | true => { self.0.tv_usec |= PA_TIMEVAL_RTCLOCK as libc::suseconds_t; }, [INFO] [stderr] 101 | | false => { self.wallclock_from_rtclock(); }, [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if rtclock { self.0.tv_usec |= PA_TIMEVAL_RTCLOCK as libc::suseconds_t; } else { self.wallclock_from_rtclock(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time/mod.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | usecs += (t.subsec_nanos() / NANOS_PER_MILLI) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(t.subsec_nanos() / NANOS_PER_MILLI)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time/mod.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | usecs += (t.subsec_nanos() / NANOS_PER_MILLI) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time/mod.rs:75:51 [INFO] [stderr] | [INFO] [stderr] 75 | Timeval::new(t.as_secs() as libc::time_t, (t.subsec_nanos() / NANOS_PER_MILLI) as libc::suseconds_t) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(t.subsec_nanos() / NANOS_PER_MILLI)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time/mod.rs:75:51 [INFO] [stderr] | [INFO] [stderr] 75 | Timeval::new(t.as_secs() as libc::time_t, (t.subsec_nanos() / NANOS_PER_MILLI) as libc::suseconds_t) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/utf8.rs:29:30 [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(s.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(&(*s).clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 29 | let c_str = CString::new(&str::clone(s)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_user_name, pa_get_user_name); } else { fn_string_with_buffer!(get_user_name, pa_get_user_name); }` [INFO] [stderr] ... [INFO] [stderr] 40 | fn_string_with_buffer!(get_user_name, pa_get_user_name); [INFO] [stderr] | -------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_host_name, pa_get_host_name); } else { fn_string_with_buffer!(get_host_name, pa_get_host_name); }` [INFO] [stderr] ... [INFO] [stderr] 43 | fn_string_with_buffer!(get_host_name, pa_get_host_name); [INFO] [stderr] | -------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_fqdn, pa_get_fqdn); } else { fn_string_with_buffer!(get_fqdn, pa_get_fqdn); }` [INFO] [stderr] ... [INFO] [stderr] 46 | fn_string_with_buffer!(get_fqdn, pa_get_fqdn); [INFO] [stderr] | ---------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_home_dir, pa_get_home_dir); } else { fn_string_with_buffer!(get_home_dir, pa_get_home_dir); }` [INFO] [stderr] ... [INFO] [stderr] 49 | fn_string_with_buffer!(get_home_dir, pa_get_home_dir); [INFO] [stderr] | ------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/util.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / match ptr.is_null() { [INFO] [stderr] 31 | | true => None, [INFO] [stderr] 32 | | false => Some(CStr::from_ptr(tmp.as_mut_ptr()).to_string_lossy().into_owned()), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if ptr.is_null() { fn_string_with_buffer!(get_binary_name, pa_get_binary_name); } else { fn_string_with_buffer!(get_binary_name, pa_get_binary_name); }` [INFO] [stderr] ... [INFO] [stderr] 53 | fn_string_with_buffer!(get_binary_name, pa_get_binary_name); [INFO] [stderr] | ------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/volume.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | / match self.channels == other.channels { [INFO] [stderr] 123 | | true => self.values[..self.channels as usize] == other.values[..other.channels as usize], [INFO] [stderr] 124 | | false => false, [INFO] [stderr] 125 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.channels == other.channels { self.values[..self.channels as usize] == other.values[..other.channels as usize] } else { false }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:177:21 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn is_muted(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:181:22 [INFO] [stderr] | [INFO] [stderr] 181 | pub fn is_normal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/volume.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self.0 == 1.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.0 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/volume.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self.0 == 1.0 [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:187:21 [INFO] [stderr] | [INFO] [stderr] 187 | pub fn is_muted(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:191:22 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn is_normal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:195:19 [INFO] [stderr] | [INFO] [stderr] 195 | pub fn is_max(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:208:21 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:233:18 [INFO] [stderr] | [INFO] [stderr] 233 | pub fn print(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:243:21 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn print_db(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/volume.rs:256:26 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn print_verbose(&self, print_db: bool) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:277:40 [INFO] [stderr] | [INFO] [stderr] 277 | unsafe { capi::pa_cvolume_init(std::mem::transmute(&self)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:283:39 [INFO] [stderr] | [INFO] [stderr] 283 | unsafe { capi::pa_cvolume_set(std::mem::transmute(&self), channels, v.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:302:41 [INFO] [stderr] | [INFO] [stderr] 302 | unsafe { capi::pa_cvolume_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:302:68 [INFO] [stderr] | [INFO] [stderr] 302 | unsafe { capi::pa_cvolume_equal(std::mem::transmute(self), std::mem::transmute(to)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:317:46 [INFO] [stderr] | [INFO] [stderr] 317 | Volume(unsafe { capi::pa_cvolume_avg(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:330:51 [INFO] [stderr] | [INFO] [stderr] 330 | Volume(unsafe { capi::pa_cvolume_avg_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:331:13 [INFO] [stderr] | [INFO] [stderr] 331 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:336:46 [INFO] [stderr] | [INFO] [stderr] 336 | Volume(unsafe { capi::pa_cvolume_max(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:349:51 [INFO] [stderr] | [INFO] [stderr] 349 | Volume(unsafe { capi::pa_cvolume_max_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:350:13 [INFO] [stderr] | [INFO] [stderr] 350 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:355:46 [INFO] [stderr] | [INFO] [stderr] 355 | Volume(unsafe { capi::pa_cvolume_min(std::mem::transmute(self)) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:368:51 [INFO] [stderr] | [INFO] [stderr] 368 | Volume(unsafe { capi::pa_cvolume_min_mask(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | std::mem::transmute(cm), mask_actual) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:374:41 [INFO] [stderr] | [INFO] [stderr] 374 | unsafe { capi::pa_cvolume_valid(std::mem::transmute(self)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:379:53 [INFO] [stderr] | [INFO] [stderr] 379 | unsafe { capi::pa_cvolume_channels_equal_to(std::mem::transmute(self), v.0) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:387:47 [INFO] [stderr] | [INFO] [stderr] 387 | unsafe { capi::pa_sw_cvolume_multiply(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:388:13 [INFO] [stderr] | [INFO] [stderr] 388 | std::mem::transmute(&self), std::mem::transmute(with.unwrap_or(&*self))) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:388:41 [INFO] [stderr] | [INFO] [stderr] 388 | std::mem::transmute(&self), std::mem::transmute(with.unwrap_or(&*self))) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with.unwrap_or(&*self) as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:396:54 [INFO] [stderr] | [INFO] [stderr] 396 | unsafe { capi::pa_sw_cvolume_multiply_scalar(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | std::mem::transmute(&self), with.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:408:44 [INFO] [stderr] | [INFO] [stderr] 408 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:408:72 [INFO] [stderr] | [INFO] [stderr] 408 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:409:21 [INFO] [stderr] | [INFO] [stderr] 409 | std::mem::transmute(with)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:412:44 [INFO] [stderr] | [INFO] [stderr] 412 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:412:72 [INFO] [stderr] | [INFO] [stderr] 412 | capi::pa_sw_cvolume_divide(std::mem::transmute(&self), std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:413:21 [INFO] [stderr] | [INFO] [stderr] 413 | std::mem::transmute(&self)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:423:52 [INFO] [stderr] | [INFO] [stderr] 423 | unsafe { capi::pa_sw_cvolume_divide_scalar(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:424:13 [INFO] [stderr] | [INFO] [stderr] 424 | std::mem::transmute(&self), with.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:432:41 [INFO] [stderr] | [INFO] [stderr] 432 | unsafe { capi::pa_cvolume_remap(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:433:13 [INFO] [stderr] | [INFO] [stderr] 433 | std::mem::transmute(from), std::mem::transmute(to)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `from as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:433:40 [INFO] [stderr] | [INFO] [stderr] 433 | std::mem::transmute(from), std::mem::transmute(to)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `to as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:439:46 [INFO] [stderr] | [INFO] [stderr] 439 | unsafe { capi::pa_cvolume_compatible(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:440:13 [INFO] [stderr] | [INFO] [stderr] 440 | std::mem::transmute(ss)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ss as *const sample::Spec as *const capi::pa_sample_spec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:445:63 [INFO] [stderr] | [INFO] [stderr] 445 | unsafe { capi::pa_cvolume_compatible_with_channel_map(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:446:13 [INFO] [stderr] | [INFO] [stderr] 446 | std::mem::transmute(cm)) != 0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:457:47 [INFO] [stderr] | [INFO] [stderr] 457 | unsafe { capi::pa_cvolume_get_balance(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:457:74 [INFO] [stderr] | [INFO] [stderr] 457 | unsafe { capi::pa_cvolume_get_balance(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:473:57 [INFO] [stderr] | [INFO] [stderr] 473 | let ptr = unsafe { capi::pa_cvolume_set_balance(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:474:13 [INFO] [stderr] | [INFO] [stderr] 474 | std::mem::transmute(map), new_balance) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:490:44 [INFO] [stderr] | [INFO] [stderr] 490 | unsafe { capi::pa_cvolume_get_fade(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:490:71 [INFO] [stderr] | [INFO] [stderr] 490 | unsafe { capi::pa_cvolume_get_fade(std::mem::transmute(self), std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:507:54 [INFO] [stderr] | [INFO] [stderr] 507 | let ptr = unsafe { capi::pa_cvolume_set_fade(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | std::mem::transmute(map), new_fade) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:524:51 [INFO] [stderr] | [INFO] [stderr] 524 | unsafe { capi::pa_cvolume_get_lfe_balance(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:525:13 [INFO] [stderr] | [INFO] [stderr] 525 | std::mem::transmute(map)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:543:61 [INFO] [stderr] | [INFO] [stderr] 543 | let ptr = unsafe { capi::pa_cvolume_set_lfe_balance(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:544:13 [INFO] [stderr] | [INFO] [stderr] 544 | std::mem::transmute(map), new_balance) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:556:51 [INFO] [stderr] | [INFO] [stderr] 556 | let ptr = unsafe { capi::pa_cvolume_scale(std::mem::transmute(&self), max.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:576:56 [INFO] [stderr] | [INFO] [stderr] 576 | let ptr = unsafe { capi::pa_cvolume_scale_mask(std::mem::transmute(&self), max.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:577:13 [INFO] [stderr] | [INFO] [stderr] 577 | std::mem::transmute(cm), mask_actual) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cm as *mut channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:597:58 [INFO] [stderr] | [INFO] [stderr] 597 | let ptr = unsafe { capi::pa_cvolume_set_position(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:598:13 [INFO] [stderr] | [INFO] [stderr] 598 | std::mem::transmute(map), t.into(), v.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:612:55 [INFO] [stderr] | [INFO] [stderr] 612 | Volume(unsafe { capi::pa_cvolume_get_position(std::mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | std::mem::transmute(map), t.into()) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:627:51 [INFO] [stderr] | [INFO] [stderr] 627 | let ptr = unsafe { capi::pa_cvolume_merge(std::mem::transmute(&self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:628:13 [INFO] [stderr] | [INFO] [stderr] 628 | std::mem::transmute(&self), std::mem::transmute(with)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:628:41 [INFO] [stderr] | [INFO] [stderr] 628 | std::mem::transmute(&self), std::mem::transmute(with)) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `with as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:639:55 [INFO] [stderr] | [INFO] [stderr] 639 | let ptr = unsafe { capi::pa_cvolume_inc_clamp(std::mem::transmute(&self), inc.0, limit.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:650:49 [INFO] [stderr] | [INFO] [stderr] 650 | let ptr = unsafe { capi::pa_cvolume_inc(std::mem::transmute(&self), inc.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:661:49 [INFO] [stderr] | [INFO] [stderr] 661 | let ptr = unsafe { capi::pa_cvolume_dec(std::mem::transmute(&self), dec.0) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self as *const &mut volume::ChannelVolumes as *mut capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:673:67 [INFO] [stderr] | [INFO] [stderr] 673 | capi::pa_cvolume_snprint(tmp.as_mut_ptr(), PRINT_MAX, std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:684:17 [INFO] [stderr] | [INFO] [stderr] 684 | std::mem::transmute(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:698:35 [INFO] [stderr] | [INFO] [stderr] 698 | Some(map) => unsafe { std::mem::transmute(map) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map as *const channelmap::Map as *const capi::pa_channel_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/volume.rs:705:17 [INFO] [stderr] | [INFO] [stderr] 705 | std::mem::transmute(self), p_map, print_db as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self as *const volume::ChannelVolumes as *const capi::pa_cvolume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: aborting due to 85 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `libpulse-binding`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "045731082b69759eabbdd396128f07d405974d308460c8232ec0f023000f6a24"` [INFO] running `"docker" "rm" "-f" "045731082b69759eabbdd396128f07d405974d308460c8232ec0f023000f6a24"` [INFO] [stdout] 045731082b69759eabbdd396128f07d405974d308460c8232ec0f023000f6a24