[INFO] cloning repository https://github.com/danielmbomfim/iced_navigation [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/danielmbomfim/iced_navigation" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielmbomfim%2Ficed_navigation", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielmbomfim%2Ficed_navigation'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 14a8b120584d78edf2e126cfdbfcd1aec84d249d [INFO] linting danielmbomfim/iced_navigation against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielmbomfim%2Ficed_navigation" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/danielmbomfim/iced_navigation [INFO] finished tweaking git repo https://github.com/danielmbomfim/iced_navigation [INFO] tweaked toml for git repo https://github.com/danielmbomfim/iced_navigation written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/danielmbomfim/iced_navigation on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/danielmbomfim/iced_navigation 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded lru v0.16.2 [INFO] [stderr] Downloaded lilt v0.8.1 [INFO] [stderr] Downloaded iced_futures v0.14.0 [INFO] [stderr] Downloaded iced_tiny_skia v0.14.0 [INFO] [stderr] Downloaded async-trait v0.1.85 [INFO] [stderr] Downloaded mundy v0.2.2 [INFO] [stderr] Downloaded iced_wgpu v0.14.0 [INFO] [stderr] Downloaded iced_core v0.14.0 [INFO] [stderr] Downloaded cc v1.2.9 [INFO] [stderr] Downloaded pin-project v1.1.8 [INFO] [stderr] Downloaded iced_renderer v0.14.0 [INFO] [stderr] Downloaded iced_runtime v0.14.0 [INFO] [stderr] Downloaded iced_program v0.14.0 [INFO] [stderr] Downloaded iced_widget v0.14.2 [INFO] [stderr] Downloaded winnow v0.7.3 [INFO] [stderr] Downloaded iced_graphics v0.14.0 [INFO] [stderr] Downloaded cryoglyph v0.1.0 [INFO] [stderr] Downloaded pin-project-internal v1.1.8 [INFO] [stderr] Downloaded iced_winit v0.14.0 [INFO] [stderr] Downloaded rustix v0.38.43 [INFO] [stderr] Downloaded proc-quote v0.4.0 [INFO] [stderr] Downloaded iced_debug v0.14.0 [INFO] [stderr] Downloaded android-build v0.1.3 [INFO] [stderr] Downloaded window_clipboard v0.5.1 [INFO] [stderr] Downloaded proc-quote-impl v0.3.2 [INFO] [stderr] Downloaded winit v0.30.8 [INFO] [stderr] Downloaded iced v0.14.0 [INFO] [stderr] Downloaded iced_font_awesome v0.4.1 [INFO] [stderr] Downloaded cosmic-text v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 47a1cb17d5203e97ee754ccf0fe86c847b425d9d771793f9a544f24a3f4ba532 [INFO] running `Command { std: "docker" "start" "-a" "47a1cb17d5203e97ee754ccf0fe86c847b425d9d771793f9a544f24a3f4ba532", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "47a1cb17d5203e97ee754ccf0fe86c847b425d9d771793f9a544f24a3f4ba532", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47a1cb17d5203e97ee754ccf0fe86c847b425d9d771793f9a544f24a3f4ba532", kill_on_drop: false }` [INFO] [stdout] 47a1cb17d5203e97ee754ccf0fe86c847b425d9d771793f9a544f24a3f4ba532 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b330303e55958c56b8fb854acf1fec4c8fd56962bb20d2a54ef58038f500c358 [INFO] running `Command { std: "docker" "start" "-a" "b330303e55958c56b8fb854acf1fec4c8fd56962bb20d2a54ef58038f500c358", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Compiling rustix v0.38.43 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking unicode-ident v1.0.14 [INFO] [stderr] Compiling cc v1.2.9 [INFO] [stderr] Compiling wayland-sys v0.31.5 [INFO] [stderr] Compiling quick-xml v0.36.2 [INFO] [stderr] Compiling wayland-client v0.31.7 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Compiling winnow v0.7.3 [INFO] [stderr] Checking core_maths v0.1.1 [INFO] [stderr] Compiling syn v2.0.99 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Compiling wayland-scanner v0.31.5 [INFO] [stderr] Compiling indexmap v2.12.1 [INFO] [stderr] Compiling wayland-backend v0.3.7 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking lilt v0.8.1 [INFO] [stderr] Checking event-listener v5.4.0 [INFO] [stderr] Checking glam v0.25.0 [INFO] [stderr] Compiling toml_edit v0.22.24 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking event-listener-strategy v0.5.3 [INFO] [stderr] Checking tinyvec v1.8.1 [INFO] [stderr] Checking fontconfig-parser v0.5.7 [INFO] [stderr] Compiling naga v27.0.3 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking codespan-reporting v0.12.0 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking fontdb v0.23.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Compiling wgpu-hal v27.0.4 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking rangemap v1.5.1 [INFO] [stderr] Checking linebender_resource_handle v0.1.1 [INFO] [stderr] Checking self_cell v1.1.0 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking unicode-linebreak v0.1.5 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking ordered-float v5.1.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.19.2 [INFO] [stderr] Compiling wgpu-core v27.0.3 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Checking euclid v0.22.11 [INFO] [stderr] Compiling tiny-xlib v0.2.4 [INFO] [stderr] Compiling wgpu v27.0.1 [INFO] [stderr] Compiling endi v1.1.0 [INFO] [stderr] Compiling proc-macro-hack v0.5.20+deprecated [INFO] [stderr] Checking svg_fmt v0.4.4 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling softbuffer v0.4.6 [INFO] [stderr] Checking ctor-lite v0.1.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Checking etagere v0.2.13 [INFO] [stderr] Checking owned_ttf_parser v0.25.0 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.31 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking polling v3.7.4 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking iced_core v0.14.0 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Checking font-types v0.10.1 [INFO] [stderr] Checking read-fonts v0.35.0 [INFO] [stderr] Compiling enumflags2_derive v0.7.10 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking wayland-protocols v0.32.5 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking wgpu-types v27.0.1 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking wayland-cursor v0.31.7 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking iced_futures v0.14.0 [INFO] [stderr] Compiling zvariant_utils v3.2.1 [INFO] [stderr] Compiling enumflags2 v0.7.10 [INFO] [stderr] Checking iced_debug v0.14.0 [INFO] [stderr] Checking async-io v2.4.0 [INFO] [stderr] Compiling zvariant_derive v5.8.0 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking async-signal v0.2.10 [INFO] [stderr] Compiling android-build v0.1.3 [INFO] [stderr] Checking lru v0.16.2 [INFO] [stderr] Checking ab_glyph v0.2.29 [INFO] [stderr] Checking async-process v2.3.0 [INFO] [stderr] Compiling mundy v0.2.2 [INFO] [stderr] Compiling proc-quote-impl v0.3.2 [INFO] [stderr] Compiling async-trait v0.1.85 [INFO] [stderr] Compiling zvariant v5.8.0 [INFO] [stderr] Compiling serde_repr v0.1.19 [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Checking guillotiere v0.6.2 [INFO] [stderr] Checking async-executor v1.13.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.5 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking kurbo v0.10.4 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Compiling winit v0.30.8 [INFO] [stderr] Checking skrifa v0.37.0 [INFO] [stderr] Checking harfrust v0.3.2 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking zbus_names v4.2.0 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.5 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking clipboard_wayland v0.2.2 [INFO] [stderr] Compiling zbus_macros v5.12.0 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking iced_runtime v0.14.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking dpi v0.1.1 [INFO] [stderr] Compiling serde_json v1.0.135 [INFO] [stderr] Checking swash v0.2.6 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking clipboard_x11 v0.4.2 [INFO] [stderr] Checking window_clipboard v0.5.1 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Compiling proc-quote v0.4.0 [INFO] [stderr] Checking zbus v5.12.0 [INFO] [stderr] Compiling iced_navigation_derive v0.1.1 (/opt/rustwide/workdir/derive) [INFO] [stderr] Checking cosmic-text v0.15.0 [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:494:21 [INFO] [stdout] | [INFO] [stdout] 494 | / match meta.value()?.parse()? { [INFO] [stdout] 495 | | Lit::Str(lit_str) => title = Some(lit_str), [INFO] [stdout] 496 | | _ => {}, [INFO] [stdout] 497 | | }; [INFO] [stdout] | |_____________________^ help: try: `if let Lit::Str(lit_str) = meta.value()?.parse()? { title = Some(lit_str) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:524:21 [INFO] [stdout] | [INFO] [stdout] 524 | / match meta.value()?.parse()? { [INFO] [stdout] 525 | | Lit::Str(font) => fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 526 | | "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 527 | | "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] ... | [INFO] [stdout] 531 | | _ => {}, [INFO] [stdout] 532 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 524 ~ if let Lit::Str(font) = meta.value()?.parse()? { fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 525 + "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 526 + "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] 527 + "brands" => quote! { iced_font_awesome::IconFont::Brands }, [INFO] [stdout] 528 + _ => return Err(meta.error("Invalid value. Supported options are \"regular\", \"solid\" and \"brands\".")) [INFO] [stdout] 529 ~ }) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking iced_graphics v0.14.0 [INFO] [stderr] Checking iced_tiny_skia v0.14.0 [INFO] [stderr] Checking iced_program v0.14.0 [INFO] [stderr] Checking wgpu-core-deps-windows-linux-android v27.0.0 [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:494:21 [INFO] [stdout] | [INFO] [stdout] 494 | / match meta.value()?.parse()? { [INFO] [stdout] 495 | | Lit::Str(lit_str) => title = Some(lit_str), [INFO] [stdout] 496 | | _ => {}, [INFO] [stdout] 497 | | }; [INFO] [stdout] | |_____________________^ help: try: `if let Lit::Str(lit_str) = meta.value()?.parse()? { title = Some(lit_str) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:524:21 [INFO] [stdout] | [INFO] [stdout] 524 | / match meta.value()?.parse()? { [INFO] [stdout] 525 | | Lit::Str(font) => fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 526 | | "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 527 | | "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] ... | [INFO] [stdout] 531 | | _ => {}, [INFO] [stdout] 532 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 524 ~ if let Lit::Str(font) = meta.value()?.parse()? { fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 525 + "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 526 + "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] 527 + "brands" => quote! { iced_font_awesome::IconFont::Brands }, [INFO] [stdout] 528 + _ => return Err(meta.error("Invalid value. Supported options are \"regular\", \"solid\" and \"brands\".")) [INFO] [stdout] 529 ~ }) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:494:21 [INFO] [stdout] | [INFO] [stdout] 494 | / match meta.value()?.parse()? { [INFO] [stdout] 495 | | Lit::Str(lit_str) => title = Some(lit_str), [INFO] [stdout] 496 | | _ => {}, [INFO] [stdout] 497 | | }; [INFO] [stdout] | |_____________________^ help: try: `if let Lit::Str(lit_str) = meta.value()?.parse()? { title = Some(lit_str) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> derive/src/lib.rs:524:21 [INFO] [stdout] | [INFO] [stdout] 524 | / match meta.value()?.parse()? { [INFO] [stdout] 525 | | Lit::Str(font) => fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 526 | | "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 527 | | "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] ... | [INFO] [stdout] 531 | | _ => {}, [INFO] [stdout] 532 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 524 ~ if let Lit::Str(font) = meta.value()?.parse()? { fa_icon_font = Some(match font.value().as_str() { [INFO] [stdout] 525 + "regular" => quote! { iced_font_awesome::IconFont::Regular }, [INFO] [stdout] 526 + "solid" => quote! { iced_font_awesome::IconFont::Solid }, [INFO] [stdout] 527 + "brands" => quote! { iced_font_awesome::IconFont::Brands }, [INFO] [stdout] 528 + _ => return Err(meta.error("Invalid value. Supported options are \"regular\", \"solid\" and \"brands\".")) [INFO] [stdout] 529 ~ }) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking iced_winit v0.14.0 [INFO] [stderr] Checking cryoglyph v0.1.0 [INFO] [stderr] Checking iced_wgpu v0.14.0 [INFO] [stderr] Checking iced_renderer v0.14.0 [INFO] [stderr] Checking iced_widget v0.14.2 [INFO] [stderr] Checking iced v0.14.0 [INFO] [stderr] Checking iced_font_awesome v0.4.1 [INFO] [stderr] Checking iced_navigation v1.6.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> src/stack_navigator.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | fn into_component(&self) -> Box>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/stack_navigator.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pages: HashMap, Box>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` branch is empty [INFO] [stdout] --> src/stack_navigator.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | if self.going_back {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_ifs [INFO] [stdout] = note: `#[warn(clippy::needless_ifs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/components/header.rs:103:34 [INFO] [stdout] | [INFO] [stdout] 103 | self.settings = settings.unwrap_or_else(HeaderSettings::default); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Title` [INFO] [stdout] --> src/components/header.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | / pub fn new() -> Self { [INFO] [stdout] 167 | | Self [INFO] [stdout] 168 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 165 + impl Default for Title { [INFO] [stdout] 166 + fn default() -> Self { [INFO] [stdout] 167 + Self::new() [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/components/header.rs:181:28 [INFO] [stdout] | [INFO] [stdout] 181 | color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 181 - color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 181 + color: text_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `BackButton` [INFO] [stdout] --> src/components/header.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | / pub fn new() -> Self { [INFO] [stdout] 192 | | Self [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 190 + impl Default for BackButton { [INFO] [stdout] 191 + fn default() -> Self { [INFO] [stdout] 192 + Self::new() [INFO] [stdout] 193 + } [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/components/header.rs:213:32 [INFO] [stdout] | [INFO] [stdout] 213 | color: icon_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 213 - color: icon_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 213 + color: icon_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> src/stack_navigator.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | fn into_component(&self) -> Box>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/stack_navigator.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pages: HashMap, Box>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` branch is empty [INFO] [stdout] --> src/stack_navigator.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | if self.going_back {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_ifs [INFO] [stdout] = note: `#[warn(clippy::needless_ifs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/components/header.rs:103:34 [INFO] [stdout] | [INFO] [stdout] 103 | self.settings = settings.unwrap_or_else(HeaderSettings::default); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Title` [INFO] [stdout] --> src/components/header.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | / pub fn new() -> Self { [INFO] [stdout] 167 | | Self [INFO] [stdout] 168 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 165 + impl Default for Title { [INFO] [stdout] 166 + fn default() -> Self { [INFO] [stdout] 167 + Self::new() [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/components/header.rs:181:28 [INFO] [stdout] | [INFO] [stdout] 181 | color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 181 - color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 181 + color: text_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `BackButton` [INFO] [stdout] --> src/components/header.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | / pub fn new() -> Self { [INFO] [stdout] 192 | | Self [INFO] [stdout] 193 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 190 + impl Default for BackButton { [INFO] [stdout] 191 + fn default() -> Self { [INFO] [stdout] 192 + Self::new() [INFO] [stdout] 193 + } [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/components/header.rs:213:32 [INFO] [stdout] | [INFO] [stdout] 213 | color: icon_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 213 - color: icon_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 213 + color: icon_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> examples/stack_customization_derive.rs:62:32 [INFO] [stdout] | [INFO] [stdout] 62 | color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 62 - color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 62 + color: text_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PageA` [INFO] [stdout] --> examples/stack_customization_derive.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | / pub fn new() -> Self { [INFO] [stdout] 146 | | Self [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 144 ~ impl Default for PageA { [INFO] [stdout] 145 + fn default() -> Self { [INFO] [stdout] 146 + Self::new() [INFO] [stdout] 147 + } [INFO] [stdout] 148 + } [INFO] [stdout] 149 + [INFO] [stdout] 150 ~ impl PageA { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> examples/stack_customization.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / match self { [INFO] [stdout] 62 | | Page::PageA => settings.background_color = Some(color!(0, 255, 0)), [INFO] [stdout] 63 | | _ => {} [INFO] [stdout] 64 | | }; [INFO] [stdout] | |_________^ help: try: `if self == &Page::PageA { settings.background_color = Some(color!(0, 255, 0)) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> examples/stack_customization.rs:113:32 [INFO] [stdout] | [INFO] [stdout] 113 | color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 113 - color: text_color.or_else(|| Some(pallete.primary.base.text)), [INFO] [stdout] 113 + color: text_color.or(Some(pallete.primary.base.text)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PageB` [INFO] [stdout] --> examples/stack_customization_derive.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | / pub fn new() -> Self { [INFO] [stdout] 195 | | Self [INFO] [stdout] 196 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 193 ~ impl Default for PageB { [INFO] [stdout] 194 + fn default() -> Self { [INFO] [stdout] 195 + Self::new() [INFO] [stdout] 196 + } [INFO] [stdout] 197 + } [INFO] [stdout] 198 + [INFO] [stdout] 199 ~ impl PageB { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> examples/stack_login.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | LoginPage, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> examples/stack_login.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | HomePage(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LoginPage` [INFO] [stdout] --> examples/stack_login.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn new() -> Self { [INFO] [stdout] 79 | | Self { [INFO] [stdout] 80 | | username: String::new(), [INFO] [stdout] 81 | | password: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 77 ~ impl Default for LoginPage { [INFO] [stdout] 78 + fn default() -> Self { [INFO] [stdout] 79 + Self::new() [INFO] [stdout] 80 + } [INFO] [stdout] 81 + } [INFO] [stdout] 82 + [INFO] [stdout] 83 ~ impl LoginPage { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> examples/stack_login_derive.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | LoginPage, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> examples/stack_login_derive.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | HomePage(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LoginPage` [INFO] [stdout] --> examples/stack_login_derive.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | / pub fn new() -> Self { [INFO] [stdout] 61 | | Self { [INFO] [stdout] 62 | | username: String::new(), [INFO] [stdout] 63 | | password: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 59 ~ impl Default for LoginPage { [INFO] [stdout] 60 + fn default() -> Self { [INFO] [stdout] 61 + Self::new() [INFO] [stdout] 62 + } [INFO] [stdout] 63 + } [INFO] [stdout] 64 + [INFO] [stdout] 65 ~ impl LoginPage { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> examples/stack_login_derive.rs:141:26 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn new(name: &String) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 141 ~ pub fn new(name: &str) -> Self { [INFO] [stdout] 142 ~ Self { name: name.to_owned() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 02s [INFO] running `Command { std: "docker" "inspect" "b330303e55958c56b8fb854acf1fec4c8fd56962bb20d2a54ef58038f500c358", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b330303e55958c56b8fb854acf1fec4c8fd56962bb20d2a54ef58038f500c358", kill_on_drop: false }` [INFO] [stdout] b330303e55958c56b8fb854acf1fec4c8fd56962bb20d2a54ef58038f500c358