Skip to content

fix(deps): update rust crate enum-iterator to v2.1.0 (#623) #393

fix(deps): update rust crate enum-iterator to v2.1.0 (#623)

fix(deps): update rust crate enum-iterator to v2.1.0 (#623) #393

Triggered via push July 4, 2024 06:37
Status Success
Total duration 32m 13s
Artifacts

docs.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

168 warnings
field `0` is never read: crates/mizer/src/logger.rs#L77
warning: field `0` is never read --> crates/mizer/src/logger.rs:77:25 | 77 | pub struct LoggingGuard(Option<WorkerGuard>); | ------------ ^^^^^^^^^^^^^^^^^^^ | | | field in this struct | = note: `#[warn(dead_code)]` on by default help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 77 | pub struct LoggingGuard(()); | ~~
unused import: `anyhow::Context`: crates/mizer/src/main.rs#L2
warning: unused import: `anyhow::Context` --> crates/mizer/src/main.rs:2:5 | 2 | use anyhow::Context; | ^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
using `clone` on type `Ipv4Addr` which implements the `Copy` trait: crates/mizer/src/api/handler.rs#L219
warning: using `clone` on type `Ipv4Addr` which implements the `Copy` trait --> crates/mizer/src/api/handler.rs:219:35 | 219 | ... host: config.config.host.clone(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `config.config.host` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy = note: `#[warn(clippy::clone_on_copy)]` on by default
bound is defined in more than one place: crates/mizer/src/module_context.rs#L49
warning: bound is defined in more than one place --> crates/mizer/src/module_context.rs:49:24 | 49 | fn block_in_thread<A: 'static, F: Future + 'static>(&self, future_action: A) | ^ 50 | where 51 | A: FnOnce() -> F + Send, | ^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations = note: `#[warn(clippy::multiple_bound_locations)]` on by default
useless conversion to the same type: `mizer_api::proto::surfaces::SurfaceTransform`: crates/ui/src/plugin/channels/method/surfaces.rs#L40
warning: useless conversion to the same type: `mizer_api::proto::surfaces::SurfaceTransform` --> crates/ui/src/plugin/channels/method/surfaces.rs:40:25 | 40 | req.transform.unwrap().into(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `req.transform.unwrap()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
usage of an `Arc` that is not `Send` and `Sync`: crates/ui/src/plugin/channels/method/programmer.rs#L279
warning: usage of an `Arc` that is not `Send` and `Sync` --> crates/ui/src/plugin/channels/method/programmer.rs:279:26 | 279 | let programmer = Arc::new(programmer); | ^^^^^^^^^^^^^^^^^^^^ | = note: `Arc<Programmer>` is not `Send` and `Sync` as `Programmer` is neither `Send` nor `Sync` = help: if the `Arc` will not used be across threads replace it with an `Rc` = help: otherwise make `Programmer` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync
usage of an `Arc` that is not `Send` and `Sync`: crates/ui/src/plugin/channels/method/nodes.rs#L217
warning: usage of an `Arc` that is not `Send` and `Sync` --> crates/ui/src/plugin/channels/method/nodes.rs:217:28 | 217 | let metadata_ref = Arc::new(NodesRef::new(metadata_ref)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `Arc<NodesRef>` is not `Send` and `Sync` as `NodesRef` is neither `Send` nor `Sync` = help: if the `Arc` will not used be across threads replace it with an `Rc` = help: otherwise make `NodesRef` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync
usage of an `Arc` that is not `Send` and `Sync`: crates/ui/src/plugin/channels/method/nodes.rs#L207
warning: usage of an `Arc` that is not `Send` and `Sync` --> crates/ui/src/plugin/channels/method/nodes.rs:207:27 | 207 | let preview = Arc::new(preview); | ^^^^^^^^^^^^^^^^^ | = note: `Arc<NodeHistory>` is not `Send` and `Sync` as `NodeHistory` is neither `Send` nor `Sync` = help: if the `Arc` will not used be across threads replace it with an `Rc` = help: otherwise make `NodeHistory` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync
usage of an `Arc` that is not `Send` and `Sync`: crates/ui/src/plugin/channels/method/layouts.rs#L246
warning: usage of an `Arc` that is not `Send` and `Sync` --> crates/ui/src/plugin/channels/method/layouts.rs:246:23 | 246 | let layouts = Arc::new(layouts); | ^^^^^^^^^^^^^^^^^ | = note: `Arc<LayoutRef>` is not `Send` and `Sync` as `LayoutRef` is neither `Send` nor `Sync` = help: if the `Arc` will not used be across threads replace it with an `Rc` = help: otherwise make `LayoutRef` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync = note: `#[warn(clippy::arc_with_non_send_sync)]` on by default
bound is defined in more than one place: crates/ui/src/plugin/event_sink.rs#L76
warning: bound is defined in more than one place --> crates/ui/src/plugin/event_sink.rs:76:24 | 76 | fn run_in_run_loop<Cb: 'static>(&self, cb: Cb) | ^^ 77 | where 78 | Cb: FnOnce(&InnerSubscriber) + Send, | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations = note: `#[warn(clippy::multiple_bound_locations)]` on by default
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/settings.rs#L14
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/settings.rs:14:15 | 14 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
useless conversion to the same type: `std::option::Option<proto::sequencer::CueTime>`: crates/api/src/mappings/sequencer.rs#L25
warning: useless conversion to the same type: `std::option::Option<proto::sequencer::CueTime>` --> crates/api/src/mappings/sequencer.rs:25:23 | 25 | time: cue.trigger_time.map(|time| time.into()).into(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `cue.trigger_time.map(|time| time.into())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/sequencer.rs#L26
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/sequencer.rs:26:19 | 26 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/programmer.rs#L263
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/programmer.rs:263:23 | 263 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/plans.rs#L43
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/plans.rs:43:23 | 43 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/plans.rs#L29
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/plans.rs:29:23 | 29 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/plans.rs#L17
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/plans.rs:17:23 | 17 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/plans.rs#L46
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/plans.rs:46:15 | 46 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
useless conversion to the same type: `std::iter::FilterMap<std::iter::Cloned<std::slice::Iter<'_, i32>>, fn(i32) -> std::option::Option<proto::media::MediaType>>`: crates/api/src/mappings/nodes.rs#L403
warning: useless conversion to the same type: `std::iter::FilterMap<std::iter::Cloned<std::slice::Iter<'_, i32>>, fn(i32) -> std::option::Option<proto::media::MediaType>>` --> crates/api/src/mappings/nodes.rs:403:32 | 403 | content_types: value | ________________________________^ 404 | | .allowed_types() 405 | | .into_iter() | |________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion help: consider removing `.into_iter()` | 403 ~ content_types: value 404 + .allowed_types() |
use of a fallible conversion when an infallible one could be used: crates/api/src/mappings/nodes.rs#L195
warning: use of a fallible conversion when an infallible one could be used --> crates/api/src/mappings/nodes.rs:195:39 | 195 | config: descriptor.config.try_into().ok().into(), | ^^^^^^^^ help: use: `into` | = note: converting `Node` to `NodeConfig` cannot fail = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions = note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default
useless conversion to the same type: `std::option::Option<proto::nodes::NodeConfig>`: crates/api/src/mappings/nodes.rs#L195
warning: useless conversion to the same type: `std::option::Option<proto::nodes::NodeConfig>` --> crates/api/src/mappings/nodes.rs:195:21 | 195 | config: descriptor.config.try_into().ok().into(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `descriptor.config.try_into().ok()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
useless conversion to the same type: `std::option::Option<proto::media::media_metadata::Dimensions>`: crates/api/src/mappings/media.rs#L24
warning: useless conversion to the same type: `std::option::Option<proto::media::media_metadata::Dimensions>` --> crates/api/src/mappings/media.rs:24:29 | 24 | dimensions: media | _____________________________^ 25 | | .metadata 26 | | .dimensions 27 | | .map(|(width, height)| media_metadata::Dimensions { width, height }) 28 | | .into(), | |___________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion help: consider removing `.into()` | 24 ~ dimensions: media 25 + .metadata 26 + .dimensions 27 ~ .map(|(width, height)| media_metadata::Dimensions { width, height }), |
useless conversion to the same type: `std::option::Option<proto::layouts::Color>`: crates/api/src/mappings/layouts.rs#L93
warning: useless conversion to the same type: `std::option::Option<proto::layouts::Color>` --> crates/api/src/mappings/layouts.rs:93:20 | 93 | color: decorations.color.map(Color::from).into(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `decorations.color.map(Color::from)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L302
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:302:23 | 302 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L304
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:304:19 | 304 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L296
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:296:19 | 296 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L286
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:286:15 | 286 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L250
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:250:15 | 250 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L239
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:239:15 | 239 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L222
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:222:27 | 222 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L225
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:225:19 | 225 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L207
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:207:23 | 207 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L209
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:209:19 | 209 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L194
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:194:23 | 194 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L196
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:196:19 | 196 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L177
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:177:23 | 177 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L179
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:179:19 | 179 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L155
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:155:19 | 155 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/fixtures.rs#L145
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/fixtures.rs:145:19 | 145 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/effects.rs#L118
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/effects.rs:118:19 | 118 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/effects.rs#L110
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/effects.rs:110:23 | 110 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L277
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:277:23 | 277 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L268
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:268:19 | 268 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L262
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:262:19 | 262 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L256
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:256:19 | 256 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L204
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:204:15 | 204 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L194
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:194:15 | 194 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L182
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:182:15 | 182 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L168
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:168:15 | 168 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/mappings/connections.rs#L149
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/mappings/connections.rs:149:15 | 149 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/session.rs#L94
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/session.rs:94:23 | 94 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/session.rs#L87
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/session.rs:87:27 | 87 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/sequencer.rs#L26
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/sequencer.rs:26:15 | 26 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/programmer.rs#L172
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/programmer.rs:172:15 | 172 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/programmer.rs#L142
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/programmer.rs:142:15 | 142 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/plans.rs#L32
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/plans.rs:32:15 | 32 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/nodes.rs#L73
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/nodes.rs:73:19 | 73 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
returning the result of a `let` binding from a block: crates/api/src/handlers/fixtures.rs#L190
warning: returning the result of a `let` binding from a block --> crates/api/src/handlers/fixtures.rs:190:5 | 180 | / let cmd = PatchFixturesCommand { 181 | | definition_id: request.definition_id, 182 | | mode: request.mode, 183 | | start_id: request.id, ... | 187 | | count: add_fixtures.count, 188 | | }; | |______- unnecessary `let` binding 189 | 190 | cmd | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 180 ~ 181 | 182 ~ PatchFixturesCommand { 183 + definition_id: request.definition_id, 184 + mode: request.mode, 185 + start_id: request.id, 186 + start_channel: request.channel, 187 + universe: request.universe, 188 + name: request.name, 189 + count: add_fixtures.count, 190 + } |
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/fixtures.rs#L91
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/fixtures.rs:91:15 | 91 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/effects.rs#L30
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/effects.rs:30:15 | 30 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update
struct update has no effect, all the fields in the struct have already been specified: crates/api/src/handlers/connections.rs#L167
warning: struct update has no effect, all the fields in the struct have already been specified --> crates/api/src/handlers/connections.rs:167:15 | 167 | ..Default::default() | ^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update = note: `#[warn(clippy::needless_update)]` on by default
the borrowed expression implements the required traits: crates/components/fixtures/open-fixture-library/src/lib.rs#L55
warning: the borrowed expression implements the required traits --> crates/components/fixtures/open-fixture-library/src/lib.rs:55:43 | 55 | let files = std::fs::read_dir(&path)?; | ^^^^^ help: change this to: `path` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
method `is_empty` is never used: crates/runtime/commander/executor/src/history.rs#L86
warning: method `is_empty` is never used --> crates/runtime/commander/executor/src/history.rs:86:12 | 78 | impl<T> CommandCursor<T> { | ------------------------ method in this implementation ... 86 | pub fn is_empty(&self) -> bool { | ^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
assigning the result of `Clone::clone()` may be inefficient: crates/components/sequencer/commands/src/rename_sequence.rs#L24
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/components/sequencer/commands/src/rename_sequence.rs:24:13 | 24 | sequence.name = self.name.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `sequence.name.clone_from(&self.name)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: crates/components/sequencer/commands/src/rename_cue.rs#L30
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/components/sequencer/commands/src/rename_cue.rs:30:13 | 30 | cue.name = self.name.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `cue.name.clone_from(&self.name)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
this bound is already specified as the supertrait of `DerefMut`: crates/components/sequencer/commands/src/effects/mod.rs#L22
warning: this bound is already specified as the supertrait of `DerefMut` --> crates/components/sequencer/commands/src/effects/mod.rs:22:26 | 22 | ) -> anyhow::Result<impl Deref<Target = Effect> + DerefMut + '_> { | ^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls = note: `#[warn(clippy::implied_bounds_in_impls)]` on by default help: try removing this bound | 22 - ) -> anyhow::Result<impl Deref<Target = Effect> + DerefMut + '_> { 22 + ) -> anyhow::Result<impl DerefMut<Target = Effect> + '_> { |
unused import: `mizer_runtime::ExecutionPlanner`: crates/components/fixtures/commands/src/patch_fixtures.rs#L14
warning: unused import: `mizer_runtime::ExecutionPlanner` --> crates/components/fixtures/commands/src/patch_fixtures.rs:14:5 | 14 | use mizer_runtime::ExecutionPlanner; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unused import: `mizer_runtime::pipeline_access::PipelineAccess`: crates/components/fixtures/commands/src/patch_fixtures.rs#L13
warning: unused import: `mizer_runtime::pipeline_access::PipelineAccess` --> crates/components/fixtures/commands/src/patch_fixtures.rs:13:5 | 13 | use mizer_runtime::pipeline_access::PipelineAccess; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unused import: `mizer_runtime::commands::AddNodeCommand`: crates/components/fixtures/commands/src/patch_fixtures.rs#L12
warning: unused import: `mizer_runtime::commands::AddNodeCommand` --> crates/components/fixtures/commands/src/patch_fixtures.rs:12:5 | 12 | use mizer_runtime::commands::AddNodeCommand; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unused import: `mizer_nodes::FixtureNode`: crates/components/fixtures/commands/src/patch_fixtures.rs#L11
warning: unused import: `mizer_nodes::FixtureNode` --> crates/components/fixtures/commands/src/patch_fixtures.rs:11:5 | 11 | use mizer_nodes::FixtureNode; | ^^^^^^^^^^^^^^^^^^^^^^^^
unused imports: `NodeDesigner`, `NodeType`: crates/components/fixtures/commands/src/patch_fixtures.rs#L10
warning: unused imports: `NodeDesigner`, `NodeType` --> crates/components/fixtures/commands/src/patch_fixtures.rs:10:18 | 10 | use mizer_node::{NodeDesigner, NodeType}; | ^^^^^^^^^^^^ ^^^^^^^^
unused imports: `RefMut`, `sub_command`: crates/components/fixtures/commands/src/patch_fixtures.rs#L6
warning: unused imports: `RefMut`, `sub_command` --> crates/components/fixtures/commands/src/patch_fixtures.rs:6:23 | 6 | use mizer_commander::{sub_command, Command, Ref, RefMut}; | ^^^^^^^^^^^ ^^^^^^ | = note: `#[warn(unused_imports)]` on by default
unnecessary parentheses around type: crates/components/fixtures/commands/src/add_group.rs#L24
warning: unnecessary parentheses around type --> crates/components/fixtures/commands/src/add_group.rs:24:28 | 24 | (fixture_manager): (&FixtureManager), | ^ ^ | help: remove these parentheses | 24 - (fixture_manager): (&FixtureManager), 24 + (fixture_manager): &FixtureManager, |
unnecessary parentheses around pattern: crates/components/fixtures/commands/src/add_group.rs#L24
warning: unnecessary parentheses around pattern --> crates/components/fixtures/commands/src/add_group.rs:24:9 | 24 | (fixture_manager): (&FixtureManager), | ^ ^ | = note: `#[warn(unused_parens)]` on by default help: remove these parentheses | 24 - (fixture_manager): (&FixtureManager), 24 + fixture_manager: (&FixtureManager), |
assigning the result of `Clone::clone()` may be inefficient: crates/runtime/layouts/commands/src/rename_layout.rs#L33
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/runtime/layouts/commands/src/rename_layout.rs:33:13 | 33 | layout.id = self.id.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `layout.id.clone_from(&self.id)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: crates/runtime/layouts/commands/src/rename_layout.rs#L23
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/runtime/layouts/commands/src/rename_layout.rs:23:13 | 23 | layout.id = self.name.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `layout.id.clone_from(&self.name)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: crates/runtime/src/pipeline_access.rs#L65
warning: this expression creates a reference which is immediately dereferenced by the compiler --> crates/runtime/src/pipeline_access.rs:65:18 | 65 | .get(&path) | ^^^^^ help: change this to: `path` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
returning the result of a `let` binding from a block: crates/runtime/src/pipeline_access.rs#L60
warning: returning the result of a `let` binding from a block --> crates/runtime/src/pipeline_access.rs:60:13 | 58 | let config = node_to_duplicate.downcast(); | ------------------------------------------ unnecessary `let` binding 59 | 60 | config | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 58 ~ 59 | 60 ~ node_to_duplicate.downcast() |
you should consider adding a `Default` implementation for `CoordinatorRuntime<SystemClock>`: crates/runtime/src/coordinator.rs#L52
warning: you should consider adding a `Default` implementation for `CoordinatorRuntime<SystemClock>` --> crates/runtime/src/coordinator.rs:52:5 | 52 | / pub fn new() -> Self { 53 | | let clock = SystemClock::default(); 54 | | 55 | | Self::with_clock(clock) 56 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 51 + impl Default for CoordinatorRuntime<SystemClock> { 52 + fn default() -> Self { 53 + Self::new() 54 + } 55 + } |
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec`: crates/runtime/src/commands/update_node_setting.rs#L62
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` --> crates/runtime/src/commands/update_node_setting.rs:62:26 | 62 | .into_iter() | ^^^^^^^^^ help: call directly: `iter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref = note: `#[warn(clippy::into_iter_on_ref)]` on by default
fields `value` and `byte_count` are never read: crates/components/fixtures/gdtf/src/types/dmx_value.rs#L8
warning: fields `value` and `byte_count` are never read --> crates/components/fixtures/gdtf/src/types/dmx_value.rs:8:9 | 7 | pub struct InnerValue { | ---------- fields in this struct 8 | pub value: u32, | ^^^^^ 9 | pub byte_count: u8, | ^^^^^^^^^^ | = note: `InnerValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
field `0` is never read: crates/components/fixtures/gdtf/src/types/dmx_value.rs#L4
warning: field `0` is never read --> crates/components/fixtures/gdtf/src/types/dmx_value.rs:4:21 | 4 | pub struct DmxValue(Option<InnerValue>); | -------- ^^^^^^^^^^^^^^^^^^ | | | field in this struct | = note: `DmxValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` on by default help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 4 | pub struct DmxValue(()); | ~~
file opened with `create`, but `truncate` behavior not defined: crates/projects/src/history.rs#L100
warning: file opened with `create`, but `truncate` behavior not defined --> crates/projects/src/history.rs:100:14 | 100 | .create(true) | ^^^^^^^^^^^^- help: add: `.truncate(true)` | = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` = help: alternatively, use `.append(true)` to append to the file instead of overwriting it = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options = note: `#[warn(clippy::suspicious_open_options)]` on by default
the following explicit lifetimes could be elided: 'a: crates/components/connections/protocols/citp/src/connection/handlers/mod.rs#L39
warning: the following explicit lifetimes could be elided: 'a --> crates/components/connections/protocols/citp/src/connection/handlers/mod.rs:39:17 | 39 | fn announce<'a>(&'a self) -> anyhow::Result<Option<Self::Result<'a>>> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 39 - fn announce<'a>(&'a self) -> anyhow::Result<Option<Self::Result<'a>>> { 39 + fn announce(&self) -> anyhow::Result<Option<Self::Result<'_>>> { |
the following explicit lifetimes could be elided: 'a: crates/components/connections/protocols/citp/src/connection/handlers/caex/fixture_list_request.rs#L37
warning: the following explicit lifetimes could be elided: 'a --> crates/components/connections/protocols/citp/src/connection/handlers/caex/fixture_list_request.rs:37:17 | 37 | fn announce<'a>(&'a self) -> anyhow::Result<Option<Self::Result<'a>>> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 37 - fn announce<'a>(&'a self) -> anyhow::Result<Option<Self::Result<'a>>> { 37 + fn announce(&self) -> anyhow::Result<Option<Self::Result<'_>>> { |
unused variable: `image`: crates/runtime/layouts/src/debug_ui_pane.rs#L42
warning: unused variable: `image` --> crates/runtime/layouts/src/debug_ui_pane.rs:42:45 | 42 | ... if let Some(image) = control.decoration.image { | ^^^^^ help: if this is intentional, prefix it with an underscore: `_image` | = note: `#[warn(unused_variables)]` on by default
field `from` is never read: crates/runtime/pipeline/nodes/behaviors/envelope/src/lib.rs#L185
warning: field `from` is never read --> crates/runtime/pipeline/nodes/behaviors/envelope/src/lib.rs:185:14 | 185 | Attack { from: f64, to: f64 }, | ------ ^^^^ | | | field in this variant | = note: `#[warn(dead_code)]` on by default
assigning the result of `Clone::clone()` may be inefficient: crates/runtime/pipeline/nodes/behaviors/scripting/src/lib.rs#L70
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/runtime/pipeline/nodes/behaviors/scripting/src/lib.rs:70:13 | 70 | state.script = self.script.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `state.script.clone_from(&self.script)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
clamp-like pattern without using clamp function: crates/runtime/pipeline/nodes/connections/protocols/dmx/src/output.rs#L82
warning: clamp-like pattern without using clamp function --> crates/runtime/pipeline/nodes/connections/protocols/dmx/src/output.rs:82:25 | 82 | let value = (value * u8::MAX as f64).min(255.).max(0.).floor() as u8; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(value * u8::MAX as f64).clamp(0., 255.)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp = note: `#[warn(clippy::manual_clamp)]` on by default
this `impl` can be derived: crates/runtime/pipeline/nodes/audio/src/file.rs#L274
warning: this `impl` can be derived --> crates/runtime/pipeline/nodes/audio/src/file.rs:274:1 | 274 | / impl Default for AudioFileNodeState { 275 | | fn default() -> Self { 276 | | Self { 277 | | paused: false, ... | 281 | | } 282 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls = note: `#[warn(clippy::derivable_impls)]` on by default = help: remove the manual implementation... help: ...and instead derive it | 268 + #[derive(Default)] 269 | pub struct AudioFileNodeState { |
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`: crates/runtime/pipeline/nodes/audio/src/file.rs#L188
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` --> crates/runtime/pipeline/nodes/audio/src/file.rs:188:13 | 188 | / match state.recv.try_recv() { 189 | | Ok(mut player) => { 190 | | tracing::debug!("Received decoded file {path:?} from decoding thread"); 191 | | if node_state.playing { ... | 196 | | Err(_) => {} 197 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match = note: `#[warn(clippy::single_match)]` on by default help: try | 188 ~ if let Ok(mut player) = state.recv.try_recv() { 189 + tracing::debug!("Received decoded file {path:?} from decoding thread"); 190 + if node_state.playing { 191 + player.play(); 192 + } 193 + state.player = Some(player) 194 + } |
field `stream` is never read: crates/runtime/pipeline/nodes/audio/src/output.rs#L83
warning: field `stream` is never read --> crates/runtime/pipeline/nodes/audio/src/output.rs:83:5 | 80 | pub struct AudioOutputNodeState { | -------------------- field in this struct ... 83 | stream: Stream, | ^^^^^^
fields `device` and `stream` are never read: crates/runtime/pipeline/nodes/audio/src/input.rs#L59
warning: fields `device` and `stream` are never read --> crates/runtime/pipeline/nodes/audio/src/input.rs:59:5 | 57 | pub struct AudioInputNodeState { | ------------------- fields in this struct 58 | buffer: SpscRb<f32>, 59 | device: Device, | ^^^^^^ 60 | stream: Stream, | ^^^^^^
field `thread_handle` is never read: crates/runtime/pipeline/nodes/audio/src/file.rs#L288
warning: field `thread_handle` is never read --> crates/runtime/pipeline/nodes/audio/src/file.rs:288:5 | 284 | pub struct AudioFileDecodeState { | -------------------- field in this struct ... 288 | thread_handle: JoinHandle<anyhow::Result<()>>, | ^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true: crates/runtime/pipeline/nodes/behaviors/color/src/constant.rs#L199
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true --> crates/runtime/pipeline/nodes/behaviors/color/src/constant.rs:199:1 | 199 | impl Into<u8> for ConstantColorNode { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: `impl From<Local> for Foreign` is allowed by the orphan rules, for more information see https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into = note: `#[warn(clippy::from_over_into)]` on by default help: replace the `Into` implementation with `From<constant::ConstantColorNode>` | 199 ~ impl From<ConstantColorNode> for u8 { 200 ~ fn from(val: ConstantColorNode) -> Self { 201 ~ match val { 202 ~ ConstantColorNode::Rgb { .. } => 0, 203 ~ ConstantColorNode::Hsv { .. } => 1, |
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true: crates/runtime/pipeline/nodes/connections/protocols/midi/src/output.rs#L345
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true --> crates/runtime/pipeline/nodes/connections/protocols/midi/src/output.rs:345:1 | 345 | impl Into<u8> for MidiOutputConfig { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: `impl From<Local> for Foreign` is allowed by the orphan rules, for more information see https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into help: replace the `Into` implementation with `From<output::MidiOutputConfig>` | 345 ~ impl From<MidiOutputConfig> for u8 { 346 ~ fn from(val: MidiOutputConfig) -> Self { 347 ~ match val { 348 ~ MidiOutputConfig::Note { .. } => 0, 349 ~ MidiOutputConfig::Control { .. } => 1, |
an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true: crates/runtime/pipeline/nodes/connections/protocols/midi/src/input.rs#L271
warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true --> crates/runtime/pipeline/nodes/connections/protocols/midi/src/input.rs:271:1 | 271 | impl Into<u8> for MidiInputConfig { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: `impl From<Local> for Foreign` is allowed by the orphan rules, for more information see https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into = note: `#[warn(clippy::from_over_into)]` on by default help: replace the `Into` implementation with `From<input::MidiInputConfig>` | 271 ~ impl From<MidiInputConfig> for u8 { 272 ~ fn from(val: MidiInputConfig) -> Self { 273 ~ match val { 274 ~ MidiInputConfig::Note { .. } => 0, 275 ~ MidiInputConfig::Control { .. } => 1, |
you should consider adding a `Default` implementation for `ImageId`: crates/components/plan/src/lib.rs#L120
warning: you should consider adding a `Default` implementation for `ImageId` --> crates/components/plan/src/lib.rs:120:5 | 120 | / pub fn new() -> Self { 121 | | Self(Uuid::new_v4()) 122 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 119 + impl Default for ImageId { 120 + fn default() -> Self { 121 + Self::new() 122 + } 123 + } |
accessing first element with `self.0.get(0)`: crates/components/sequencer/src/effects/spline.rs#L28
warning: accessing first element with `self.0.get(0)` --> crates/components/sequencer/src/effects/spline.rs:28:25 | 28 | .or_else(|| self.0.get(0).map(|c| (0, c))) | ^^^^^^^^^^^^^ help: try: `self.0.first()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first = note: `#[warn(clippy::get_first)]` on by default
this bound is already specified as the supertrait of `DerefMut`: crates/components/sequencer/src/effects/engine.rs#L71
warning: this bound is already specified as the supertrait of `DerefMut` --> crates/components/sequencer/src/effects/engine.rs:71:54 | 71 | pub fn effect_mut(&self, id: u32) -> Option<impl Deref<Target = Effect> + DerefMut + '_> { | ^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implied_bounds_in_impls = note: `#[warn(clippy::implied_bounds_in_impls)]` on by default help: try removing this bound | 71 - pub fn effect_mut(&self, id: u32) -> Option<impl Deref<Target = Effect> + DerefMut + '_> { 71 + pub fn effect_mut(&self, id: u32) -> Option<impl DerefMut<Target = Effect> + '_> { |
field `reverse` is never read: crates/runtime/pipeline/nodes/behaviors/oscillator/src/lib.rs#L159
warning: field `reverse` is never read --> crates/runtime/pipeline/nodes/behaviors/oscillator/src/lib.rs:159:9 | 153 | struct OscillatorContext { | ----------------- field in this struct ... 159 | pub reverse: bool, | ^^^^^^^ | = note: `#[warn(dead_code)]` on by default
field `start_time` is never read: crates/components/sequencer/src/state.rs#L147
warning: field `start_time` is never read --> crates/components/sequencer/src/state.rs:147:9 | 146 | pub(crate) struct CueChannel { | ---------- field in this struct 147 | pub start_time: SequenceTimestamp, | ^^^^^^^^^^ | = note: `CueChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
method `has_passed` is never used: crates/components/sequencer/src/state.rs#L118
warning: method `has_passed` is never used --> crates/components/sequencer/src/state.rs:118:19 | 117 | impl SequenceTimestamp { | ---------------------- method in this implementation 118 | pub(crate) fn has_passed( | ^^^^^^^^^^
associated function `new` is never used: crates/components/sequencer/src/cue.rs#L297
warning: associated function `new` is never used --> crates/components/sequencer/src/cue.rs:297:19 | 296 | impl CueControl { | --------------- associated function in this implementation 297 | pub(crate) fn new( | ^^^
associated function `new` is never used: crates/components/sequencer/src/cue.rs#L49
warning: associated function `new` is never used --> crates/components/sequencer/src/cue.rs:49:19 | 48 | impl Cue { | -------- associated function in this implementation 49 | pub(crate) fn new(id: u32, name: impl Into<String>, controls: Vec<CueControl>) -> Self { | ^^^ | = note: `#[warn(dead_code)]` on by default
`to_string` applied to a type that implements `Display` in `format!` args: crates/runtime/pipeline/nodes/fixture/src/group_control.rs#L126
warning: `to_string` applied to a type that implements `Display` in `format!` args --> crates/runtime/pipeline/nodes/fixture/src/group_control.rs:126:29 | 126 | self.control.to_string() | ^^^^^^^^^^^^ help: remove this | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args
`to_string` applied to a type that implements `Display` in `format!` args: crates/runtime/pipeline/nodes/fixture/src/group_control.rs#L120
warning: `to_string` applied to a type that implements `Display` in `format!` args --> crates/runtime/pipeline/nodes/fixture/src/group_control.rs:120:29 | 120 | self.control.to_string() | ^^^^^^^^^^^^ help: remove this | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args
unused variable: `origin`: crates/components/plan/src/commands/spread_fixtures.rs#L142
warning: unused variable: `origin` --> crates/components/plan/src/commands/spread_fixtures.rs:142:9 | 142 | origin: (f64, f64), | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
unused variable: `origin`: crates/components/plan/src/commands/spread_fixtures.rs#L104
warning: unused variable: `origin` --> crates/components/plan/src/commands/spread_fixtures.rs:104:9 | 104 | origin: (f64, f64), | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin` | = note: `#[warn(unused_variables)]` on by default
`to_string` applied to a type that implements `Display` in `format!` args: crates/runtime/pipeline/nodes/fixture/src/fixture_control.rs#L117
warning: `to_string` applied to a type that implements `Display` in `format!` args --> crates/runtime/pipeline/nodes/fixture/src/fixture_control.rs:117:29 | 117 | self.control.to_string() | ^^^^^^^^^^^^ help: remove this | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args
`to_string` applied to a type that implements `Display` in `format!` args: crates/runtime/pipeline/nodes/fixture/src/fixture_control.rs#L111
warning: `to_string` applied to a type that implements `Display` in `format!` args --> crates/runtime/pipeline/nodes/fixture/src/fixture_control.rs:111:29 | 111 | self.control.to_string() | ^^^^^^^^^^^^ help: remove this | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args = note: `#[warn(clippy::to_string_in_format_args)]` on by default
function `webcam_to_node_setting` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L137
warning: function `webcam_to_node_setting` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:137:4 | 137 | fn webcam_to_node_setting(value: WebcamSettingValue, setting: &'static str) -> NodeSetting { | ^^^^^^^^^^^^^^^^^^^^^^
function `collect_webcam_settings` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L74
warning: function `collect_webcam_settings` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:74:4 | 74 | fn collect_webcam_settings(webcam_ref: Option<&WebcamRef>) -> Vec<NodeSetting> { | ^^^^^^^^^^^^^^^^^^^^^^^
constant `FOCUS_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L34
warning: constant `FOCUS_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:34:7 | 34 | const FOCUS_SETTING: &str = "Focus"; | ^^^^^^^^^^^^^
constant `IRIS_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L33
warning: constant `IRIS_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:33:7 | 33 | const IRIS_SETTING: &str = "Iris"; | ^^^^^^^^^^^^
constant `EXPORURE_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L32
warning: constant `EXPORURE_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:32:7 | 32 | const EXPORURE_SETTING: &str = "Exposure"; | ^^^^^^^^^^^^^^^^
constant `ZOOM_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L31
warning: constant `ZOOM_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:31:7 | 31 | const ZOOM_SETTING: &str = "Zoom"; | ^^^^^^^^^^^^
constant `TILT_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L30
warning: constant `TILT_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:30:7 | 30 | const TILT_SETTING: &str = "Tilt"; | ^^^^^^^^^^^^
constant `PAN_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L29
warning: constant `PAN_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:29:7 | 29 | const PAN_SETTING: &str = "Pan"; | ^^^^^^^^^^^
constant `GAIN_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L28
warning: constant `GAIN_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:28:7 | 28 | const GAIN_SETTING: &str = "Gain"; | ^^^^^^^^^^^^
constant `BACKLIGHT_COMPENSATION_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L27
warning: constant `BACKLIGHT_COMPENSATION_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:27:7 | 27 | const BACKLIGHT_COMPENSATION_SETTING: &str = "Backlight Compensation"; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
constant `WHITE_BALANCE_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L26
warning: constant `WHITE_BALANCE_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:26:7 | 26 | const WHITE_BALANCE_SETTING: &str = "White Balance"; | ^^^^^^^^^^^^^^^^^^^^^
constant `GAMMA_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L25
warning: constant `GAMMA_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:25:7 | 25 | const GAMMA_SETTING: &str = "Gamma"; | ^^^^^^^^^^^^^
constant `SHARPNESS_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L24
warning: constant `SHARPNESS_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:24:7 | 24 | const SHARPNESS_SETTING: &str = "Sharpness"; | ^^^^^^^^^^^^^^^^^
constant `SATURATION_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L23
warning: constant `SATURATION_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:23:7 | 23 | const SATURATION_SETTING: &str = "Saturation"; | ^^^^^^^^^^^^^^^^^^
constant `HUE_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L22
warning: constant `HUE_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:22:7 | 22 | const HUE_SETTING: &str = "Hue"; | ^^^^^^^^^^^
constant `CONTRAST_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L21
warning: constant `CONTRAST_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:21:7 | 21 | const CONTRAST_SETTING: &str = "Contrast"; | ^^^^^^^^^^^^^^^^
constant `BRIGHTNESS_SETTING` is never used: crates/runtime/pipeline/nodes/video/webcams/src/lib.rs#L20
warning: constant `BRIGHTNESS_SETTING` is never used --> crates/runtime/pipeline/nodes/video/webcams/src/lib.rs:20:7 | 20 | const BRIGHTNESS_SETTING: &str = "Brightness"; | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
called `map(..).flatten()` on `Iterator`: crates/runtime/pipeline/nodes/connections/protocols/osc/src/output.rs#L180
warning: called `map(..).flatten()` on `Iterator` --> crates/runtime/pipeline/nodes/connections/protocols/osc/src/output.rs:180:14 | 180 | .map(|(key, value)| { | ______________^ 181 | | let mut result = map_data_to_osc(value); 182 | | result.insert(0, OscType::String(key)); 183 | | result 184 | | }) 185 | | .flatten() | |______________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten help: try replacing `map` with `flat_map` and remove the `.flatten()` | 180 ~ .flat_map(|(key, value)| { 181 + let mut result = map_data_to_osc(value); 182 + result.insert(0, OscType::String(key)); 183 + result 184 + }) |
called `map(..).flatten()` on `Iterator`: crates/runtime/pipeline/nodes/connections/protocols/osc/src/output.rs#L177
warning: called `map(..).flatten()` on `Iterator` --> crates/runtime/pipeline/nodes/connections/protocols/osc/src/output.rs:177:59 | 177 | StructuredData::Array(items) => items.into_iter().map(map_data_to_osc).flatten().collect(), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(map_data_to_osc)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten = note: `#[warn(clippy::map_flatten)]` on by default
fields `x`, `y`, `width`, and `height` are never read: crates/runtime/pipeline/nodes/video/screen-capture/src/lib.rs#L251
warning: fields `x`, `y`, `width`, and `height` are never read --> crates/runtime/pipeline/nodes/video/screen-capture/src/lib.rs:251:5 | 250 | struct CaptureArea { | ----------- fields in this struct 251 | x: i32, | ^ 252 | y: i32, | ^ 253 | width: u32, | ^^^^^ 254 | height: u32, | ^^^^^^ | = note: `CaptureArea` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` on by default
unused variable: `area`: crates/runtime/pipeline/nodes/video/screen-capture/src/lib.rs#L281
warning: unused variable: `area` --> crates/runtime/pipeline/nodes/video/screen-capture/src/lib.rs:281:33 | 281 | let image = if let Some(area) = self.area { | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` | = note: `#[warn(unused_variables)]` on by default
this function has too many arguments (8/7): crates/components/fixtures/src/manager.rs#L46
warning: this function has too many arguments (8/7) --> crates/components/fixtures/src/manager.rs:46:5 | 46 | / pub fn add_fixture( 47 | | &self, 48 | | fixture_id: u32, 49 | | name: String, ... | 54 | | configuration: FixtureConfiguration, 55 | | ) { | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
use of `default` to create a unit struct: crates/components/fixtures/src/library.rs#L139
warning: use of `default` to create a unit struct --> crates/components/fixtures/src/library.rs:139:65 | 139 | library_loader: Arc::new(Box::new(EmptyLibraryLoader::default())), | ^^^^^^^^^^^ help: remove this call to `default` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#default_constructed_unit_structs = note: `#[warn(clippy::default_constructed_unit_structs)]` on by default
clamp-like pattern without using clamp function: crates/components/fixtures/src/fixture.rs#L492
warning: clamp-like pattern without using clamp function --> crates/components/fixtures/src/fixture.rs:492:19 | 492 | let clamped = input.min(1.0).max(0.0); | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `input.clamp(0.0, 1.0)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
clamp-like pattern without using clamp function: crates/components/fixtures/src/fixture.rs#L485
warning: clamp-like pattern without using clamp function --> crates/components/fixtures/src/fixture.rs:485:19 | 485 | let clamped = input.min(1.0).max(0.0); | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `input.clamp(0.0, 1.0)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
clamp-like pattern without using clamp function: crates/components/fixtures/src/fixture.rs#L478
warning: clamp-like pattern without using clamp function --> crates/components/fixtures/src/fixture.rs:478:19 | 478 | let clamped = input.min(1.0).max(0.0); | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `input.clamp(0.0, 1.0)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp = note: `#[warn(clippy::manual_clamp)]` on by default
returning the result of a `let` binding from a block: crates/components/fixtures/src/fixture.rs#L177
warning: returning the result of a `let` binding from a block --> crates/components/fixtures/src/fixture.rs:177:9 | 175 | let value = self.adapt_read_limits(control, value); | --------------------------------------------------- unnecessary `let` binding 176 | 177 | value | ^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return help: return the expression directly | 175 ~ 176 | 177 ~ self.adapt_read_limits(control, value) |
returning the result of a `let` binding from a block: crates/components/fixtures/src/fixture.rs#L170
warning: returning the result of a `let` binding from a block --> crates/components/fixtures/src/fixture.rs:170:9 | 168 | let value = self.adapt_write_limits(control, value); | ---------------------------------------------------- unnecessary `let` binding 169 | 170 | value | ^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 168 ~ 169 | 170 ~ self.adapt_write_limits(control, value) |
casting integer literal to `u32` is unnecessary: crates/runtime/pipeline/nodes/video/src/mixer/wgpu_pipeline.rs#L165
warning: casting integer literal to `u32` is unnecessary --> crates/runtime/pipeline/nodes/video/src/mixer/wgpu_pipeline.rs:165:32 | 165 | contents: &(1 as u32).to_ne_bytes(), | ^^^^^^^^^^ help: try: `1_u32` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
trait `OptionExt` is never used: crates/components/fixtures/src/programmer/mod.rs#L713
warning: trait `OptionExt` is never used --> crates/components/fixtures/src/programmer/mod.rs:713:7 | 713 | trait OptionExt<T> { | ^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
associated items `new` and `iter` are never used: crates/runtime/pipeline/nodes/pixels/src/pattern/mod.rs#L182
warning: associated items `new` and `iter` are never used --> crates/runtime/pipeline/nodes/pixels/src/pattern/mod.rs:182:12 | 181 | impl<'a> PixelGrid<'a> { | ---------------------- associated items in this implementation 182 | pub fn new(pixels: &'a mut [(f64, f64, f64)], (width, height): (usize, usize)) -> Self { | ^^^ ... 206 | pub fn iter(&self) -> impl Iterator<Item = &(f64, f64, f64)> { | ^^^^ | = note: `#[warn(dead_code)]` on by default
useless conversion to the same type: `std::string::String`: crates/runtime/pipeline/node/src/settings.rs#L320
warning: useless conversion to the same type: `std::string::String` --> crates/runtime/pipeline/node/src/settings.rs:320:20 | 320 | value: value.into(), | ^^^^^^^^^^^^ help: consider removing `.into()`: `value` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
lint `clippy::derive_hash_xor_eq` has been renamed to `clippy::derived_hash_with_manual_eq`: crates/runtime/pipeline/node/src/settings.rs#L236
warning: lint `clippy::derive_hash_xor_eq` has been renamed to `clippy::derived_hash_with_manual_eq` --> crates/runtime/pipeline/node/src/settings.rs:236:9 | 236 | #[allow(clippy::derive_hash_xor_eq)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `clippy::derived_hash_with_manual_eq` | = note: `#[warn(renamed_and_removed_lints)]` on by default
you should consider adding a `Default` implementation for `WebcamDiscovery`: crates/components/connections/devices/webcams/src/discovery.rs#L46
warning: you should consider adding a `Default` implementation for `WebcamDiscovery` --> crates/components/connections/devices/webcams/src/discovery.rs:46:5 | 46 | / pub fn new() -> Self { 47 | | let (sender, receiver) = unbounded(); 48 | | 49 | | if !nokhwa_check() { ... | 59 | | Self { cameras: receiver } 60 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 45 + impl Default for WebcamDiscovery { 46 + fn default() -> Self { 47 + Self::new() 48 + } 49 + } |
assigning the result of `Clone::clone()` may be inefficient: crates/components/timecode/src/commands/rename_timecode_control.rs#L26
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/components/timecode/src/commands/rename_timecode_control.rs:26:13 | 26 | control.name = self.name.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `control.name.clone_from(&self.name)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
assigning the result of `Clone::clone()` may be inefficient: crates/components/timecode/src/commands/rename_timecode.rs#L26
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/components/timecode/src/commands/rename_timecode.rs:26:13 | 26 | timecode.name = self.name.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `timecode.name.clone_from(&self.name)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
assigning the result of `Clone::clone()` may be inefficient: crates/components/connections/protocols/midi/src/connections.rs#L35
warning: assigning the result of `Clone::clone()` may be inefficient --> crates/components/connections/protocols/midi/src/connections.rs:35:13 | 35 | device.profile = profile.clone(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `clone_from()`: `device.profile.clone_from(&profile)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones = note: `#[warn(clippy::assigning_clones)]` on by default
the borrowed expression implements the required traits: crates/components/media/src/media_handlers/video_handler.rs#L171
warning: the borrowed expression implements the required traits --> crates/components/media/src/media_handlers/video_handler.rs:171:20 | 171 | image.save(&target)?; | ^^^^^^^ help: change this to: `target` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
you seem to be trying to use `&Box<T>`. Consider using just `&T`: crates/components/media/src/media_handlers/audio_handler.rs#L99
warning: you seem to be trying to use `&Box<T>`. Consider using just `&T` --> crates/components/media/src/media_handlers/audio_handler.rs:99:34 | 99 | fn get_channel_count(format: &Box<dyn FormatReader>) -> Option<u32> { | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&dyn FormatReader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box
you seem to be trying to use `&Box<T>`. Consider using just `&T`: crates/components/media/src/media_handlers/audio_handler.rs#L93
warning: you seem to be trying to use `&Box<T>`. Consider using just `&T` --> crates/components/media/src/media_handlers/audio_handler.rs:93:32 | 93 | fn get_sample_rate(format: &Box<dyn FormatReader>) -> Option<u32> { | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&dyn FormatReader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box
you seem to be trying to use `&Box<T>`. Consider using just `&T`: crates/components/media/src/media_handlers/audio_handler.rs#L84
warning: you seem to be trying to use `&Box<T>`. Consider using just `&T` --> crates/components/media/src/media_handlers/audio_handler.rs:84:29 | 84 | fn get_duration(format: &Box<dyn FormatReader>) -> Option<u64> { | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&dyn FormatReader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box = note: `#[warn(clippy::borrowed_box)]` on by default
implementation of inherent method `to_string(&self) -> String` for type `profile::ProfileErrors`: crates/components/connections/protocols/midi/device-profiles/src/profile.rs#L51
warning: implementation of inherent method `to_string(&self) -> String` for type `profile::ProfileErrors` --> crates/components/connections/protocols/midi/device-profiles/src/profile.rs:51:5 | 51 | / pub fn to_string(&self) -> String { 52 | | match self { 53 | | ProfileErrors::PagesLoadingError(err) => format!("Pages loading error: {}", err), 54 | | ProfileErrors::OutputScriptLoadingError(err) => { ... | 61 | | } 62 | | } | |_____^ | = help: implement trait `Display` for type `profile::ProfileErrors` instead = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string = note: `#[warn(clippy::inherent_to_string)]` on by default
all variants have the same postfix: `Error`: crates/components/connections/protocols/midi/device-profiles/src/profile.rs#L43
warning: all variants have the same postfix: `Error` --> crates/components/connections/protocols/midi/device-profiles/src/profile.rs:43:1 | 43 | / pub enum ProfileErrors { 44 | | PagesLoadingError(String), 45 | | OutputScriptLoadingError(String), 46 | | OutputScriptWritingError(String), 47 | | LayoutLoadingError(String), 48 | | } | |_^ | = help: remove the postfixes and use full paths to the variants instead of glob imports = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names = note: `#[warn(clippy::enum_variant_names)]` on by default
you should consider adding a `Default` implementation for `TagId`: crates/components/media/src/documents/mod.rs#L62
warning: you should consider adding a `Default` implementation for `TagId` --> crates/components/media/src/documents/mod.rs:62:5 | 62 | / pub fn new() -> Self { 63 | | TagId(uuid::Uuid::new_v4()) 64 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default help: try adding this | 61 + impl Default for TagId { 62 + fn default() -> Self { 63 + Self::new() 64 + } 65 + } |
you should consider adding a `Default` implementation for `MediaId`: crates/components/media/src/documents/mod.rs#L23
warning: you should consider adding a `Default` implementation for `MediaId` --> crates/components/media/src/documents/mod.rs:23:5 | 23 | / pub fn new() -> Self { 24 | | MediaId(uuid::Uuid::new_v4()) 25 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 22 + impl Default for MediaId { 23 + fn default() -> Self { 24 + Self::new() 25 + } 26 + } |
associated function `transcode_command` is never used: crates/components/media/src/media_handlers/video_handler.rs#L46
warning: associated function `transcode_command` is never used --> crates/components/media/src/media_handlers/video_handler.rs:46:8 | 16 | impl VideoHandler { | ----------------- associated function in this implementation ... 46 | fn transcode_command<I: AsRef<OsStr>, O: AsRef<OsStr>>( | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
this `if let` can be collapsed into the outer `if let`: crates/components/connections/protocols/pro-dj-link/src/discovery.rs#L85
warning: this `if let` can be collapsed into the outer `if let` --> crates/components/connections/protocols/pro-dj-link/src/discovery.rs:85:29 | 85 | / ... if let ProDJLinkDevice::CDJ(cdj) = device { 86 | | ... cdj.speed = packet.speed; 87 | | ... cdj.beat = packet.beat; 88 | | ... if let Err(err) = sender.send(ProDJLinkDevice::CDJ(cdj.clone())) { 89 | | ... tracing::error!("Failed to send CDJ device: {err:?}"); 90 | | ... } 91 | | ... } | |_______________________^ | help: the outer pattern can be modified to include the inner pattern --> crates/components/connections/protocols/pro-dj-link/src/discovery.rs:84:37 | 84 | if let Some(device) = devices.get_mut(&packet.device_id) { | ^^^^^^ replace this binding 85 | if let ProDJLinkDevice::CDJ(cdj) = device { | ^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match = note: `#[warn(clippy::collapsible_match)]` on by default
using `clone` on type `Ipv4Addr` which implements the `Copy` trait: crates/components/connections/protocols/dmx/src/commands/add_artnet_input.rs#L29
warning: using `clone` on type `Ipv4Addr` which implements the `Copy` trait --> crates/components/connections/protocols/dmx/src/commands/add_artnet_input.rs:29:38 | 29 | let input = ArtnetInput::new(self.host.clone(), self.port, self.name.clone())?; | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.host` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
using `clone` on type `[u8; 512]` which implements the `Copy` trait: crates/components/connections/protocols/dmx/src/buffer.rs#L29
warning: using `clone` on type `[u8; 512]` which implements the `Copy` trait --> crates/components/connections/protocols/dmx/src/buffer.rs:29:56 | 29 | self.buffers.iter().map(|entry| (*entry.key(), entry.value().clone())) | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*entry.value()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy = note: `#[warn(clippy::clone_on_copy)]` on by default
field `thread` is never read: crates/components/connections/protocols/dmx/src/inputs/artnet.rs#L80
warning: field `thread` is never read --> crates/components/connections/protocols/dmx/src/inputs/artnet.rs:80:5 | 79 | struct ThreadHandle { | ------------ field in this struct 80 | thread: JoinHandle<()>, | ^^^^^^ | = note: `ThreadHandle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` on by default
returning the result of a `let` binding from a block: crates/runtime/wgpu/src/context.rs#L85
warning: returning the result of a `let` binding from a block --> crates/runtime/wgpu/src/context.rs:85:9 | 74 | / let texture = self.device.create_texture(&wgpu::TextureDescriptor { 75 | | label, 76 | | size, 77 | | mip_level_count: 1, ... | 82 | | view_formats: &[format], 83 | | }); | |___________- unnecessary `let` binding 84 | 85 | texture | ^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 74 ~ 75 | 76 ~ self.device.create_texture(&wgpu::TextureDescriptor { 77 + label, 78 + size, 79 + mip_level_count: 1, 80 + sample_count: 1, 81 + dimension: wgpu::TextureDimension::D2, 82 + format, 83 + usage, 84 + view_formats: &[format], 85 + }) |
very complex type used. Consider factoring parts into `type` definitions: crates/runtime/commander/src/extractors/sub_command.rs#L11
warning: very complex type used. Consider factoring parts into `type` definitions --> crates/runtime/commander/src/extractors/sub_command.rs:11:39 | 11 | pub fn apply(self, command: T) -> anyhow::Result<(T::Result, (T, T::State))> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
clamp-like pattern without using clamp function: crates/util/src/conversion.rs#L8
warning: clamp-like pattern without using clamp function --> crates/util/src/conversion.rs:8:9 | 8 | (self * u8::MAX as f64).min(255.).max(0.).floor() as u8 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(self * u8::MAX as f64).clamp(0., 255.)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp = note: `#[warn(clippy::manual_clamp)]` on by default
bound is defined in more than one place: crates/runtime/module/src/lib.rs#L97
warning: bound is defined in more than one place --> crates/runtime/module/src/lib.rs:97:24 | 97 | fn block_in_thread<A: 'static, F: Future + 'static>(&self, future_action: A) | ^ 98 | where 99 | A: FnOnce() -> F + Send; | ^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations = note: `#[warn(clippy::multiple_bound_locations)]` on by default
unneeded unit expression: crates/runtime/debug-ui/src/noop.rs#L34
warning: unneeded unit expression --> crates/runtime/debug-ui/src/noop.rs:34:9 | 34 | () | ^^ help: remove the final `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit
unneeded unit expression: crates/runtime/debug-ui/src/noop.rs#L13
warning: unneeded unit expression --> crates/runtime/debug-ui/src/noop.rs:13:9 | 13 | () | ^^ help: remove the final `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit = note: `#[warn(clippy::unused_unit)]` on by default
field `0` is never read: crates/util/bus/src/lib.rs#L134
warning: field `0` is never read --> crates/util/bus/src/lib.rs:134:37 | 134 | struct SubscriberStream<T: 'static>(Arc<flume::Sender<T>>, RecvStream<'static, T>); | ---------------- ^^^^^^^^^^^^^^^^^^^^^ | | | field in this struct | = note: `#[warn(dead_code)]` on by default help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 134 | struct SubscriberStream<T: 'static>((), RecvStream<'static, T>); | ~~