[INFO] cloning repository https://github.com/Skynse/cutio
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Skynse/cutio" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] be4e423443df1b05a4982e91a22b3d170c9825d4
[INFO] checking Skynse/cutio against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkynse%2Fcutio" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Skynse/cutio
[INFO] finished tweaking git repo https://github.com/Skynse/cutio
[INFO] tweaked toml for git repo https://github.com/Skynse/cutio written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Skynse/cutio on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Skynse/cutio already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded target-lexicon v0.13.2
[INFO] [stderr]   Downloaded rgb v0.8.51
[INFO] [stderr]   Downloaded cfg-expr v0.20.1
[INFO] [stderr]   Downloaded system-deps v7.0.5
[INFO] [stderr]   Downloaded gstreamer-pbutils v0.23.5
[INFO] [stderr]   Downloaded gstreamer-pbutils-sys v0.23.5
[INFO] [stderr]   Downloaded gstreamer-app-sys v0.23.5
[INFO] [stderr]   Downloaded gstreamer-app v0.23.5
[INFO] [stderr]   Downloaded arboard v3.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177
[INFO] running `Command { std: "docker" "start" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling target-lexicon v0.13.2
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.9
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking option-operations v0.5.0
[INFO] [stderr]     Checking avif-serialize v0.8.5
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]     Checking muldiv v1.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking rgb v0.8.51
[INFO] [stderr]     Checking ab_glyph v0.2.30
[INFO] [stderr]     Checking zune-jpeg v0.4.19
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking async-fs v2.1.2
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking atomic_refcell v0.1.13
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking epaint v0.31.1
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]     Checking accesskit_consumer v0.26.0
[INFO] [stderr]     Checking lru v0.16.0
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]    Compiling cfg-expr v0.20.1
[INFO] [stderr]    Compiling wayland-backend v0.3.10
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking egui v0.31.1
[INFO] [stderr]     Checking webbrowser v1.0.5
[INFO] [stderr]     Checking wayland-client v0.31.10
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling zvariant_derive v5.6.0
[INFO] [stderr]    Compiling glib-macros v0.20.12
[INFO] [stderr]    Compiling system-deps v7.0.5
[INFO] [stderr]     Checking egui_glow v0.31.1
[INFO] [stderr]     Checking wayland-protocols v0.32.8
[INFO] [stderr]     Checking wayland-cursor v0.31.10
[INFO] [stderr]    Compiling glib-sys v0.20.10
[INFO] [stderr]    Compiling gobject-sys v0.20.10
[INFO] [stderr]    Compiling gstreamer-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-base-sys v0.23.6
[INFO] [stderr]    Compiling gio-sys v0.20.10
[INFO] [stderr]    Compiling gstreamer-video-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-audio-sys v0.23.6
[INFO] [stderr]    Compiling gstreamer-pbutils-sys v0.23.5
[INFO] [stderr]    Compiling gstreamer-app-sys v0.23.5
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]    Compiling zvariant v5.6.0
[INFO] [stderr]     Checking polling v3.8.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking async-io v2.4.1
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking arboard v3.6.0
[INFO] [stderr]     Checking egui_extras v0.31.1
[INFO] [stderr]     Checking async-signal v0.2.11
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking async-process v2.3.1
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking zbus_names v4.2.0
[INFO] [stderr]     Checking glib v0.20.12
[INFO] [stderr]     Checking zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking zbus-lockstep v0.4.4
[INFO] [stderr]    Compiling zbus_macros v5.7.1
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.8
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.8
[INFO] [stderr]     Checking zbus v5.7.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking winit v0.30.11
[INFO] [stderr]     Checking gstreamer v0.23.7
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.10.1
[INFO] [stderr]     Checking glutin-winit v0.5.0
[INFO] [stderr]     Checking ashpd v0.11.0
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.13.1
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking egui-winit v0.31.1
[INFO] [stderr]     Checking eframe v0.31.1
[INFO] [stderr]     Checking rfd v0.15.3
[INFO] [stderr]     Checking gstreamer-base v0.23.6
[INFO] [stderr]     Checking gstreamer-video v0.23.6
[INFO] [stderr]     Checking gstreamer-audio v0.23.6
[INFO] [stderr]     Checking gstreamer-app v0.23.5
[INFO] [stderr]     Checking gstreamer-pbutils v0.23.5
[INFO] [stderr]     Checking cutio v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AudioMetadata` and `VideoMetadata`
[INFO] [stdout]  --> src/ops/clip_ops.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, AudioMetadata, Clip, VideoClip, VideoMetadata};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBuffer`
[INFO] [stdout]  --> src/renderer/time_player_bridge.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::renderer::timeline_renderer::{AudioBuffer, TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/types/media_library.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         use std::process::Command;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/ui/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/ui/app.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::timeline::{self, Timeline};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> src/ui/medialib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeKind`
[INFO] [stdout]  --> src/ui/timeline_widget.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::egui::{self, StrokeKind};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::video_player::VideoPlayer`
[INFO] [stdout]  --> src/ui/track_widget.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ui::video_player::VideoPlayer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VideoFrame`
[INFO] [stdout]  --> src/ui/video_player.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::renderer::timeline_renderer::{TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioMetadata` and `VideoMetadata`
[INFO] [stdout]  --> src/ops/clip_ops.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, AudioMetadata, Clip, VideoClip, VideoMetadata};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^                   ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Track` and `VideoTrack`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::track::{Track, VideoTrack};
[INFO] [stdout]    |                           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBuffer`
[INFO] [stdout]  --> src/renderer/time_player_bridge.rs:1:42
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::renderer::timeline_renderer::{AudioBuffer, TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]   --> src/types/media_library.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         use std::process::Command;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/ui/app.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/ui/app.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::timeline::{self, Timeline};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]  --> src/ui/medialib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::GenericImageView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeKind`
[INFO] [stdout]  --> src/ui/timeline_widget.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use eframe::egui::{self, StrokeKind};
[INFO] [stdout]   |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::video_player::VideoPlayer`
[INFO] [stdout]  --> src/ui/track_widget.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ui::video_player::VideoPlayer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VideoFrame`
[INFO] [stdout]  --> src/ui/video_player.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::renderer::timeline_renderer::{TimelineRenderer, VideoFrame};
[INFO] [stdout]   |                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Track` and `VideoTrack`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::track::{Track, VideoTrack};
[INFO] [stdout]    |                           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:288:63
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:302:67
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   1.0,
[INFO] [stdout]     |                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:436:59
[INFO] [stdout]     |
[INFO] [stdout] 436 | ...                   egui::Stroke::new(1.0, border_color),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:498:55
[INFO] [stdout]     |
[INFO] [stdout] 498 | ...                   egui::Stroke::new(1.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |                     egui::Stroke::new(1.0, egui::Color32::from_gray(120)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:822:39
[INFO] [stdout]     |
[INFO] [stdout] 822 |                     egui::Stroke::new(2.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:854:35
[INFO] [stdout]     |
[INFO] [stdout] 854 |                 egui::Stroke::new(2.0, egui::Color32::RED),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Clip`
[INFO] [stdout]  --> src/types/track.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, Clip, VideoClip};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:288:63
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:302:67
[INFO] [stdout]     |
[INFO] [stdout] 302 | ...                   egui::Stroke::new(2.0, egui::Color32::YELLOW),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   1.0,
[INFO] [stdout]     |                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:436:59
[INFO] [stdout]     |
[INFO] [stdout] 436 | ...                   egui::Stroke::new(1.0, border_color),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:498:55
[INFO] [stdout]     |
[INFO] [stdout] 498 | ...                   egui::Stroke::new(1.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |                     egui::Stroke::new(1.0, egui::Color32::from_gray(120)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:822:39
[INFO] [stdout]     |
[INFO] [stdout] 822 |                     egui::Stroke::new(2.0, egui::Color32::WHITE),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/timeline_widget.rs:854:35
[INFO] [stdout]     |
[INFO] [stdout] 854 |                 egui::Stroke::new(2.0, egui::Color32::RED),
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Clip`
[INFO] [stdout]  --> src/types/track.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::media::{AudioClip, Clip, VideoClip};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:843:9
[INFO] [stdout]     |
[INFO] [stdout] 843 |         events: &mut Vec<TimelineEvent>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_pos`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |                     DragState::Playhead { start_pos } => {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: try ignoring the field: `start_pos: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_idx`
[INFO] [stdout]   --> src/ui/track_widget.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     track_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_clip`
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let video_clip = VideoClip {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_clip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline_arc`
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let timeline_arc = Arc::new(RwLock::new(timeline.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cut_clip_at` is never used
[INFO] [stdout]  --> src/ops/clip_ops.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn cut_clip_at<T>(clip: &T, playhead: f64) -> Option<(T, T)>
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ClipSplit` is never used
[INFO] [stdout]   --> src/ops/clip_ops.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub trait ClipSplit: Clip {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_gst_init` is never used
[INFO] [stdout]  --> src/ops/video_funcs.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn ensure_gst_init() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_video_gst` is never used
[INFO] [stdout]   --> src/ops/video_funcs.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn trim_video_gst(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concat_videos_gst` is never used
[INFO] [stdout]   --> src/ops/video_funcs.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn concat_videos_gst(input_files: &[&str], output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_audio_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn trim_audio_gst(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix_audio_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn mix_audio_gst(inputs: &[&str], output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mux_audio_video_gst` is never used
[INFO] [stdout]    --> src/ops/video_funcs.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn mux_audio_video_gst(video: &str, audio: &str, output: &str) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play` and `pause` are never used
[INFO] [stdout]   --> src/renderer/time_player_bridge.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> TimelinePlayerBridge<'a> {
[INFO] [stdout]    | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `frame_number` are never read
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub timestamp: f64, // Time in seconds
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub frame_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AudioBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_cache`, `decode_video_frame_with_bus`, `get_video_duration`, `validate_timestamp`, and `decode_video_frame_enhanced` are never used
[INFO] [stdout]    --> src/renderer/timeline_renderer.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl TimelineRenderer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn decode_video_frame_with_bus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn get_video_duration(path: &str) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     fn validate_timestamp(path: &str, timestamp: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     fn decode_video_frame_enhanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Clip` is never used
[INFO] [stdout]  --> src/types/media.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Clip {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_by_filename` is never used
[INFO] [stdout]    --> src/types/media_library.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl MediaLibrary {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn find_by_filename(&self, name: &str) -> Option<&MediaItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loop_start`, `loop_end`, and `volume` are never read
[INFO] [stdout]  --> src/types/playback_state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct PlaybackState {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub loop_start: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 6 |     pub loop_end: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub volume: f64,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `save_to_file` and `load_from_file` are never used
[INFO] [stdout]   --> src/types/project.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     /// Save the project to a JSON file at the given path.
[INFO] [stdout] 23 |     pub fn save_to_file(&self, path: &str) -> std::io::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn load_from_file(path: &str) -> std::io::Result<Project> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/project.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl Project {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 79 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_video_clips_at` is never used
[INFO] [stdout]   --> src/types/timeline.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 14 |     /// Returns all active video clips at a specific time.
[INFO] [stdout] 15 |     pub fn active_video_clips_at(&self, time: f64) -> Vec<&VideoClip> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `split_clip_at_playhead` is never used
[INFO] [stdout]   --> src/types/timeline.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 35 |     pub fn split_clip_at_playhead(&mut self, track_id: &str, playhead: f64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `clips_in_range`, and `clips_on_track` are never used
[INFO] [stdout]    --> src/types/timeline.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl Timeline {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  84 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn clips_on_track(&self, track_id: &str) -> Option<Vec<ActiveClip>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_video` is never used
[INFO] [stdout]    --> src/types/timeline.rs:131:36
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ---------- method in this implementation
[INFO] [stdout] 131 |                             pub fn is_video(&self) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active_at` is never used
[INFO] [stdout]    --> src/types/timeline.rs:137:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         -------------- method in this implementation
[INFO] [stdout] 137 |                             pub fn is_active_at(&self, time: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackType` is never used
[INFO] [stdout]   --> src/types/track.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum TrackType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/app.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CutioApp {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(state: AppState) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cached_duration` is never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct TimelineState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub cached_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ResizeLeft`, `ResizeRight`, and `Selection` are never constructed
[INFO] [stdout]   --> src/ui/timeline_widget.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum DragState {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     ResizeLeft {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ResizeRight {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Selection {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `new_start_time` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ClipMoved {
[INFO] [stdout]    |     --------- fields in this variant
[INFO] [stdout] 90 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 91 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 92 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, `new_start_time`, and `new_duration` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     ClipResized {
[INFO] [stdout]    |     ----------- fields in this variant
[INFO] [stdout] 96 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 97 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 98 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 99 |         new_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `multi_select` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ClipSelected {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 103 |         clip_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 104 |         track_idx: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 105 |         multi_select: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     ClipDoubleClicked { clip_id: String, track_idx: usize },
[INFO] [stdout]     |     -----------------   ^^^^^^^          ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 110 |     RightClicked { time: f64, track_idx: Option<usize> },
[INFO] [stdout]     |     ------------   ^^^^       ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_waveforms` is never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct TimelineWidget<'a> {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |     show_waveforms: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snap_enabled` and `show_waveforms` are never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl<'a> TimelineWidget<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn snap_enabled(mut self, enabled: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn show_waveforms(mut self, show: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESIZE_HANDLE_WIDTH` is never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |         const RESIZE_HANDLE_WIDTH: f32 = 8.0;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `track_widget` is never used
[INFO] [stdout]   --> src/ui/track_widget.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn track_widget(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timeline`, `renderer`, `width`, `height`, and `frame_rate` are never read
[INFO] [stdout]   --> src/ui/video_player.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VideoPlayer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 11 |     pub timeline: Arc<RwLock<Timeline>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub renderer: TimelineRenderer,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub frame_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_playback` is never used
[INFO] [stdout]   --> src/ui/video_player.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VideoPlayer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_playback(&mut self, is_playing: bool, ctx: &egui::Context) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ^^^^^-----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `Track` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         ^^^^^---------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `VideoClip` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:843:9
[INFO] [stdout]     |
[INFO] [stdout] 843 |         events: &mut Vec<TimelineEvent>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_pos`
[INFO] [stdout]    --> src/ui/timeline_widget.rs:957:43
[INFO] [stdout]     |
[INFO] [stdout] 957 |                     DragState::Playhead { start_pos } => {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: try ignoring the field: `start_pos: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track_idx`
[INFO] [stdout]   --> src/ui/track_widget.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     track_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `video_clip`
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let video_clip = VideoClip {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_clip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeline_arc`
[INFO] [stdout]   --> src/main.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let timeline_arc = Arc::new(RwLock::new(timeline.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeline_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play` and `pause` are never used
[INFO] [stdout]   --> src/renderer/time_player_bridge.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> TimelinePlayerBridge<'a> {
[INFO] [stdout]    | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `frame_number` are never read
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub timestamp: f64, // Time in seconds
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub frame_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]   --> src/renderer/timeline_renderer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AudioBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_cache`, `decode_video_frame_with_bus`, `get_video_duration`, `validate_timestamp`, and `decode_video_frame_enhanced` are never used
[INFO] [stdout]    --> src/renderer/timeline_renderer.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl TimelineRenderer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn decode_video_frame_with_bus(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn get_video_duration(path: &str) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     fn validate_timestamp(path: &str, timestamp: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     fn decode_video_frame_enhanced(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `asset_path` is never used
[INFO] [stdout]  --> src/types/media.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait Clip {
[INFO] [stdout]   |           ---- method in this trait
[INFO] [stdout] 4 |     fn id(&self) -> &str;
[INFO] [stdout] 5 |     fn asset_path(&self) -> &str;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loop_start`, `loop_end`, and `volume` are never read
[INFO] [stdout]  --> src/types/playback_state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct PlaybackState {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub loop_start: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 6 |     pub loop_end: Option<f64>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub volume: f64,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlaybackState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/project.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl Project {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 79 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_video_clips_at` is never used
[INFO] [stdout]   --> src/types/timeline.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Timeline {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 14 |     /// Returns all active video clips at a specific time.
[INFO] [stdout] 15 |     pub fn active_video_clips_at(&self, time: f64) -> Vec<&VideoClip> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_video` is never used
[INFO] [stdout]    --> src/types/timeline.rs:131:36
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ---------- method in this implementation
[INFO] [stdout] 131 |                             pub fn is_video(&self) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_active_at` is never used
[INFO] [stdout]    --> src/types/timeline.rs:137:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         -------------- method in this implementation
[INFO] [stdout] 137 |                             pub fn is_active_at(&self, time: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackType` is never used
[INFO] [stdout]   --> src/types/track.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum TrackType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/app.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CutioApp {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(state: AppState) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cached_duration` is never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct TimelineState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub cached_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ResizeLeft`, `ResizeRight`, and `Selection` are never constructed
[INFO] [stdout]   --> src/ui/timeline_widget.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum DragState {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     ResizeLeft {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     ResizeRight {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Selection {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DragState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `new_start_time` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ClipMoved {
[INFO] [stdout]    |     --------- fields in this variant
[INFO] [stdout] 90 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 91 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 92 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, `new_start_time`, and `new_duration` are never read
[INFO] [stdout]   --> src/ui/timeline_widget.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     ClipResized {
[INFO] [stdout]    |     ----------- fields in this variant
[INFO] [stdout] 96 |         clip_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 97 |         track_idx: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 98 |         new_start_time: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 99 |         new_duration: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id`, `track_idx`, and `multi_select` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ClipSelected {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] 103 |         clip_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 104 |         track_idx: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 105 |         multi_select: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_id` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:108:25
[INFO] [stdout]     |
[INFO] [stdout] 108 |     ClipDoubleClicked { clip_id: String, track_idx: usize },
[INFO] [stdout]     |     -----------------   ^^^^^^^          ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `track_idx` are never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 110 |     RightClicked { time: f64, track_idx: Option<usize> },
[INFO] [stdout]     |     ------------   ^^^^       ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TimelineEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_waveforms` is never read
[INFO] [stdout]    --> src/ui/timeline_widget.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct TimelineWidget<'a> {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |     show_waveforms: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snap_enabled` and `show_waveforms` are never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl<'a> TimelineWidget<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn snap_enabled(mut self, enabled: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn show_waveforms(mut self, show: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESIZE_HANDLE_WIDTH` is never used
[INFO] [stdout]    --> src/ui/timeline_widget.rs:189:15
[INFO] [stdout]     |
[INFO] [stdout] 189 |         const RESIZE_HANDLE_WIDTH: f32 = 8.0;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `track_widget` is never used
[INFO] [stdout]   --> src/ui/track_widget.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn track_widget(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timeline`, `renderer`, `width`, `height`, and `frame_rate` are never read
[INFO] [stdout]   --> src/ui/video_player.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VideoPlayer {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 11 |     pub timeline: Arc<RwLock<Timeline>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub renderer: TimelineRenderer,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub frame_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_playback` is never used
[INFO] [stdout]   --> src/ui/video_player.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VideoPlayer {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_playback(&mut self, is_playing: bool, ctx: &egui::Context) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 130 |                         impl Track {
[INFO] [stdout]     |                         ^^^^^-----
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `Track` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/types/timeline.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub fn clips_in_range(&self, start: f64, end: f64) -> Vec<ActiveClip> {
[INFO] [stdout]     |     --------------------------------------------------------------------- move the `impl` block outside of this method `clips_in_range`
[INFO] [stdout] ...
[INFO] [stdout] 136 |                         impl VideoClip {
[INFO] [stdout]     |                         ^^^^^---------
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `VideoClip` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `egui_extras`
[INFO] [stderr]   --> Cargo.toml:14:15
[INFO] [stderr]    |
[INFO] [stderr] 14 | [dependencies.egui_extras]
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `egui_extras`
[INFO] [stderr] warning: unused dependency `lru`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | lru = "0.16.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `lru`
[INFO] [stderr] warning: unused dependency `tempfile`
[INFO] [stderr]   --> Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | tempfile = "3.20.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tempfile`
[INFO] [stderr] warning: unused dependency `uuid`
[INFO] [stderr]   --> Cargo.toml:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | uuid = "1.17.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `uuid`
[INFO] [stderr] warning: `cutio` (manifest) generated 4 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.02s
[INFO] running `Command { std: "docker" "inspect" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177", kill_on_drop: false }`
[INFO] [stdout] 5f95dbb0b2e267d5d9868178faf193bd0500e4c7ab3b808f892972bec92e9177
