[INFO] cloning repository https://github.com/pointzerotwo/sf_bulk_utility
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pointzerotwo/sf_bulk_utility" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpointzerotwo%2Fsf_bulk_utility", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpointzerotwo%2Fsf_bulk_utility'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f91e7608bed1c3191b3adf91f10c1556f195b931
[INFO] checking pointzerotwo/sf_bulk_utility against try#3fada14ee01d755dc8076e611f11bf65b28ffd21 for pr-154971-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpointzerotwo%2Fsf_bulk_utility" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pointzerotwo/sf_bulk_utility
[INFO] finished tweaking git repo https://github.com/pointzerotwo/sf_bulk_utility
[INFO] tweaked toml for git repo https://github.com/pointzerotwo/sf_bulk_utility written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pointzerotwo/sf_bulk_utility on toolchain 3fada14ee01d755dc8076e611f11bf65b28ffd21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3fada14ee01d755dc8076e611f11bf65b28ffd21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pointzerotwo/sf_bulk_utility 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" "+3fada14ee01d755dc8076e611f11bf65b28ffd21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3fada14ee01d755dc8076e611f11bf65b28ffd21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e80b4e20ef5b4d368b560b2f3df167c5f4db4e0c09677555d977b76d50e2b238
[INFO] running `Command { std: "docker" "start" "-a" "e80b4e20ef5b4d368b560b2f3df167c5f4db4e0c09677555d977b76d50e2b238", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e80b4e20ef5b4d368b560b2f3df167c5f4db4e0c09677555d977b76d50e2b238", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e80b4e20ef5b4d368b560b2f3df167c5f4db4e0c09677555d977b76d50e2b238", kill_on_drop: false }`
[INFO] [stdout] e80b4e20ef5b4d368b560b2f3df167c5f4db4e0c09677555d977b76d50e2b238
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3fada14ee01d755dc8076e611f11bf65b28ffd21" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9009d817e3d4c8098cc81af20f1288e341d3fc0ffc1142c048953822877f5c38
[INFO] running `Command { std: "docker" "start" "-a" "9009d817e3d4c8098cc81af20f1288e341d3fc0ffc1142c048953822877f5c38", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling cc v1.2.24
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling hashbrown v0.15.3
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking libloading v0.8.8
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling winnow v0.7.10
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling wayland-sys v0.31.6
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]    Compiling xml-rs v0.8.26
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]    Compiling wayland-backend v0.3.10
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling wayland-client v0.31.10
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling toml v0.8.22
[INFO] [stderr]    Compiling wayland-scanner v0.31.6
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking bytemuck v1.23.0
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking font-types v0.7.3
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking palette v0.7.6
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]    Compiling unicode-general-category v0.6.0
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking read-fonts v0.22.7
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]    Compiling wayland-sys v0.30.1
[INFO] [stderr]     Checking ttf-parser v0.19.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking naga v0.12.3
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking gpu-alloc v0.5.4
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking iced_core v0.10.0
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking ash v0.37.3+1.3.251
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking polling v3.8.0
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking memmap2 v0.6.2
[INFO] [stderr]    Compiling wayland-backend v0.1.2
[INFO] [stderr]     Checking wgpu-types v0.16.1
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.1.0
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking skrifa v0.22.3
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]     Checking unicode-ccc v0.1.2
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]     Checking mutate_once v0.1.1
[INFO] [stderr]     Checking profiling v1.0.16
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking kamadak-exif v0.5.5
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking fontdb v0.14.1
[INFO] [stderr]     Checking rustybuzz v0.8.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking wayland-protocols v0.32.8
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling quick-xml v0.28.2
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]     Checking rangemap v1.5.1
[INFO] [stderr]     Checking aliasable v0.1.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling wayland-scanner v0.30.1
[INFO] [stderr]     Checking swash v0.1.19
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.10
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]     Checking iced_graphics v0.9.0
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]    Compiling enumflags2_derive v0.7.11
[INFO] [stderr]    Compiling softbuffer v0.2.1
[INFO] [stderr]     Checking x11rb-protocol v0.11.1
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]     Checking cosmic-text v0.9.0
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.8
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking wgpu-hal v0.16.2
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]     Checking enumflags2 v0.7.11
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking wayland-client v0.30.2
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking etagere v0.2.15
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]     Checking lru v0.11.1
[INFO] [stderr]     Checking tiny-skia-path v0.10.0
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking x11rb v0.11.1
[INFO] [stderr]     Checking wgpu-core v0.16.1
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking tiny-skia v0.10.0
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking wgpu v0.16.3
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking glyphon v0.3.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking iced_futures v0.7.0
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking kurbo v0.9.5
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking clipboard_x11 v0.4.2
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking iced_tiny_skia v0.1.0
[INFO] [stderr]     Checking iced_runtime v0.1.1
[INFO] [stderr]     Checking iced_wgpu v0.11.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking clipboard_wayland v0.2.2
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking iced_style v0.9.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking iced_renderer v0.1.0
[INFO] [stderr]     Checking window_clipboard v0.3.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking sysinfo v0.28.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]    Compiling rfd v0.13.0
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking iced_widget v0.1.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking env_filter v0.1.3
[INFO] [stderr]     Checking linux-keyutils v0.2.4
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking jiff v0.2.14
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]     Checking colored v3.0.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking hyper-util v0.1.13
[INFO] [stderr]     Checking mockito v1.7.0
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking secret-service v3.1.0
[INFO] [stderr]     Checking keyring v2.3.3
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking iced_winit v0.10.1
[INFO] [stderr]     Checking iced v0.10.0
[INFO] [stderr]     Checking sf_bulk_utility v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/e2e_workflow_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use sf_bulk_utility::config::{AppConfig, SalesforceConfig, UploadConfig, UiConfig};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/integration_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use sf_bulk_utility::config::{AppConfig, SalesforceConfig, UploadConfig, UiConfig};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/e2e_workflow_tests.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sf_bulk_utility::app_state::{AppState, FileToUpload, UploadStatus, Account};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/e2e_workflow_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sf_bulk_utility::file_validation::FileValidator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/integration_tests.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use sf_bulk_utility::app_state::{AppState, FileToUpload, UploadStatus, AccountUploadJob};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/integration_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use sf_bulk_utility::salesforce_api::query::Account;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]  --> tests/e2e_workflow_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use sf_bulk_utility::secure_storage::SecureStorage;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]    --> tests/integration_tests.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     use sf_bulk_utility::file_validation::{FileValidator, FileValidationError};
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]    --> tests/integration_tests.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     use sf_bulk_utility::app_state::{BatchUploadConfig, BatchProgress};
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `sf_bulk_utility` in this scope
[INFO] [stdout]    --> tests/integration_tests.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     use sf_bulk_utility::app_state::StateError;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `sf_bulk_utility`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `sf_bulk_utility`, use `cargo add sf_bulk_utility` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> tests/e2e_workflow_tests.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `mock-salesforce`
[INFO] [stdout]    --> tests/integration_tests.rs:389:7
[INFO] [stdout]     |
[INFO] [stdout] 389 | #[cfg(feature = "mock-salesforce")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `mock-salesforce` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/integration_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sf_bulk_utility` (test "integration_tests") due to 6 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sf_bulk_utility` (test "e2e_workflow_tests") due to 4 previous errors; 1 warning emitted
[INFO] [stdout] error[E0433]: cannot find module or crate `wiremock` in this scope
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     use wiremock::{
[INFO] [stdout]    |         ^^^^^^^^ use of unresolved module or unlinked crate `wiremock`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `wiremock`, use `cargo add wiremock` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::app_state::UploadJob`
[INFO] [stdout]  --> src/ui.rs:3:80
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::app_state::{AppState, View, StateError, FileToUpload, UploadStatus, UploadJob, AccountUploadJob, JobStatus, BatchUploadCon...
[INFO] [stdout]   |                                                                                ^^^^^^^^^ no `UploadJob` in `app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `wiremock`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     use wiremock::{
[INFO] [stdout]    |         ^^^^^^^^ use of unresolved module or unlinked crate `wiremock`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `wiremock`, use `cargo add wiremock` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::app_state::UploadJob`
[INFO] [stdout]  --> src/ui.rs:3:80
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::app_state::{AppState, View, StateError, FileToUpload, UploadStatus, UploadJob, AccountUploadJob, JobStatus, BatchUploadCon...
[INFO] [stdout]   |                                                                                ^^^^^^^^^ no `UploadJob` in `app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FileMetadata` in this scope
[INFO] [stdout]     --> src/ui.rs:1121:27
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                 metadata: FileMetadata {
[INFO] [stdout]      |                           ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `UploadMetrics` in this scope
[INFO] [stdout]     --> src/ui.rs:1243:67
[INFO] [stdout]      |
[INFO] [stdout] 1243 |     fn view_upload_progress(&self, file: &FileToUpload, metrics: &UploadMetrics) -> Element<'_, Message> {
[INFO] [stdout]      |                                                                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]      |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]      |
[INFO] [stdout]    1 + use crate::file_preview::UploadMetrics;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/config.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[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: `error`, `info`, and `warn`
[INFO] [stdout]  --> src/config.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{info, warn, error};
[INFO] [stdout]   |           ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObjectError` and `SalesforceObject`
[INFO] [stdout]  --> src/salesforce_api/uploader.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::salesforce_api::objects::{SalesforceObject, ObjectError};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::SalesforceCredentials`
[INFO] [stdout]  --> src/salesforce_api/uploader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::config::SalesforceCredentials;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UploadMetrics`
[INFO] [stdout]  --> src/app_state.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::file_preview::{FilePreview, UploadMetrics};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FieldMapping` and `ValidationRule`
[INFO] [stdout]  --> src/app_state.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::validation_rules::{FieldMapping, ValidationRule};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/app_state.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/app_state.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/app_state.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PickList`, `Scrollable`, and `mouse`
[INFO] [stdout]  --> src/ui.rs:1:152
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...ace, vertical_space, TextInput, PickList, Scrollable, ProgressBar, Image, container}, event, mouse, window, subscription, Length, ...
[INFO] [stdout]   |                                    ^^^^^^^^  ^^^^^^^^^^                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateError`
[INFO] [stdout]  --> src/ui.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::app_state::{AppState, View, StateError, FileToUpload, UploadStatus, UploadJob, AccountUploadJob, JobStatus, BatchUploadCon...
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValidationError`
[INFO] [stdout]  --> src/ui.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::validation::{CredentialValidator, ValidationError};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileValidationError`
[INFO] [stdout]  --> src/ui.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::file_validation::{FileValidator, FileValidationError};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FieldMappingTemplate`, `FieldMapping`, `ValidationRuleType`, and `ValidationRule`
[INFO] [stdout]  --> src/ui.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::validation_rules::{FieldMapping, ValidationRule, ValidationRuleType, FieldMappingTemplate};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]   --> src/ui.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::VecDeque;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/ui.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/ui.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/secure_storage.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AccountUploadJob` and `FileToUpload`
[INFO] [stdout]  --> src/export.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app_state::{AppState, AccountUploadJob, FileToUpload, UploadStatus};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/retry.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::atomic::{AtomicU32, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/retry.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/file_compression.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FileMetadata` in this scope
[INFO] [stdout]     --> src/ui.rs:1121:27
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                 metadata: FileMetadata {
[INFO] [stdout]      |                           ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `UploadMetrics` in this scope
[INFO] [stdout]     --> src/ui.rs:1243:67
[INFO] [stdout]      |
[INFO] [stdout] 1243 |     fn view_upload_progress(&self, file: &FileToUpload, metrics: &UploadMetrics) -> Element<'_, Message> {
[INFO] [stdout]      |                                                                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]      |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]      |
[INFO] [stdout]    1 + use crate::file_preview::UploadMetrics;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/config.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, Context};
[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: `error`, `info`, and `warn`
[INFO] [stdout]  --> src/config.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{info, warn, error};
[INFO] [stdout]   |           ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObjectError` and `SalesforceObject`
[INFO] [stdout]  --> src/salesforce_api/uploader.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::salesforce_api::objects::{SalesforceObject, ObjectError};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::SalesforceCredentials`
[INFO] [stdout]  --> src/salesforce_api/uploader.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::config::SalesforceCredentials;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UploadMetrics`
[INFO] [stdout]  --> src/app_state.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::file_preview::{FilePreview, UploadMetrics};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FieldMapping` and `ValidationRule`
[INFO] [stdout]  --> src/app_state.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::validation_rules::{FieldMapping, ValidationRule};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/app_state.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/app_state.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/app_state.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PickList`, `Scrollable`, and `mouse`
[INFO] [stdout]  --> src/ui.rs:1:152
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...ace, vertical_space, TextInput, PickList, Scrollable, ProgressBar, Image, container}, event, mouse, window, subscription, Length, ...
[INFO] [stdout]   |                                    ^^^^^^^^  ^^^^^^^^^^                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateError`
[INFO] [stdout]  --> src/ui.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::app_state::{AppState, View, StateError, FileToUpload, UploadStatus, UploadJob, AccountUploadJob, JobStatus, BatchUploadCon...
[INFO] [stdout]   |                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValidationError`
[INFO] [stdout]  --> src/ui.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::validation::{CredentialValidator, ValidationError};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FileValidationError`
[INFO] [stdout]  --> src/ui.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::file_validation::{FileValidator, FileValidationError};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FieldMappingTemplate`, `FieldMapping`, `ValidationRuleType`, and `ValidationRule`
[INFO] [stdout]  --> src/ui.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::validation_rules::{FieldMapping, ValidationRule, ValidationRuleType, FieldMappingTemplate};
[INFO] [stdout]   |                               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]   --> src/ui.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::collections::VecDeque;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/ui.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/ui.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/secure_storage.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]   --> src/secure_storage.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     use tempfile::tempdir;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AccountUploadJob` and `FileToUpload`
[INFO] [stdout]  --> src/export.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::app_state::{AppState, AccountUploadJob, FileToUpload, UploadStatus};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/retry.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::atomic::{AtomicU32, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/retry.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/file_compression.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:48:51
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let compressed_file = compress_file(path, CompressionOptions::default())?;
[INFO] [stdout]    |                               -------------       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&CompressionOptions`, found `CompressionOptions`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> src/file_compression.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn compress_file(path: &Path, options: &CompressionOptions) -> Result<CompressedFile, CompressionError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^              ----------------------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let compressed_file = compress_file(path, &CompressionOptions::default())?;
[INFO] [stdout]    |                                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `path` on type `CompressedFile`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 |             compressed_file.path
[INFO] [stdout]    |                             ^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `original_path`, `original_size`, `compressed_path`, `compressed_size`, `compression_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:48:51
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let compressed_file = compress_file(path, CompressionOptions::default())?;
[INFO] [stdout]    |                               -------------       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&CompressionOptions`, found `CompressionOptions`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> src/file_compression.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn compress_file(path: &Path, options: &CompressionOptions) -> Result<CompressedFile, CompressionError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^              ----------------------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let compressed_file = compress_file(path, &CompressionOptions::default())?;
[INFO] [stdout]    |                                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `path` on type `CompressedFile`
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 |             compressed_file.path
[INFO] [stdout]    |                             ^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `original_path`, `original_size`, `compressed_path`, `compressed_size`, `compression_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `post` found for struct `AuthClient` in the current scope
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:84:41
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let response = self.auth_client.post("/services/data/v58.0/sobjects/ContentVersion", &content_version).await?;
[INFO] [stdout]    |                                         ^^^^ method not found in `AuthClient`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/salesforce_api/auth.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct AuthClient {
[INFO] [stdout]    | --------------------- method `post` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following traits define an item `post`, perhaps you need to implement one of them:
[INFO] [stdout]            candidate #1: `read_fonts::table_provider::TableProvider`
[INFO] [stdout]            candidate #2: `swash::internal::RawFont`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `post` found for struct `auth::AuthClient` in the current scope
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:84:41
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let response = self.auth_client.post("/services/data/v58.0/sobjects/ContentVersion", &content_version).await?;
[INFO] [stdout]    |                                         ^^^^ method not found in `auth::AuthClient`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/salesforce_api/auth.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct AuthClient {
[INFO] [stdout]    | --------------------- method `post` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following traits define an item `post`, perhaps you need to implement one of them:
[INFO] [stdout]            candidate #1: `read_fonts::table_provider::TableProvider`
[INFO] [stdout]            candidate #2: `swash::internal::RawFont`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `InvalidResponse` found for enum `UploadError` in the current scope
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:88:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum UploadError {
[INFO] [stdout]    | -------------------- variant, associated function, or constant `InvalidResponse` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |             .ok_or_else(|| UploadError::InvalidResponse("Missing ID in response".to_string()))?
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^ variant, associated function, or constant not found in `UploadError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `InvalidResponse` found for enum `UploadError` in the current scope
[INFO] [stdout]   --> src/salesforce_api/uploader.rs:88:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum UploadError {
[INFO] [stdout]    | -------------------- variant, associated function, or constant `InvalidResponse` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |             .ok_or_else(|| UploadError::InvalidResponse("Missing ID in response".to_string()))?
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^ variant, associated function, or constant not found in `UploadError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing fields `config_path` and `credentials` in initializer of `config::AppConfig`
[INFO] [stdout]    --> src/config.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let config = AppConfig {
[INFO] [stdout]     |                      ^^^^^^^^^ missing `config_path` and `credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 130 |             mock_server.uri(),
[INFO] [stdout] 131 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 159 |             mock_server.uri(),
[INFO] [stdout] 160 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `with_retry_config` found for struct `uploader::UploadClient` in the current scope
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout]  29 |   pub struct UploadClient {
[INFO] [stdout]     |   ----------------------- method `with_retry_config` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 158 |           let client = UploadClient::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 159 | |             mock_server.uri(),
[INFO] [stdout] 160 | |             "test_token".to_string(),
[INFO] [stdout] 161 | |         ).with_retry_config(RetryConfig {
[INFO] [stdout]     | |          -^^^^^^^^^^^^^^^^^ method not found in `uploader::UploadClient`
[INFO] [stdout]     | |__________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 187 |             mock_server.uri(),
[INFO] [stdout] 188 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:225:58
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.state.config.credentials = Some(credentials);
[INFO] [stdout]     |                                                     ---- ^^^^^^^^^^^ expected `SecureCredentials`, found `SalesforceCredentials`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the type constructed contains `SalesforceCredentials` due to the type of the argument passed
[INFO] [stdout]    --> src/ui.rs:225:53
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.state.config.credentials = Some(credentials);
[INFO] [stdout]     |                                                     ^^^^^-----------^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/option.rs:608:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `with_retry_config` found for struct `uploader::UploadClient` in the current scope
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:189:11
[INFO] [stdout]     |
[INFO] [stdout]  29 |   pub struct UploadClient {
[INFO] [stdout]     |   ----------------------- method `with_retry_config` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 186 |           let client = UploadClient::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 187 | |             mock_server.uri(),
[INFO] [stdout] 188 | |             "test_token".to_string(),
[INFO] [stdout] 189 | |         ).with_retry_config(RetryConfig {
[INFO] [stdout]     | |          -^^^^^^^^^^^^^^^^^ method not found in `uploader::UploadClient`
[INFO] [stdout]     | |__________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:226:55
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     if let Err(e) = self.state.config.save() {
[INFO] [stdout]     |                                                       ^^^^-- argument #1 of type `&PathBuf` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/config.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn save(&self, path: &PathBuf) -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^        --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     if let Err(e) = self.state.config.save(/* &PathBuf */) {
[INFO] [stdout]     |                                                            ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 228 |             mock_server.uri(),
[INFO] [stdout] 229 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:277:33
[INFO] [stdout]     |
[INFO] [stdout] 276 | ...                   match client.get_authorization_url().await {
[INFO] [stdout]     |                             ------------------------------------ this expression has type `std::string::String`
[INFO] [stdout] 277 | ...                       Ok(_) => Ok("Connection successful!".to_string()),
[INFO] [stdout]     |                           ^^^^^ expected `String`, found `Result<_, _>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:278:33
[INFO] [stdout]     |
[INFO] [stdout] 276 | ...                   match client.get_authorization_url().await {
[INFO] [stdout]     |                             ------------------------------------ this expression has type `std::string::String`
[INFO] [stdout] 277 | ...                       Ok(_) => Ok("Connection successful!".to_string()),
[INFO] [stdout] 278 | ...                       Err(e) => Err(format!("Connection failed: {}", e)),
[INFO] [stdout]     |                           ^^^^^^ expected `String`, found `Result<_, _>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:300:38
[INFO] [stdout]     |
[INFO] [stdout] 300 |                         let client = QueryClient::new();
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^-- two arguments of type `std::string::String` and `std::string::String` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/query.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  26 |     pub fn new(instance_url: String, access_token: String) -> Self {
[INFO] [stdout]     |            ^^^ --------------------  --------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 300 |                         let client = QueryClient::new(/* std::string::String */, /* std::string::String */);
[INFO] [stdout]     |                                                       ++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `search_accounts` found for struct `QueryClient` in the current scope
[INFO] [stdout]    --> src/ui.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                         match client.search_accounts(&query).await {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/salesforce_api/query.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct QueryClient {
[INFO] [stdout]     | ---------------------- method `search_accounts` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `query_accounts` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 301 -                         match client.search_accounts(&query).await {
[INFO] [stdout] 301 +                         match client.query_accounts(&query).await {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 2 distinct arguments
[INFO] [stdout]    --> src/ui.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout]  45 |     FilesSelected(usize, Vec<PathBuf>),
[INFO] [stdout]     |     ------------- takes 2 distinct arguments
[INFO] [stdout] ...
[INFO] [stdout] 335 |                 return Command::perform(
[INFO] [stdout]     |                        ---------------- required by a bound introduced by this call
[INFO] [stdout] ...
[INFO] [stdout] 342 |                     Message::FilesSelected,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^ expected function that takes a single 2-tuple as argument
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `iced::Command::<T>::perform`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_runtime-0.1.1/src/command.rs:44:17
[INFO] [stdout]     |
[INFO] [stdout]  42 |     pub fn perform<A>(
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  43 |         future: impl Future<Output = T> + 'static + MaybeSend,
[INFO] [stdout]  44 |         f: impl FnOnce(T) -> A + 'static + MaybeSend,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ required by this bound in `Command::<T>::perform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_files_batch` found for struct `uploader::UploadClient` in the current scope
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:243:30
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct UploadClient {
[INFO] [stdout]     | ----------------------- method `upload_files_batch` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 243 |         let results = client.upload_files_batch(&paths, "test_account", Some(callback)).await;
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `upload_file` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 243 -         let results = client.upload_files_batch(&paths, "test_account", Some(callback)).await;
[INFO] [stdout] 243 +         let results = client.upload_file(&paths, "test_account", Some(callback)).await;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:391:54
[INFO] [stdout]     |
[INFO] [stdout] 391 | ...                   let client = UploadClient::new();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-- two arguments of type `AuthClient` and `RetryConfig` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^ -----------------------  -------------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 391 |                                         let client = UploadClient::new(/* AuthClient */, /* RetryConfig */);
[INFO] [stdout]     |                                                                        +++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 2 arguments, but it takes 3 arguments
[INFO] [stdout]    --> src/ui.rs:398:59
[INFO] [stdout]     |
[INFO] [stdout] 398 | ...                   Some(Box::new(move |progress, speed, remaining| {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     expected closure that takes 2 arguments
[INFO] [stdout]     |                                     takes 3 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:411:83
[INFO] [stdout]     |
[INFO] [stdout] 411 | ...                   move |result| Message::UploadComplete(job_id, file_path.clone(), result),
[INFO] [stdout]     |                                     -----------------------         ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:51:5
[INFO] [stdout]     |
[INFO] [stdout]  51 |     UploadComplete(usize, String, Result<(), String>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:285:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 284 |             mock_server.uri(),
[INFO] [stdout] 285 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[AccountUploadJob]` cannot be indexed by `&usize`
[INFO] [stdout]    --> src/ui.rs:440:67
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 if let Some(job) = self.state.upload_jobs.get_mut(&job_id) {
[INFO] [stdout]     |                                                           ------- ^^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SliceIndex<[AccountUploadJob]>` is not implemented for `&usize`
[INFO] [stdout] note: required by a bound in `core::slice::<impl [T]>::get_mut`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/slice/mod.rs:599:4
[INFO] [stdout] help: consider removing the leading `&`-reference
[INFO] [stdout]     |
[INFO] [stdout] 440 -                 if let Some(job) = self.state.upload_jobs.get_mut(&job_id) {
[INFO] [stdout] 440 +                 if let Some(job) = self.state.upload_jobs.get_mut(job_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let client = UploadClient::new(
[INFO] [stdout]     |                      ----------------- arguments to this function are incorrect
[INFO] [stdout] 310 |             mock_server.uri(),
[INFO] [stdout] 311 |             "test_token".to_string(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ expected `RetryConfig`, found `String`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^                          -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_file` found for struct `AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:446:40
[INFO] [stdout]     |
[INFO] [stdout] 446 | ...                   self.state.upload_file(job_id, file_path.clone()),
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `AppState`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `upload_file` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 451 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[AccountUploadJob]` cannot be indexed by `&usize`
[INFO] [stdout]    --> src/ui.rs:454:63
[INFO] [stdout]     |
[INFO] [stdout] 454 |                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout]     |                                                           --- ^^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SliceIndex<[AccountUploadJob]>` is not implemented for `&usize`
[INFO] [stdout] note: required by a bound in `core::slice::<impl [T]>::get`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/slice/mod.rs:572:4
[INFO] [stdout] help: consider removing the leading `&`-reference
[INFO] [stdout]     |
[INFO] [stdout] 454 -                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 454 +                 if let Some(job) = self.state.upload_jobs.get(job_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_file` found for struct `AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:463:40
[INFO] [stdout]     |
[INFO] [stdout] 463 | ...                   self.state.upload_file(job_id, file_path.clone()),
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `AppState`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `upload_file` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:467:21
[INFO] [stdout]     |
[INFO] [stdout] 454 | /                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 455 | |                     let failed_files: Vec<_> = job.files.iter()
[INFO] [stdout] 456 | |                         .filter(|f| matches!(f.status, UploadStatus::Failed(_)))
[INFO] [stdout] 457 | |                         .map(|f| f.path.clone())
[INFO] [stdout] ...   |
[INFO] [stdout] 467 | |                     Command::batch(commands)
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] 468 | |                 } else {
[INFO] [stdout] 469 | |                     Command::none()
[INFO] [stdout] 470 | |                 }
[INFO] [stdout]     | |_________________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     Command::batch(commands);
[INFO] [stdout]     |                                             +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 };
[INFO] [stdout]     |                  +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     return Command::batch(commands);
[INFO] [stdout]     |                     ++++++                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:469:21
[INFO] [stdout]     |
[INFO] [stdout] 454 | /                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 455 | |                     let failed_files: Vec<_> = job.files.iter()
[INFO] [stdout] 456 | |                         .filter(|f| matches!(f.status, UploadStatus::Failed(_)))
[INFO] [stdout] 457 | |                         .map(|f| f.path.clone())
[INFO] [stdout] ...   |
[INFO] [stdout] 469 | |                     Command::none()
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] 470 | |                 }
[INFO] [stdout]     | |_________________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     Command::none();
[INFO] [stdout]     |                                    +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 };
[INFO] [stdout]     |                  +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     return Command::none();
[INFO] [stdout]     |                     ++++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:497:54
[INFO] [stdout]     |
[INFO] [stdout] 497 | ...                   let client = UploadClient::new();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-- two arguments of type `AuthClient` and `RetryConfig` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^ -----------------------  -------------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 497 |                                         let client = UploadClient::new(/* AuthClient */, /* RetryConfig */);
[INFO] [stdout]     |                                                                        +++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_files_batch` found for struct `UploadClient` in the current scope
[INFO] [stdout]    --> src/ui.rs:501:48
[INFO] [stdout]     |
[INFO] [stdout] 501 | ...                   client.upload_files_batch(
[INFO] [stdout]     |                       -------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/salesforce_api/uploader.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct UploadClient {
[INFO] [stdout]     | ----------------------- method `upload_files_batch` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `upload_file` with a similar name, but with different arguments
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 | /     pub async fn upload_file(
[INFO] [stdout]  43 | |         &self,
[INFO] [stdout]  44 | |         path: &PathBuf,
[INFO] [stdout]  45 | |         account_id: &str,
[INFO] [stdout]  46 | |         progress_callback: Option<Box<dyn Fn(u64, u64) + Send + Sync>>,
[INFO] [stdout]  47 | |     ) -> Result<String, UploadError> {
[INFO] [stdout]     | |____________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:225:58
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.state.config.credentials = Some(credentials);
[INFO] [stdout]     |                                                     ---- ^^^^^^^^^^^ expected `SecureCredentials`, found `SalesforceCredentials`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the type constructed contains `config::SalesforceCredentials` due to the type of the argument passed
[INFO] [stdout]    --> src/ui.rs:225:53
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     self.state.config.credentials = Some(credentials);
[INFO] [stdout]     |                                                     ^^^^^-----------^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/option.rs:608:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:226:55
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     if let Err(e) = self.state.config.save() {
[INFO] [stdout]     |                                                       ^^^^-- argument #1 of type `&PathBuf` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/config.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn save(&self, path: &PathBuf) -> Result<(), ConfigError> {
[INFO] [stdout]     |            ^^^^        --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     if let Err(e) = self.state.config.save(/* &PathBuf */) {
[INFO] [stdout]     |                                                            ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:277:33
[INFO] [stdout]     |
[INFO] [stdout] 276 | ...                   match client.get_authorization_url().await {
[INFO] [stdout]     |                             ------------------------------------ this expression has type `std::string::String`
[INFO] [stdout] 277 | ...                       Ok(_) => Ok("Connection successful!".to_string()),
[INFO] [stdout]     |                           ^^^^^ expected `String`, found `Result<_, _>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::result::Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:278:33
[INFO] [stdout]     |
[INFO] [stdout] 276 | ...                   match client.get_authorization_url().await {
[INFO] [stdout]     |                             ------------------------------------ this expression has type `std::string::String`
[INFO] [stdout] 277 | ...                       Ok(_) => Ok("Connection successful!".to_string()),
[INFO] [stdout] 278 | ...                       Err(e) => Err(format!("Connection failed: {}", e)),
[INFO] [stdout]     |                           ^^^^^^ expected `String`, found `Result<_, _>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::result::Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:300:38
[INFO] [stdout]     |
[INFO] [stdout] 300 |                         let client = QueryClient::new();
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^-- two arguments of type `std::string::String` and `std::string::String` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/query.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  26 |     pub fn new(instance_url: String, access_token: String) -> Self {
[INFO] [stdout]     |            ^^^ --------------------  --------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 300 |                         let client = QueryClient::new(/* std::string::String */, /* std::string::String */);
[INFO] [stdout]     |                                                       ++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:533:52
[INFO] [stdout]     |
[INFO] [stdout] 533 |                         if let Err(e) = self.state.update_file_progress(
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 534 |                             job_id,
[INFO] [stdout] 535 |                             &file.path,
[INFO] [stdout]     |                             ---------- expected `&str`, found `&PathBuf`
[INFO] [stdout] 536 |                             progress,
[INFO] [stdout]     |                             -------- expected `u64`, found `f32`
[INFO] [stdout] 537 |                             Some(speed),
[INFO] [stdout]     |                             ----------- unexpected argument #4 of type `std::option::Option<u64>`
[INFO] [stdout] 538 |                             Some(remaining),
[INFO] [stdout]     |                             --------------- unexpected argument #5 of type `std::option::Option<u64>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&str`
[INFO] [stdout]                found reference `&PathBuf`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/app_state.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 318 |     pub fn update_file_progress(&mut self, job_id: usize, file_path: &str, uploaded_bytes: u64) -> Result<(), StateError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^                           ---------------  -------------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                             /* &str */,
[INFO] [stdout] 536 ~                             /* u64 */,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `search_accounts` found for struct `query::QueryClient` in the current scope
[INFO] [stdout]    --> src/ui.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                         match client.search_accounts(&query).await {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/salesforce_api/query.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct QueryClient {
[INFO] [stdout]     | ---------------------- method `search_accounts` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `query_accounts` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 301 -                         match client.search_accounts(&query).await {
[INFO] [stdout] 301 +                         match client.query_accounts(&query).await {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: function is expected to take a single 2-tuple as argument, but it takes 2 distinct arguments
[INFO] [stdout]    --> src/ui.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout]  45 |     FilesSelected(usize, Vec<PathBuf>),
[INFO] [stdout]     |     ------------- takes 2 distinct arguments
[INFO] [stdout] ...
[INFO] [stdout] 335 |                 return Command::perform(
[INFO] [stdout]     |                        ---------------- required by a bound introduced by this call
[INFO] [stdout] ...
[INFO] [stdout] 342 |                     Message::FilesSelected,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^ expected function that takes a single 2-tuple as argument
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `iced::Command::<T>::perform`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_runtime-0.1.1/src/command.rs:44:17
[INFO] [stdout]     |
[INFO] [stdout]  42 |     pub fn perform<A>(
[INFO] [stdout]     |            ------- required by a bound in this associated function
[INFO] [stdout]  43 |         future: impl Future<Output = T> + 'static + MaybeSend,
[INFO] [stdout]  44 |         f: impl FnOnce(T) -> A + 'static + MaybeSend,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ required by this bound in `Command::<T>::perform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:391:54
[INFO] [stdout]     |
[INFO] [stdout] 391 | ...                   let client = UploadClient::new();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-- two arguments of type `auth::AuthClient` and `retry::RetryConfig` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^ -----------------------  -------------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 391 |                                         let client = UploadClient::new(/* auth::AuthClient */, /* retry::RetryConfig */);
[INFO] [stdout]     |                                                                        ++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 2 arguments, but it takes 3 arguments
[INFO] [stdout]    --> src/ui.rs:398:59
[INFO] [stdout]     |
[INFO] [stdout] 398 | ...                   Some(Box::new(move |progress, speed, remaining| {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     expected closure that takes 2 arguments
[INFO] [stdout]     |                                     takes 3 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:411:83
[INFO] [stdout]     |
[INFO] [stdout] 411 | ...                   move |result| Message::UploadComplete(job_id, file_path.clone(), result),
[INFO] [stdout]     |                                     -----------------------         ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:51:5
[INFO] [stdout]     |
[INFO] [stdout]  51 |     UploadComplete(usize, String, Result<(), String>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_string_lossy` found for struct `std::string::String` in the current scope
[INFO] [stdout]    --> src/ui.rs:555:48
[INFO] [stdout]     |
[INFO] [stdout] 555 | ...                   &file_path.to_string_lossy(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following traits which provide `to_string_lossy` are implemented but not in scope; perhaps you want to import one of them
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_string` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 555 -                                     &file_path.to_string_lossy(),
[INFO] [stdout] 555 +                                     &file_path.to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[AccountUploadJob]` cannot be indexed by `&usize`
[INFO] [stdout]    --> src/ui.rs:440:67
[INFO] [stdout]     |
[INFO] [stdout] 440 |                 if let Some(job) = self.state.upload_jobs.get_mut(&job_id) {
[INFO] [stdout]     |                                                           ------- ^^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SliceIndex<[AccountUploadJob]>` is not implemented for `&usize`
[INFO] [stdout] note: required by a bound in `core::slice::<impl [T]>::get_mut`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/slice/mod.rs:599:4
[INFO] [stdout] help: consider removing the leading `&`-reference
[INFO] [stdout]     |
[INFO] [stdout] 440 -                 if let Some(job) = self.state.upload_jobs.get_mut(&job_id) {
[INFO] [stdout] 440 +                 if let Some(job) = self.state.upload_jobs.get_mut(job_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_string_lossy` found for struct `std::string::String` in the current scope
[INFO] [stdout]    --> src/ui.rs:566:48
[INFO] [stdout]     |
[INFO] [stdout] 566 | ...                   &file_path.to_string_lossy(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following traits which provide `to_string_lossy` are implemented but not in scope; perhaps you want to import one of them
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_string` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 566 -                                     &file_path.to_string_lossy(),
[INFO] [stdout] 566 +                                     &file_path.to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_file` found for struct `app_state::AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:446:40
[INFO] [stdout]     |
[INFO] [stdout] 446 | ...                   self.state.upload_file(job_id, file_path.clone()),
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `app_state::AppState`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `upload_file` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:629:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 629 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 451 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[AccountUploadJob]` cannot be indexed by `&usize`
[INFO] [stdout]    --> src/ui.rs:454:63
[INFO] [stdout]     |
[INFO] [stdout] 454 |                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout]     |                                                           --- ^^^^^^^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `SliceIndex<[AccountUploadJob]>` is not implemented for `&usize`
[INFO] [stdout] note: required by a bound in `core::slice::<impl [T]>::get`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/slice/mod.rs:572:4
[INFO] [stdout] help: consider removing the leading `&`-reference
[INFO] [stdout]     |
[INFO] [stdout] 454 -                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 454 +                 if let Some(job) = self.state.upload_jobs.get(job_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:633:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 633 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:663:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 663 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 663 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 663 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_file` found for struct `app_state::AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:463:40
[INFO] [stdout]     |
[INFO] [stdout] 463 | ...                   self.state.upload_file(job_id, file_path.clone()),
[INFO] [stdout]     |                                  ^^^^^^^^^^^ method not found in `app_state::AppState`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `upload_file` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:467:21
[INFO] [stdout]     |
[INFO] [stdout] 454 | /                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 455 | |                     let failed_files: Vec<_> = job.files.iter()
[INFO] [stdout] 456 | |                         .filter(|f| matches!(f.status, UploadStatus::Failed(_)))
[INFO] [stdout] 457 | |                         .map(|f| f.path.clone())
[INFO] [stdout] ...   |
[INFO] [stdout] 467 | |                     Command::batch(commands)
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] 468 | |                 } else {
[INFO] [stdout] 469 | |                     Command::none()
[INFO] [stdout] 470 | |                 }
[INFO] [stdout]     | |_________________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     Command::batch(commands);
[INFO] [stdout]     |                                             +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 };
[INFO] [stdout]     |                  +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 467 |                     return Command::batch(commands);
[INFO] [stdout]     |                     ++++++                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:469:21
[INFO] [stdout]     |
[INFO] [stdout] 454 | /                 if let Some(job) = self.state.upload_jobs.get(&job_id) {
[INFO] [stdout] 455 | |                     let failed_files: Vec<_> = job.files.iter()
[INFO] [stdout] 456 | |                         .filter(|f| matches!(f.status, UploadStatus::Failed(_)))
[INFO] [stdout] 457 | |                         .map(|f| f.path.clone())
[INFO] [stdout] ...   |
[INFO] [stdout] 469 | |                     Command::none()
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] 470 | |                 }
[INFO] [stdout]     | |_________________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     Command::none();
[INFO] [stdout]     |                                    +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 };
[INFO] [stdout]     |                  +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 469 |                     return Command::none();
[INFO] [stdout]     |                     ++++++                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 0 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:497:54
[INFO] [stdout]     |
[INFO] [stdout] 497 | ...                   let client = UploadClient::new();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^-- two arguments of type `auth::AuthClient` and `retry::RetryConfig` are missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn new(auth_client: AuthClient, retry_config: RetryConfig) -> Self {
[INFO] [stdout]     |            ^^^ -----------------------  -------------------------
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 497 |                                         let client = UploadClient::new(/* auth::AuthClient */, /* retry::RetryConfig */);
[INFO] [stdout]     |                                                                        ++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_file` found for struct `AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:684:32
[INFO] [stdout]     |
[INFO] [stdout] 684 |                     self.state.add_file(path);
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `add_file` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `add_file_to_job` with a similar name, but with different arguments
[INFO] [stdout]    --> src/app_state.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn add_file_to_job(&mut self, job_id: usize, file: FileToUpload) -> Result<(), StateError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `usize` with `std::option::Option<usize>`
[INFO] [stdout]    --> src/ui.rs:730:43
[INFO] [stdout]     |
[INFO] [stdout] 730 |                     .find(|job| job.ui_id == self.drag_target_job)
[INFO] [stdout]     |                                           ^^ no implementation for `usize == std::option::Option<usize>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<std::option::Option<usize>>` is not implemented for `usize`
[INFO] [stdout] help: `usize` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/cmp.rs:1875:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/cmp.rs:1899:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `partial_eq_impl` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:732:56
[INFO] [stdout]     |
[INFO] [stdout] 732 |                     Some(Message::FilesDropped(job_id, paths))
[INFO] [stdout]     |                          ---------------------         ^^^^^ expected `Vec<PathBuf>`, found `PathBuf`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<PathBuf>`
[INFO] [stdout]                found struct `PathBuf`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:60:5
[INFO] [stdout]     |
[INFO] [stdout]  60 |     FilesDropped(usize, Vec<PathBuf>),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:726:35
[INFO] [stdout]     |
[INFO] [stdout] 726 |           subscription::events_with(|event, _| {
[INFO] [stdout]     |  _________-------------------------_^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         arguments to this function are incorrect
[INFO] [stdout] 727 | |             if let event::Event::Window(window::Event::FileDropped(paths)) = event {
[INFO] [stdout] 728 | |                 // Find the job that's currently being dragged over
[INFO] [stdout] 729 | |                 if let Some(job_id) = self.state.upload_jobs.iter()
[INFO] [stdout] ...   |
[INFO] [stdout] 739 | |         })
[INFO] [stdout]     | |_________^ expected fn pointer, found closure
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected fn pointer `fn(iced::Event, iced::event::Status) -> std::option::Option<ui::Message>`
[INFO] [stdout]                   found closure `{closure@src/ui.rs:726:35: 726:45}`
[INFO] [stdout] note: closures can only be coerced to `fn` types if they do not capture any variables
[INFO] [stdout]    --> src/ui.rs:729:39
[INFO] [stdout]     |
[INFO] [stdout] 729 |                 if let Some(job_id) = self.state.upload_jobs.iter()
[INFO] [stdout]     |                                       ^^^^ `self` captured here
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_futures-0.7.0/src/subscription.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn events_with<Message>(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `upload_files_batch` found for struct `uploader::UploadClient` in the current scope
[INFO] [stdout]    --> src/ui.rs:501:48
[INFO] [stdout]     |
[INFO] [stdout] 501 | ...                   client.upload_files_batch(
[INFO] [stdout]     |                       -------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/salesforce_api/uploader.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | pub struct UploadClient {
[INFO] [stdout]     | ----------------------- method `upload_files_batch` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `upload_file` with a similar name, but with different arguments
[INFO] [stdout]    --> src/salesforce_api/uploader.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 | /     pub async fn upload_file(
[INFO] [stdout]  43 | |         &self,
[INFO] [stdout]  44 | |         path: &PathBuf,
[INFO] [stdout]  45 | |         account_id: &str,
[INFO] [stdout]  46 | |         progress_callback: Option<Box<dyn Fn(u64, u64) + Send + Sync>>,
[INFO] [stdout]  47 | |     ) -> Result<String, UploadError> {
[INFO] [stdout]     | |____________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:937:54
[INFO] [stdout]     |
[INFO] [stdout] 937 |                     .on_press(Message::SelectAccount(account.clone()))
[INFO] [stdout]     |                               ---------------------- ^^^^^^^^^^^^^^^ expected `query::Account`, found `app_state::Account`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `app_state::Account` and `query::Account` have similar names, but are actually distinct types
[INFO] [stdout] note: `app_state::Account` is defined in module `crate::app_state` of the current crate
[INFO] [stdout]    --> src/app_state.rs:28:1
[INFO] [stdout]     |
[INFO] [stdout]  28 | pub struct Account {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `query::Account` is defined in module `crate::salesforce_api::query` of the current crate
[INFO] [stdout]    --> src/salesforce_api/query.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct Account {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:40:5
[INFO] [stdout]     |
[INFO] [stdout]  40 |     SelectAccount(Account),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&Cow<'_, str>: Into<Cow<'_, str>>` is not satisfied
[INFO] [stdout]    --> src/ui.rs:972:41
[INFO] [stdout]     |
[INFO] [stdout] 972 |                         .push(Text::new(&file_name))
[INFO] [stdout]     |                               --------- ^^^^^^^^^^ the trait `From<&Cow<'_, str>>` is not implemented for `Cow<'_, str>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&Cow<'_, str>` to implement `Into<Cow<'_, str>>`
[INFO] [stdout] note: required by a bound in `iced_core::widget::text::Text::<'a, Renderer>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_core-0.10.0/src/widget/text.rs:39:30
[INFO] [stdout]     |
[INFO] [stdout]  39 |     pub fn new(content: impl Into<Cow<'a, str>>) -> Self {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ required by this bound in `Text::<'a, Renderer>::new`
[INFO] [stdout] help: consider dereferencing here
[INFO] [stdout]     |
[INFO] [stdout] 972 |                         .push(Text::new(&*file_name))
[INFO] [stdout]     |                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1034:73
[INFO] [stdout]      |
[INFO] [stdout] 1034 | ...                   .on_press(Message::RetryFile(job.ui_id, file.path.clone()))
[INFO] [stdout]      |                                 ------------------            ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> src/ui.rs:52:5
[INFO] [stdout]      |
[INFO] [stdout]   52 |     RetryFile(usize, String),
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1042:66
[INFO] [stdout]      |
[INFO] [stdout] 1042 |                         .on_press(Message::RemoveFile(job.ui_id, file.path.clone()))
[INFO] [stdout]      |                                   -------------------            ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> src/ui.rs:46:5
[INFO] [stdout]      |
[INFO] [stdout]   46 |     RemoveFile(usize, String),
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: std::io::Seek` is not satisfied
[INFO] [stdout]     --> src/ui.rs:1089:47
[INFO] [stdout]      |
[INFO] [stdout] 1089 |                         if thumbnail.write_to(&mut buffer, image::ImageFormat::Png).is_ok() {
[INFO] [stdout]      |                                      -------- ^^^^^^^^^^^ the trait `std::io::Seek` is not implemented for `Vec<u8>`
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout] note: required by a bound in `DynamicImage::write_to`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/image-0.24.9/src/dynimage.rs:834:32
[INFO] [stdout]      |
[INFO] [stdout]  834 |     pub fn write_to<W: Write + Seek, F: Into<ImageOutputFormat>>(
[INFO] [stdout]      |                                ^^^^ required by this bound in `DynamicImage::write_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `content_type`
[INFO] [stdout]     --> src/ui.rs:1119:17
[INFO] [stdout]      |
[INFO] [stdout] 1119 |                 content_type: content_type.to_string(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `preview_data`
[INFO] [stdout]     --> src/ui.rs:1120:17
[INFO] [stdout]      |
[INFO] [stdout] 1120 |                 preview_data,
[INFO] [stdout]      |                 ^^^^^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `metadata`
[INFO] [stdout]     --> src/ui.rs:1121:17
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                 metadata: FileMetadata {
[INFO] [stdout]      |                 ^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1143:57
[INFO] [stdout]      |
[INFO] [stdout] 1143 |             .push(Text::new(format!("Name: {}", preview.metadata.name)))
[INFO] [stdout]      |                                                         ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 3 arguments but 5 arguments were supplied
[INFO] [stdout]    --> src/ui.rs:533:52
[INFO] [stdout]     |
[INFO] [stdout] 533 |                         if let Err(e) = self.state.update_file_progress(
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 534 |                             job_id,
[INFO] [stdout] 535 |                             &file.path,
[INFO] [stdout]     |                             ---------- expected `&str`, found `&PathBuf`
[INFO] [stdout] 536 |                             progress,
[INFO] [stdout]     |                             -------- expected `u64`, found `f32`
[INFO] [stdout] 537 |                             Some(speed),
[INFO] [stdout]     |                             ----------- unexpected argument #4 of type `std::option::Option<u64>`
[INFO] [stdout] 538 |                             Some(remaining),
[INFO] [stdout]     |                             --------------- unexpected argument #5 of type `std::option::Option<u64>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&str`
[INFO] [stdout]                found reference `&PathBuf`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/app_state.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 318 |     pub fn update_file_progress(&mut self, job_id: usize, file_path: &str, uploaded_bytes: u64) -> Result<(), StateError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^                           ---------------  -------------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                             /* &str */,
[INFO] [stdout] 536 ~                             /* u64 */,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1144:79
[INFO] [stdout]      |
[INFO] [stdout] 1144 |             .push(Text::new(format!("Size: {}", self.format_file_size(preview.metadata.size))))
[INFO] [stdout]      |                                                                               ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `content_type` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1145:57
[INFO] [stdout]      |
[INFO] [stdout] 1145 |             .push(Text::new(format!("Type: {}", preview.content_type)));
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1147:41
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         if let Some(modified) = preview.metadata.last_modified {
[INFO] [stdout]      |                                         ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `preview_data` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1159:38
[INFO] [stdout]      |
[INFO] [stdout] 1159 |         if let Some(data) = &preview.preview_data {
[INFO] [stdout]      |                                      ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `content_type` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1160:27
[INFO] [stdout]      |
[INFO] [stdout] 1160 |             match preview.content_type.as_str() {
[INFO] [stdout]      |                           ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1163:32
[INFO] [stdout]      |
[INFO] [stdout] 1163 |                         if let Ok(image) = ImageBuffer::<Rgba<u8>, Vec<u8>>::from_raw(200, 200, decoded) {
[INFO] [stdout]      |                                ^^^^^^^^^   ------------------------------------------------------------- this expression has type `std::option::Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                expected `Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`, found `Result<_, _>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected enum `std::option::Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`
[INFO] [stdout]                 found enum `Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
[INFO] [stdout]     --> src/ui.rs:1297:63
[INFO] [stdout]      |
[INFO] [stdout] 1297 |                           .style(iced::theme::Container::Custom(Box::new(move || {
[INFO] [stdout]      |                                                                 ^        ------- takes 0 arguments
[INFO] [stdout]      |  _______________________________________________________________|
[INFO] [stdout]      | |
[INFO] [stdout] 1298 | |                             iced::widget::container::Appearance {
[INFO] [stdout] 1299 | |                                 background: None,
[INFO] [stdout] 1300 | |                                 text_color: Some(status_color),
[INFO] [stdout] ...    |
[INFO] [stdout] 1303 | |                         })))
[INFO] [stdout]      | |__________________________^ expected closure that takes 1 argument
[INFO] [stdout]      |
[INFO] [stdout]      = note: required for `{closure@src/ui.rs:1297:72: 1297:79}` to implement `iced::widget::container::StyleSheet`
[INFO] [stdout]      = note: required for the cast from `std::boxed::Box<{closure@src/ui.rs:1297:72: 1297:79}>` to `std::boxed::Box<(dyn iced::widget::container::StyleSheet<Style = Theme> + 'static)>`
[INFO] [stdout] help: consider changing the closure to take and ignore the expected argument
[INFO] [stdout]      |
[INFO] [stdout] 1297 |                         .style(iced::theme::Container::Custom(Box::new(move |_| {
[INFO] [stdout]      |                                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_string_lossy` found for struct `std::string::String` in the current scope
[INFO] [stdout]    --> src/ui.rs:555:48
[INFO] [stdout]     |
[INFO] [stdout] 555 | ...                   &file_path.to_string_lossy(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following traits which provide `to_string_lossy` are implemented but not in scope; perhaps you want to import one of them
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_string` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 555 -                                     &file_path.to_string_lossy(),
[INFO] [stdout] 555 +                                     &file_path.to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `to_string_lossy` found for struct `std::string::String` in the current scope
[INFO] [stdout]    --> src/ui.rs:566:48
[INFO] [stdout]     |
[INFO] [stdout] 566 | ...                   &file_path.to_string_lossy(),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following traits which provide `to_string_lossy` are implemented but not in scope; perhaps you want to import one of them
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use rustix::path::arg::Arg;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_string` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 566 -                                     &file_path.to_string_lossy(),
[INFO] [stdout] 566 +                                     &file_path.to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:629:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 629 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:633:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 633 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:663:17
[INFO] [stdout]     |
[INFO] [stdout] 140 | /         match message {
[INFO] [stdout] 141 | |             Message::ToggleTheme => {
[INFO] [stdout] 142 | |                 self.theme = match self.theme {
[INFO] [stdout] 143 | |                     Theme::Light => Theme::Dark,
[INFO] [stdout] ...   |
[INFO] [stdout] 663 | |                 Command::none()
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^ expected `()`, found `Command<_>`
[INFO] [stdout] ...   |
[INFO] [stdout] 690 | |         }
[INFO] [stdout]     | |_________- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `iced::Command<_>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 663 |                 Command::none();
[INFO] [stdout]     |                                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 690 |         };
[INFO] [stdout]     |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 663 |                 return Command::none()
[INFO] [stdout]     |                 ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `AccountUploadJob` has no field named `object_metadata`
[INFO] [stdout]    --> src/progress_persistence.rs:314:13
[INFO] [stdout]     |
[INFO] [stdout] 314 |             object_metadata: None, // Will be reloaded if needed
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ `AccountUploadJob` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `save_credentials` on type `UiConfig`
[INFO] [stdout]    --> src/progress_persistence.rs:325:24
[INFO] [stdout]     |
[INFO] [stdout] 325 |         self.config.ui.save_credentials // Reuse this setting for progress persistence
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `theme`, `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_file` found for struct `app_state::AppState` in the current scope
[INFO] [stdout]    --> src/ui.rs:684:32
[INFO] [stdout]     |
[INFO] [stdout] 684 |                     self.state.add_file(path);
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/app_state.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct AppState {
[INFO] [stdout]     | ------------------- method `add_file` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `add_file_to_job` with a similar name, but with different arguments
[INFO] [stdout]    --> src/app_state.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn add_file_to_job(&mut self, job_id: usize, file: FileToUpload) -> Result<(), StateError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `usize` with `std::option::Option<usize>`
[INFO] [stdout]    --> src/ui.rs:730:43
[INFO] [stdout]     |
[INFO] [stdout] 730 |                     .find(|job| job.ui_id == self.drag_target_job)
[INFO] [stdout]     |                                           ^^ no implementation for `usize == std::option::Option<usize>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<std::option::Option<usize>>` is not implemented for `usize`
[INFO] [stdout] help: `usize` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/cmp.rs:1875:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3fada14ee01d755dc8076e611f11bf65b28ffd21/library/core/src/cmp.rs:1899:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `partial_eq_impl` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:732:56
[INFO] [stdout]     |
[INFO] [stdout] 732 |                     Some(Message::FilesDropped(job_id, paths))
[INFO] [stdout]     |                          ---------------------         ^^^^^ expected `Vec<PathBuf>`, found `PathBuf`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<PathBuf>`
[INFO] [stdout]                found struct `PathBuf`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:60:5
[INFO] [stdout]     |
[INFO] [stdout]  60 |     FilesDropped(usize, Vec<PathBuf>),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:726:35
[INFO] [stdout]     |
[INFO] [stdout] 726 |           subscription::events_with(|event, _| {
[INFO] [stdout]     |  _________-------------------------_^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         arguments to this function are incorrect
[INFO] [stdout] 727 | |             if let event::Event::Window(window::Event::FileDropped(paths)) = event {
[INFO] [stdout] 728 | |                 // Find the job that's currently being dragged over
[INFO] [stdout] 729 | |                 if let Some(job_id) = self.state.upload_jobs.iter()
[INFO] [stdout] ...   |
[INFO] [stdout] 739 | |         })
[INFO] [stdout]     | |_________^ expected fn pointer, found closure
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected fn pointer `fn(iced::Event, iced::event::Status) -> std::option::Option<ui::Message>`
[INFO] [stdout]                   found closure `{closure@src/ui.rs:726:35: 726:45}`
[INFO] [stdout] note: closures can only be coerced to `fn` types if they do not capture any variables
[INFO] [stdout]    --> src/ui.rs:729:39
[INFO] [stdout]     |
[INFO] [stdout] 729 |                 if let Some(job_id) = self.state.upload_jobs.iter()
[INFO] [stdout]     |                                       ^^^^ `self` captured here
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_futures-0.7.0/src/subscription.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn events_with<Message>(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/ui.rs:937:54
[INFO] [stdout]     |
[INFO] [stdout] 937 |                     .on_press(Message::SelectAccount(account.clone()))
[INFO] [stdout]     |                               ---------------------- ^^^^^^^^^^^^^^^ expected `query::Account`, found `app_state::Account`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `app_state::Account` and `query::Account` have similar names, but are actually distinct types
[INFO] [stdout] note: `app_state::Account` is defined in module `crate::app_state` of the current crate
[INFO] [stdout]    --> src/app_state.rs:28:1
[INFO] [stdout]     |
[INFO] [stdout]  28 | pub struct Account {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `query::Account` is defined in module `crate::salesforce_api::query` of the current crate
[INFO] [stdout]    --> src/salesforce_api/query.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct Account {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ui.rs:40:5
[INFO] [stdout]     |
[INFO] [stdout]  40 |     SelectAccount(Account),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&Cow<'_, str>: Into<Cow<'_, str>>` is not satisfied
[INFO] [stdout]    --> src/ui.rs:972:41
[INFO] [stdout]     |
[INFO] [stdout] 972 |                         .push(Text::new(&file_name))
[INFO] [stdout]     |                               --------- ^^^^^^^^^^ the trait `From<&Cow<'_, str>>` is not implemented for `Cow<'_, str>`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&Cow<'_, str>` to implement `Into<Cow<'_, str>>`
[INFO] [stdout] note: required by a bound in `iced_core::widget::text::Text::<'a, Renderer>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/iced_core-0.10.0/src/widget/text.rs:39:30
[INFO] [stdout]     |
[INFO] [stdout]  39 |     pub fn new(content: impl Into<Cow<'a, str>>) -> Self {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ required by this bound in `Text::<'a, Renderer>::new`
[INFO] [stdout] help: consider dereferencing here
[INFO] [stdout]     |
[INFO] [stdout] 972 |                         .push(Text::new(&*file_name))
[INFO] [stdout]     |                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1034:73
[INFO] [stdout]      |
[INFO] [stdout] 1034 | ...                   .on_press(Message::RetryFile(job.ui_id, file.path.clone()))
[INFO] [stdout]      |                                 ------------------            ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> src/ui.rs:52:5
[INFO] [stdout]      |
[INFO] [stdout]   52 |     RetryFile(usize, String),
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1042:66
[INFO] [stdout]      |
[INFO] [stdout] 1042 |                         .on_press(Message::RemoveFile(job.ui_id, file.path.clone()))
[INFO] [stdout]      |                                   -------------------            ^^^^^^^^^^^^^^^^^ expected `String`, found `PathBuf`
[INFO] [stdout]      |                                   |
[INFO] [stdout]      |                                   arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> src/ui.rs:46:5
[INFO] [stdout]      |
[INFO] [stdout]   46 |     RemoveFile(usize, String),
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: std::io::Seek` is not satisfied
[INFO] [stdout]     --> src/ui.rs:1089:47
[INFO] [stdout]      |
[INFO] [stdout] 1089 |                         if thumbnail.write_to(&mut buffer, image::ImageFormat::Png).is_ok() {
[INFO] [stdout]      |                                      -------- ^^^^^^^^^^^ the trait `std::io::Seek` is not implemented for `Vec<u8>`
[INFO] [stdout]      |                                      |
[INFO] [stdout]      |                                      required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout] note: required by a bound in `DynamicImage::write_to`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/image-0.24.9/src/dynimage.rs:834:32
[INFO] [stdout]      |
[INFO] [stdout]  834 |     pub fn write_to<W: Write + Seek, F: Into<ImageOutputFormat>>(
[INFO] [stdout]      |                                ^^^^ required by this bound in `DynamicImage::write_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `content_type`
[INFO] [stdout]     --> src/ui.rs:1119:17
[INFO] [stdout]      |
[INFO] [stdout] 1119 |                 content_type: content_type.to_string(),
[INFO] [stdout]      |                 ^^^^^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `preview_data`
[INFO] [stdout]     --> src/ui.rs:1120:17
[INFO] [stdout]      |
[INFO] [stdout] 1120 |                 preview_data,
[INFO] [stdout]      |                 ^^^^^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `FilePreview` has no field named `metadata`
[INFO] [stdout]     --> src/ui.rs:1121:17
[INFO] [stdout]      |
[INFO] [stdout] 1121 |                 metadata: FileMetadata {
[INFO] [stdout]      |                 ^^^^^^^^ `FilePreview` does not have this field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1143:57
[INFO] [stdout]      |
[INFO] [stdout] 1143 |             .push(Text::new(format!("Name: {}", preview.metadata.name)))
[INFO] [stdout]      |                                                         ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1144:79
[INFO] [stdout]      |
[INFO] [stdout] 1144 |             .push(Text::new(format!("Size: {}", self.format_file_size(preview.metadata.size))))
[INFO] [stdout]      |                                                                               ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `content_type` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1145:57
[INFO] [stdout]      |
[INFO] [stdout] 1145 |             .push(Text::new(format!("Type: {}", preview.content_type)));
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metadata` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1147:41
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         if let Some(modified) = preview.metadata.last_modified {
[INFO] [stdout]      |                                         ^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `preview_data` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1159:38
[INFO] [stdout]      |
[INFO] [stdout] 1159 |         if let Some(data) = &preview.preview_data {
[INFO] [stdout]      |                                      ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `content_type` on type `&FilePreview`
[INFO] [stdout]     --> src/ui.rs:1160:27
[INFO] [stdout]      |
[INFO] [stdout] 1160 |             match preview.content_type.as_str() {
[INFO] [stdout]      |                           ^^^^^^^^^^^^ unknown field
[INFO] [stdout]      |
[INFO] [stdout]      = note: available fields are: `path`, `content`, `mime_type`, `size`, `last_modified`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/ui.rs:1163:32
[INFO] [stdout]      |
[INFO] [stdout] 1163 |                         if let Ok(image) = ImageBuffer::<Rgba<u8>, Vec<u8>>::from_raw(200, 200, decoded) {
[INFO] [stdout]      |                                ^^^^^^^^^   ------------------------------------------------------------- this expression has type `std::option::Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                expected `Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`, found `Result<_, _>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected enum `std::option::Option<ImageBuffer<Rgba<u8>, Vec<u8>>>`
[INFO] [stdout]                 found enum `std::result::Result<_, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
[INFO] [stdout]     --> src/ui.rs:1297:63
[INFO] [stdout]      |
[INFO] [stdout] 1297 |                           .style(iced::theme::Container::Custom(Box::new(move || {
[INFO] [stdout]      |                                                                 ^        ------- takes 0 arguments
[INFO] [stdout]      |  _______________________________________________________________|
[INFO] [stdout]      | |
[INFO] [stdout] 1298 | |                             iced::widget::container::Appearance {
[INFO] [stdout] 1299 | |                                 background: None,
[INFO] [stdout] 1300 | |                                 text_color: Some(status_color),
[INFO] [stdout] ...    |
[INFO] [stdout] 1303 | |                         })))
[INFO] [stdout]      | |__________________________^ expected closure that takes 1 argument
[INFO] [stdout]      |
[INFO] [stdout]      = note: required for `{closure@src/ui.rs:1297:72: 1297:79}` to implement `iced::widget::container::StyleSheet`
[INFO] [stdout]      = note: required for the cast from `std::boxed::Box<{closure@src/ui.rs:1297:72: 1297:79}>` to `std::boxed::Box<(dyn iced::widget::container::StyleSheet<Style = Theme> + 'static)>`
[INFO] [stdout] help: consider changing the closure to take and ignore the expected argument
[INFO] [stdout]      |
[INFO] [stdout] 1297 |                         .style(iced::theme::Container::Custom(Box::new(move |_| {
[INFO] [stdout]      |                                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `AccountUploadJob` has no field named `object_metadata`
[INFO] [stdout]    --> src/progress_persistence.rs:314:13
[INFO] [stdout]     |
[INFO] [stdout] 314 |             object_metadata: None, // Will be reloaded if needed
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ `AccountUploadJob` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `save_credentials` on type `config::UiConfig`
[INFO] [stdout]    --> src/progress_persistence.rs:325:24
[INFO] [stdout]     |
[INFO] [stdout] 325 |         self.config.ui.save_credentials // Reuse this setting for progress persistence
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `theme`, `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:591:9
[INFO] [stdout]     |
[INFO] [stdout] 591 |         assert_eq!(ExportFormat::from_extension("csv").unwrap(), ExportFormat::Csv);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | pub enum ExportFormat {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `export::ExportFormat` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout]  25 + #[derive(PartialEq)]
[INFO] [stdout]  26 | pub enum ExportFormat {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:592:9
[INFO] [stdout]     |
[INFO] [stdout] 592 |         assert_eq!(ExportFormat::from_extension("json").unwrap(), ExportFormat::Json);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | pub enum ExportFormat {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `export::ExportFormat` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout]  25 + #[derive(PartialEq)]
[INFO] [stdout]  26 | pub enum ExportFormat {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:593:9
[INFO] [stdout]     |
[INFO] [stdout] 593 |         assert_eq!(ExportFormat::from_extension("html").unwrap(), ExportFormat::Html);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | pub enum ExportFormat {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `export::ExportFormat` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout]  25 + #[derive(PartialEq)]
[INFO] [stdout]  26 | pub enum ExportFormat {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:594:9
[INFO] [stdout]     |
[INFO] [stdout] 594 |         assert_eq!(ExportFormat::from_extension("txt").unwrap(), ExportFormat::Txt);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |         export::ExportFormat
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `export::ExportFormat`
[INFO] [stdout]    --> src/export.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | pub enum ExportFormat {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `export::ExportFormat` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout]  25 + #[derive(PartialEq)]
[INFO] [stdout]  26 | pub enum ExportFormat {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let result = retry_with_backoff(&config, || async {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 116 |             counter.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout] 117 |             Err("Permanent error")
[INFO] [stdout]     |             ---------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let result: std::result::Result<T, _> = retry_with_backoff(&config, || async {
[INFO] [stdout]     |                   +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let _result = retry_with_backoff(&config, || async {
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 139 |             counter.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout] 140 |             Err("Temporary error")
[INFO] [stdout]     |             ---------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `_result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let _result: std::result::Result<T, _> = retry_with_backoff(&config, || async {
[INFO] [stdout]     |                    +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let _result = retry_with_backoff(&config, || async {
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 166 |             counter.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout] 167 |             Err("Temporary error")
[INFO] [stdout]     |             ---------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `_result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let _result: std::result::Result<T, _> = retry_with_backoff(&config, || async {
[INFO] [stdout]     |                    +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `content`
[INFO] [stdout]    --> src/ui.rs:874:13
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let content = Column::new()
[INFO] [stdout]     |             ------- first assignment to `content`
[INFO] [stdout] ...
[INFO] [stdout] 874 |             content = content.push(
[INFO] [stdout]     |             ^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]     |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let mut content = Column::new()
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]    --> src/retry.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |             Ok("Success")
[INFO] [stdout]     |             ^^ cannot infer type of the type parameter `E` declared on the enum `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type must implement `ToString`
[INFO] [stdout] note: required by a bound in `retry::retry_with_backoff`
[INFO] [stdout]    --> src/retry.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | pub async fn retry_with_backoff<F, T, E, Fut>(
[INFO] [stdout]     |              ------------------ required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  46 |     E: ToString,
[INFO] [stdout]     |        ^^^^^^^^ required by this bound in `retry_with_backoff`
[INFO] [stdout] help: consider specifying the generic arguments
[INFO] [stdout]     |
[INFO] [stdout] 185 |             Ok::<&str, E>("Success")
[INFO] [stdout]     |               +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _result = retry_with_backoff(&config, || async {
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout] 207 |             counter.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout] 208 |             Err("Temporary error")
[INFO] [stdout]     |             ---------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `_result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _result: std::result::Result<T, _> = retry_with_backoff(&config, || async {
[INFO] [stdout]     |                    +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let result = retry_with_backoff(&config, || {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |                 Err("Test error message")
[INFO] [stdout]     |                 ------------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let result: std::result::Result<T, _> = retry_with_backoff(&config, || {
[INFO] [stdout]     |                   +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `std::result::Result<_, retry::RetryError>`
[INFO] [stdout]    --> src/retry.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let result = retry_with_backoff(&config, || async {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 259 |             counter.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout] 260 |             Err(CustomError("Custom error".to_string()))
[INFO] [stdout]     |             -------------------------------------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `T` is specified
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let result: std::result::Result<T, _> = retry_with_backoff(&config, || async {
[INFO] [stdout]     |                   +++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::SalesforceConfig` has no field named `client_id`
[INFO] [stdout]    --> src/main.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |                 client_id: "test_client".to_string(),
[INFO] [stdout]     |                 ^^^^^^^^^ `config::SalesforceConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `batch_size`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::SalesforceConfig` has no field named `client_secret`
[INFO] [stdout]    --> src/main.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 client_secret: "test_secret".to_string(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ `config::SalesforceConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `batch_size`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::SalesforceConfig` has no field named `redirect_uri`
[INFO] [stdout]    --> src/main.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 redirect_uri: "https://test.com/callback".to_string(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^ `config::SalesforceConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `batch_size`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UploadConfig` has no field named `compression_enabled`
[INFO] [stdout]    --> src/main.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 compression_enabled: false,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ `config::UploadConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `retry_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UploadConfig` has no field named `compression_level`
[INFO] [stdout]    --> src/main.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 compression_level: 9,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ `config::UploadConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `retry_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UploadConfig` has no field named `retry_attempts`
[INFO] [stdout]    --> src/main.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 retry_attempts: 5,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ `config::UploadConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `retry_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UploadConfig` has no field named `batch_size`
[INFO] [stdout]    --> src/main.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |                 batch_size: 20,
[INFO] [stdout]     |                 ^^^^^^^^^^ `config::UploadConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `retry_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UiConfig` has no field named `window_size`
[INFO] [stdout]    --> src/main.rs:122:17
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 window_size: (1024, 768),
[INFO] [stdout]     |                 ^^^^^^^^^^^ `config::UiConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UiConfig` has no field named `show_progress`
[INFO] [stdout]    --> src/main.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 show_progress: false,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ `config::UiConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UiConfig` has no field named `auto_retry`
[INFO] [stdout]    --> src/main.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 auto_retry: false,
[INFO] [stdout]     |                 ^^^^^^^^^^ `config::UiConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `config::UiConfig` has no field named `save_credentials`
[INFO] [stdout]    --> src/main.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 save_credentials: true,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ `config::UiConfig` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `language`, `log_level`, `auto_save`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing fields `config_path` and `credentials` in initializer of `config::AppConfig`
[INFO] [stdout]    --> src/main.rs:103:22
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let config = AppConfig {
[INFO] [stdout]     |                      ^^^^^^^^^ missing `config_path` and `credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_uploader` found for struct `App` in the current scope
[INFO] [stdout]    --> src/main.rs:165:28
[INFO] [stdout]     |
[INFO] [stdout]  40 | pub struct App {
[INFO] [stdout]     | -------------- method `get_uploader` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 165 |         let uploader = app.get_uploader();
[INFO] [stdout]     |                            ^^^^^^^^^^^^ method not found in `App`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_current_job` found for struct `tokio::sync::MutexGuard<'_, app_state::AppState>` in the current scope
[INFO] [stdout]    --> src/main.rs:178:29
[INFO] [stdout]     |
[INFO] [stdout] 178 |         assert!(state_guard.get_current_job().is_none());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ method not found in `tokio::sync::MutexGuard<'_, app_state::AppState>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_credentials` found for struct `tokio::sync::MutexGuard<'_, app_state::AppState>` in the current scope
[INFO] [stdout]    --> src/main.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |         assert!(state_guard.get_credentials().is_none());
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `set_credentials` with a similar name, but with different arguments
[INFO] [stdout]    --> src/app_state.rs:545:5
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn set_credentials(&mut self, base_url: String, access_token: String) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_uploader` found for struct `App` in the current scope
[INFO] [stdout]    --> src/main.rs:185:28
[INFO] [stdout]     |
[INFO] [stdout]  40 | pub struct App {
[INFO] [stdout]     | -------------- method `get_uploader` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 185 |         let uploader = app.get_uploader();
[INFO] [stdout]     |                            ^^^^^^^^^^^^ method not found in `App`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0384, E0422, E0425, E0432, E0560, E0593...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sf_bulk_utility` (bin "sf_bulk_utility") due to 55 previous errors; 25 warnings emitted
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `content`
[INFO] [stdout]    --> src/ui.rs:874:13
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let content = Column::new()
[INFO] [stdout]     |             ------- first assignment to `content`
[INFO] [stdout] ...
[INFO] [stdout] 874 |             content = content.push(
[INFO] [stdout]     |             ^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]     |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let mut content = Column::new()
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `export_manager`
[INFO] [stdout]    --> src/export.rs:583:13
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let export_manager = ExportManager::new(temp_dir.path())
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_export_manager`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `file` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/file_compression.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |         file.write_all(&test_content).unwrap();
[INFO] [stdout]     |         ^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let mut file = create_test_file(2 * 1024 * 1024); // 2MB
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/file_compression.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let options = CompressionOptions {
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0063, E0277, E0282, E0283, E0308, E0369, E0384, E0422...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sf_bulk_utility` (bin "sf_bulk_utility" test) due to 95 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9009d817e3d4c8098cc81af20f1288e341d3fc0ffc1142c048953822877f5c38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9009d817e3d4c8098cc81af20f1288e341d3fc0ffc1142c048953822877f5c38", kill_on_drop: false }`
[INFO] [stdout] 9009d817e3d4c8098cc81af20f1288e341d3fc0ffc1142c048953822877f5c38
