[INFO] cloning repository https://github.com/ctrngk/google_photos_fix_metadata
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ctrngk/google_photos_fix_metadata" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fctrngk%2Fgoogle_photos_fix_metadata", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fctrngk%2Fgoogle_photos_fix_metadata'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0cc98fdd38a286cb101e8f2f600e502a1be81775
[INFO] checking ctrngk/google_photos_fix_metadata against try#2b39fe756f52bc2825bf5b2bfc385cab922dae10 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fctrngk%2Fgoogle_photos_fix_metadata" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ctrngk/google_photos_fix_metadata
[INFO] finished tweaking git repo https://github.com/ctrngk/google_photos_fix_metadata
[INFO] tweaked toml for git repo https://github.com/ctrngk/google_photos_fix_metadata written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ctrngk/google_photos_fix_metadata on toolchain 2b39fe756f52bc2825bf5b2bfc385cab922dae10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ctrngk/google_photos_fix_metadata 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" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 77304a3dc392805f152dc1e2b4fa691e5af5c2364ffd5a1aef62661736e57dea
[INFO] running `Command { std: "docker" "start" "-a" "77304a3dc392805f152dc1e2b4fa691e5af5c2364ffd5a1aef62661736e57dea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "77304a3dc392805f152dc1e2b4fa691e5af5c2364ffd5a1aef62661736e57dea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77304a3dc392805f152dc1e2b4fa691e5af5c2364ffd5a1aef62661736e57dea", kill_on_drop: false }`
[INFO] [stdout] 77304a3dc392805f152dc1e2b4fa691e5af5c2364ffd5a1aef62661736e57dea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d0dbabb636d311f094951064f1f8454795f3412ff0c887a659b956fd3a715e20
[INFO] running `Command { std: "docker" "start" "-a" "d0dbabb636d311f094951064f1f8454795f3412ff0c887a659b956fd3a715e20", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling zerocopy v0.8.0-alpha.6
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.0
[INFO] [stderr]     Checking anstyle-query v1.1.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking colorchoice v1.0.1
[INFO] [stderr]     Checking anstyle v1.0.7
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]    Compiling serde_json v1.0.118
[INFO] [stderr]     Checking clap_lex v0.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking anstyle-parse v0.2.4
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking anstream v0.6.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking clap_builder v4.5.7
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking filetime v0.2.23
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking rand_core v0.9.0-alpha.1
[INFO] [stderr]     Checking rand_chacha v0.9.0-alpha.1
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]     Checking rand v0.9.0-alpha.1
[INFO] [stderr]     Checking clap v4.5.7
[INFO] [stderr]     Checking regex v1.10.5
[INFO] [stderr]     Checking google_photos_fix_metadata v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `new_dest` is never read
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut new_dest = json_file_path.to_path_buf();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let extension = json_file_path.extension().unwrap_or_else(|| OsStr::new("")).to_str().unwrap_or("");
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_dest` is never read
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut new_dest = json_file_path.to_path_buf();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let extension = json_file_path.extension().unwrap_or_else(|| OsStr::new("")).to_str().unwrap_or("");
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_file_modification_time` is never used
[INFO] [stdout]   --> src/file_utils.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) fn restore_file_modification_time(file_path: &str, metadata: fs::Metadata) -> std::io::Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_file_modification_time` is never used
[INFO] [stdout]   --> src/file_utils.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) fn restore_file_modification_time(file_path: &str, metadata: fs::Metadata) -> std::io::Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/metadata_utils.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/metadata_utils.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::{Command, ExitStatus, Stdio};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::update_media_metadata_from_json`
[INFO] [stdout]  --> src/metadata_utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::update_media_metadata_from_json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/metadata_utils.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/metadata_utils.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::{Command, ExitStatus, Stdio};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::update_media_metadata_from_json`
[INFO] [stdout]  --> src/metadata_utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::update_media_metadata_from_json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]   --> src/main.rs:48:41
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let naive_datetime = NaiveDateTime::from_timestamp(timestamp, 0);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]   --> src/main.rs:49:49
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let datetime_utc: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]   --> src/main.rs:48:41
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let naive_datetime = NaiveDateTime::from_timestamp(timestamp, 0);
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]   --> src/main.rs:49:49
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let datetime_utc: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_metadata`
[INFO] [stdout]    --> src/metadata_utils.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let original_metadata = fs::metadata(file_path).expect("Failed to get file metadata");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exported_status`
[INFO] [stdout]    --> src/metadata_utils.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |             let exported_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exported_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delete_status`
[INFO] [stdout]    --> src/metadata_utils.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let delete_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delete_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_status`
[INFO] [stdout]    --> src/metadata_utils.rs:226:17
[INFO] [stdout]     |
[INFO] [stdout] 226 |             let add_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_metadata`
[INFO] [stdout]    --> src/metadata_utils.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let original_metadata = fs::metadata(file_path).expect("Failed to get file metadata");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exported_status`
[INFO] [stdout]    --> src/metadata_utils.rs:204:17
[INFO] [stdout]     |
[INFO] [stdout] 204 |             let exported_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exported_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delete_status`
[INFO] [stdout]    --> src/metadata_utils.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let delete_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delete_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_status`
[INFO] [stdout]    --> src/metadata_utils.rs:226:17
[INFO] [stdout]     |
[INFO] [stdout] 226 |             let add_status = Command::new("exiftool")
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_dest` is never read
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut new_dest = json_file_path.to_path_buf();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let extension = json_file_path.extension().unwrap_or_else(|| OsStr::new("")).to_str().unwrap_or("");
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_dest` is never read
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let mut new_dest = json_file_path.to_path_buf();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let extension = json_file_path.extension().unwrap_or_else(|| OsStr::new("")).to_str().unwrap_or("");
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata_str`
[INFO] [stdout]   --> src/main.rs:74:21
[INFO] [stdout]    |
[INFO] [stdout] 74 |         if let Some(metadata_str) = get_metadata_from_json(&file) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata_str`
[INFO] [stdout]   --> src/main.rs:74:21
[INFO] [stdout]    |
[INFO] [stdout] 74 |         if let Some(metadata_str) = get_metadata_from_json(&file) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathComponents` is never constructed
[INFO] [stdout]   --> src/file_utils.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct PathComponents {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_path_components` is never used
[INFO] [stdout]   --> src/file_utils.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn split_path_components(path: &Path) -> PathComponents {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_file_name_str_position` is never used
[INFO] [stdout]   --> src/fix_stupid_google_photos_takeout_naming_bug.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn swap_file_name_str_position(file_name: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_position` is never used
[INFO] [stdout]   --> src/fix_stupid_google_photos_takeout_naming_bug.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn swap_position(json_file_path: &Path) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_json_suffix` is never used
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn strip_json_suffix(json_file_path: &Path) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_new_image_file_path_by_swap_position` is never used
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn get_new_image_file_path_by_swap_position(json_file_path: &Path) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     add_metadata_wrapper(file.path().to_str().unwrap(), &formatted_str);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     let _ = add_metadata_wrapper(file.path().to_str().unwrap(), &formatted_str);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathComponents` is never constructed
[INFO] [stdout]   --> src/file_utils.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct PathComponents {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_path_components` is never used
[INFO] [stdout]   --> src/file_utils.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn split_path_components(path: &Path) -> PathComponents {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_file_name_str_position` is never used
[INFO] [stdout]   --> src/fix_stupid_google_photos_takeout_naming_bug.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn swap_file_name_str_position(file_name: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_position` is never used
[INFO] [stdout]   --> src/fix_stupid_google_photos_takeout_naming_bug.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn swap_position(json_file_path: &Path) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `strip_json_suffix` is never used
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn strip_json_suffix(json_file_path: &Path) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_new_image_file_path_by_swap_position` is never used
[INFO] [stdout]    --> src/fix_stupid_google_photos_takeout_naming_bug.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn get_new_image_file_path_by_swap_position(json_file_path: &Path) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     add_metadata_wrapper(file.path().to_str().unwrap(), &formatted_str);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     let _ = add_metadata_wrapper(file.path().to_str().unwrap(), &formatted_str);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |             add_metadata_with_exiftool(&new_image_file_path, value);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 |             let _ = add_metadata_with_exiftool(&new_image_file_path, value);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |             restore_file_modification_time(image_file_path, original_metadata);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 27 |             let _ = restore_file_modification_time(image_file_path, original_metadata);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_file_path);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 32 |             let _ = sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_file_path);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_metadata_modification_from_DateTimeOriginal_and_CreateDate` should have a snake case name
[INFO] [stdout]    --> src/metadata_utils.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_path: &str) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `sync_metadata_modification_from_date_time_original_and_create_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |             add_metadata_with_exiftool(&new_image_file_path, value);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 |             let _ = add_metadata_with_exiftool(&new_image_file_path, value);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |             restore_file_modification_time(image_file_path, original_metadata);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 27 |             let _ = restore_file_modification_time(image_file_path, original_metadata);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/metadata_utils.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_file_path);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 32 |             let _ = sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_file_path);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_metadata_modification_from_DateTimeOriginal_and_CreateDate` should have a snake case name
[INFO] [stdout]    --> src/metadata_utils.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn sync_metadata_modification_from_DateTimeOriginal_and_CreateDate(image_path: &str) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `sync_metadata_modification_from_date_time_original_and_create_date`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.05s
[INFO] running `Command { std: "docker" "inspect" "d0dbabb636d311f094951064f1f8454795f3412ff0c887a659b956fd3a715e20", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0dbabb636d311f094951064f1f8454795f3412ff0c887a659b956fd3a715e20", kill_on_drop: false }`
[INFO] [stdout] d0dbabb636d311f094951064f1f8454795f3412ff0c887a659b956fd3a715e20
