[INFO] fetching crate e2r 0.10.0...
[INFO] checking e2r-0.10.0 against master#b0696a5160711c068cb1f01b7437db7990d15750 for pr-121848
[INFO] extracting crate e2r 0.10.0 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate e2r 0.10.0 on toolchain b0696a5160711c068cb1f01b7437db7990d15750
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate e2r 0.10.0
[INFO] finished tweaking crates.io crate e2r 0.10.0
[INFO] tweaked toml for crates.io crate e2r 0.10.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cocoa v0.18.5
[INFO] [stderr]   Downloaded pretty_env_logger v0.2.5
[INFO] [stderr]   Downloaded cgl v0.2.3
[INFO] [stderr]   Downloaded xml-rs v0.7.0
[INFO] [stderr]   Downloaded gl v0.6.5
[INFO] [stderr]   Downloaded gl_generator v0.6.1
[INFO] [stderr]   Downloaded stb_truetype v0.3.1
[INFO] [stderr]   Downloaded xdg v2.5.2
[INFO] [stderr]   Downloaded gl_generator v0.13.1
[INFO] [stderr]   Downloaded gleam v0.6.19
[INFO] [stderr]   Downloaded glutin v0.20.1
[INFO] [stderr]   Downloaded image v0.17.0
[INFO] [stderr]   Downloaded winit v0.19.5
[INFO] [stderr]   Downloaded khronos_api v2.2.0
[INFO] [stderr]   Downloaded rusttype v0.8.3
[INFO] [stderr]   Downloaded mazth v0.2.1
[INFO] [stderr]   Downloaded zpatial v0.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4accc7b3998aca620294d21c933c1fc1f787fa0d00c528e08698adc1e074a701
[INFO] running `Command { std: "docker" "start" "-a" "4accc7b3998aca620294d21c933c1fc1f787fa0d00c528e08698adc1e074a701", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4accc7b3998aca620294d21c933c1fc1f787fa0d00c528e08698adc1e074a701", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4accc7b3998aca620294d21c933c1fc1f787fa0d00c528e08698adc1e074a701", kill_on_drop: false }`
[INFO] [stdout] 4accc7b3998aca620294d21c933c1fc1f787fa0d00c528e08698adc1e074a701
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8cc02f8ace2fc899b7c900f650f14843dd69dbb6aa31277c957f9175dff2d777
[INFO] running `Command { std: "docker" "start" "-a" "8cc02f8ace2fc899b7c900f650f14843dd69dbb6aa31277c957f9175dff2d777", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]     Checking wayland-sys v0.21.13
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]    Compiling khronos_api v2.2.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]    Compiling wayland-scanner v0.21.13
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]     Checking xdg v2.5.2
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling wayland-client v0.21.13
[INFO] [stderr]    Compiling wayland-protocols v0.21.13
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]     Checking num-bigint v0.1.44
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling gl_generator v0.6.1
[INFO] [stderr]     Checking num-iter v0.1.44
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]     Checking wayland-commons v0.21.13
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]    Compiling gl v0.6.5
[INFO] [stderr]     Checking rayon v1.9.0
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking inflate v0.3.4
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking chrono v0.4.35
[INFO] [stderr]     Checking gif v0.9.2
[INFO] [stderr]     Checking png v0.11.0
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking num-complex v0.1.43
[INFO] [stderr]     Checking memchr v1.0.2
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking nom v3.2.1
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking zpatial v0.0.0
[INFO] [stderr]     Checking mazth v0.2.1
[INFO] [stderr]     Checking env_logger v0.5.13
[INFO] [stderr]     Checking image v0.17.0
[INFO] [stderr]     Checking pretty_env_logger v0.2.5
[INFO] [stderr]     Checking smithay-client-toolkit v0.4.6
[INFO] [stderr]     Checking winit v0.19.5
[INFO] [stderr]     Checking glutin v0.20.1
[INFO] [stderr]     Checking e2r v0.10.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the item `FnMut` is imported redundantly
[INFO] [stdout]  --> core/interface/i_window.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::FnMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `FnMut` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> core/interface/i_window.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn handle_signal_request( & mut self, & [ Self::SignalRequestType ] ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: & [ Self::SignalRequestType ]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> core/interface/i_game_logic.rs:34:42
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn set_continue_compute( & mut self, bool );
[INFO] [stdout]    |                                          ^^^^ help: try naming the parameter or explicitly ignoring it: `_: bool`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> core/interface/i_renderer.rs:7:43
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn process_render_events( & mut self, Vec< Self::EventRender > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec< Self::EventRender >`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> core/interface/i_load.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn load( & mut self, Self::InputType ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::InputType`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated type `output` should have an upper camel case name
[INFO] [stdout]  --> core/interface/i_file.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 |     type output;
[INFO] [stdout]   |          ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Output`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Clone` is imported redundantly
[INFO] [stdout]  --> core/implement/file/md5rig.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::clone::Clone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Clone` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_file::IParseStr`
[INFO] [stdout]   --> core/implement/file/wavefrontobj.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use interface::i_file::IParseStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> core/implement/file/wavefrontcomp.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32`
[INFO] [stdout]  --> core/implement/file/wavefrontcomp.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::f32;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::nom::digit`
[INFO] [stdout]   --> core/implement/file/wavefrontcomp.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::nom::digit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `FnMut` is imported redundantly
[INFO] [stdout]  --> core/implement/window/winglutin.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::FnMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `FnMut` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::glutin::Context`
[INFO] [stdout]  --> core/implement/window/winglutin.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use self::glutin::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PhysicalPosition`, `PhysicalSize`
[INFO] [stdout]  --> core/implement/window/winglutin.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use self::glutin::dpi::{LogicalSize,PhysicalSize,PhysicalPosition};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:187:96
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout]     |                                                                                                ^^   ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout] 187 +     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< u64, & 'static str > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:219:105
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout]     |                                                                                                         ^^   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 219 -     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout] 219 +     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< u64, & 'static str > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/renderdevice_gl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/camera.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/light.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `String` is imported redundantly
[INFO] [stdout]  --> core/implement/render/shader_collection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `String` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/mesh.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/render_commands.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `String` is imported redundantly
[INFO] [stdout]  --> core/implement/render/texture_collection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `String` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> core/implement/render/texture_collection.rs:33:113
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< (u64), & 'static str > {
[INFO] [stdout]    |                                                                                                                 ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< (u64), & 'static str > {
[INFO] [stdout] 33 +     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< u64, & 'static str > {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/capability/capability_gl.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ::std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_interpolate::*`
[INFO] [stdout]  --> core/implement/cam/camguide.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use interface::i_interpolate::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::mazth::mat::*`
[INFO] [stdout]  --> core/implement/cam/camguide.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::mazth::mat::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Mat4x1` is imported redundantly
[INFO] [stdout]  --> core/implement/cam/camguide.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::mazth::mat::*;
[INFO] [stdout]   |     ------------------- the item `Mat4x1` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 9 | use self::mazth::mat::Mat4x1;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::mazth::i_comparable::IComparableError`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use self::mazth::i_comparable::IComparableError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_interpolate::IInterpolate`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use interface::i_interpolate::IInterpolate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_step::Step`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use interface::i_step::Step;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `implement::step::step_interpolate`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use implement::step::step_interpolate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> core/implement/math/sim_anneal.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 |     where F0: Fn( &[ f32 ], usize ) -> ( usize ), F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout]   |                                        ^^     ^^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 7 -     where F0: Fn( &[ f32 ], usize ) -> ( usize ), F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout] 7 +     where F0: Fn( &[ f32 ], usize ) -> usize, F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `FnMut` is imported redundantly
[INFO] [stdout]  --> core/interface/i_window.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::FnMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `FnMut` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> core/interface/i_window.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn handle_signal_request( & mut self, & [ Self::SignalRequestType ] ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: & [ Self::SignalRequestType ]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> core/interface/i_game_logic.rs:34:42
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn set_continue_compute( & mut self, bool );
[INFO] [stdout]    |                                          ^^^^ help: try naming the parameter or explicitly ignoring it: `_: bool`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> core/interface/i_renderer.rs:7:43
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn process_render_events( & mut self, Vec< Self::EventRender > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec< Self::EventRender >`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> core/interface/i_load.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn load( & mut self, Self::InputType ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::InputType`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated type `output` should have an upper camel case name
[INFO] [stdout]  --> core/interface/i_file.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 |     type output;
[INFO] [stdout]   |          ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Output`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Clone` is imported redundantly
[INFO] [stdout]  --> core/implement/file/md5rig.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::clone::Clone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Clone` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_file::IParseStr`
[INFO] [stdout]   --> core/implement/file/wavefrontobj.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use interface::i_file::IParseStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> core/implement/file/wavefrontcomp.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32`
[INFO] [stdout]  --> core/implement/file/wavefrontcomp.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::f32;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::nom::digit`
[INFO] [stdout]   --> core/implement/file/wavefrontcomp.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use self::nom::digit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `FnMut` is imported redundantly
[INFO] [stdout]  --> core/implement/window/winglutin.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::FnMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `FnMut` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::glutin::Context`
[INFO] [stdout]  --> core/implement/window/winglutin.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use self::glutin::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PhysicalPosition`, `PhysicalSize`
[INFO] [stdout]  --> core/implement/window/winglutin.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use self::glutin::dpi::{LogicalSize,PhysicalSize,PhysicalPosition};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:187:96
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout]     |                                                                                                ^^   ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout] 187 +     pub fn load_shader( & mut self, sources: &[ ( String, util_gl::ShaderType ) ] ) -> Result< u64, & 'static str > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:219:105
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout]     |                                                                                                         ^^   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 219 -     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< ( u64 ), & 'static str > {
[INFO] [stdout] 219 +     pub fn load_texture( & mut self, description: String, image: &[u8], w: usize, h: usize ) -> Result< u64, & 'static str > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/renderdevice_gl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/camera.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/light.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `String` is imported redundantly
[INFO] [stdout]  --> core/implement/render/shader_collection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `String` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/mesh.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/render/render_commands.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `String` is imported redundantly
[INFO] [stdout]  --> core/implement/render/texture_collection.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string::String;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `String` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> core/implement/render/texture_collection.rs:33:113
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< (u64), & 'static str > {
[INFO] [stdout]    |                                                                                                                 ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< (u64), & 'static str > {
[INFO] [stdout] 33 +     pub fn add( & mut self, shader_type: router::ShaderType, internal_handle: i64, descrip: String ) -> Result< u64, & 'static str > {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]  --> core/implement/capability/capability_gl.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ::std::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_interpolate::*`
[INFO] [stdout]  --> core/implement/cam/camguide.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use interface::i_interpolate::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::mazth::mat::*`
[INFO] [stdout]  --> core/implement/cam/camguide.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::mazth::mat::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Mat4x1` is imported redundantly
[INFO] [stdout]  --> core/implement/cam/camguide.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::mazth::mat::*;
[INFO] [stdout]   |     ------------------- the item `Mat4x1` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 9 | use self::mazth::mat::Mat4x1;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::mazth::i_comparable::IComparableError`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use self::mazth::i_comparable::IComparableError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_interpolate::IInterpolate`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use interface::i_interpolate::IInterpolate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interface::i_step::Step`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use interface::i_step::Step;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `implement::step::step_interpolate`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use implement::step::step_interpolate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> core/implement/math/sim_anneal.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 |     where F0: Fn( &[ f32 ], usize ) -> ( usize ), F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout]   |                                        ^^     ^^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 7 -     where F0: Fn( &[ f32 ], usize ) -> ( usize ), F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout] 7 +     where F0: Fn( &[ f32 ], usize ) -> usize, F1: Fn( f32 ) -> f32, F2: Fn( &[ f32 ], usize )-> f32
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub _impl: Box< IObjImpl >,
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub _impl: Box< dyn IObjImpl >,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:32:32
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub _components: Vec< Box< i_component::IComponent > >,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub _components: Vec< Box< dyn i_component::IComponent > >,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 |     _rp: Vec< Box< i_renderpass::IRenderPass > >,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     _rp: Vec< Box< dyn i_renderpass::IRenderPass > >,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_renderobj.rs:48:48
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn load_into_buffer( & mut self, rd: & mut RenderDevice ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn load_into_buffer( & mut self, rd: & mut dyn RenderDevice ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Clone for Box< IObjImpl > {
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Clone for Box< dyn IObjImpl > {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> core/interface/i_ele.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn as_any( & self ) -> & Any;
[INFO] [stdout]   |                              ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn as_any( & self ) -> & dyn Any;
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> core/interface/i_ele.rs:9:67
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn clone_box( & self ) -> Box< IObjImpl >;
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn clone_box( & self ) -> Box< dyn IObjImpl >;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn clone_box( & self ) -> Box< IObjImpl > {
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn clone_box( & self ) -> Box< dyn IObjImpl > {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn clone( & self ) -> Box< IObjImpl > {
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn clone( & self ) -> Box< dyn IObjImpl > {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Clone for Box< IComponent > {
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Clone for Box< dyn IComponent > {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn as_any( & self ) -> & Any;
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn as_any( & self ) -> & dyn Any;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clone_box( & self ) -> Box< IComponent >;
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clone_box( & self ) -> Box< dyn IComponent >;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn clone_box( & self ) -> Box< IComponent > {
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn clone_box( & self ) -> Box< dyn IComponent > {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn clone( & self ) -> Box< IComponent > {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn clone( & self ) -> Box< dyn IComponent > {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:44:56
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn flush_into_render_device( & self, rd: & mut i_renderobj::RenderDevice ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn flush_into_render_device( & self, rd: & mut dyn i_renderobj::RenderDevice ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:108:30
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:131:30
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:143:30
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:154:30
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub _impl: Box< IObjImpl >,
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub _impl: Box< dyn IObjImpl >,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:32:32
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub _components: Vec< Box< i_component::IComponent > >,
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub _components: Vec< Box< dyn i_component::IComponent > >,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 |     _rp: Vec< Box< i_renderpass::IRenderPass > >,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     _rp: Vec< Box< dyn i_renderpass::IRenderPass > >,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_renderobj.rs:48:48
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn load_into_buffer( & mut self, rd: & mut RenderDevice ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn load_into_buffer( & mut self, rd: & mut dyn RenderDevice ) -> Result< (), & 'static str >;
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Clone for Box< IObjImpl > {
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Clone for Box< dyn IObjImpl > {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> core/interface/i_ele.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn as_any( & self ) -> & Any;
[INFO] [stdout]   |                              ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn as_any( & self ) -> & dyn Any;
[INFO] [stdout]   |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> core/interface/i_ele.rs:9:67
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str >;
[INFO] [stdout]   |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn clone_box( & self ) -> Box< IObjImpl >;
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn clone_box( & self ) -> Box< dyn IObjImpl >;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn clone_box( & self ) -> Box< IObjImpl > {
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn clone_box( & self ) -> Box< dyn IObjImpl > {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_ele.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn clone( & self ) -> Box< IObjImpl > {
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn clone( & self ) -> Box< dyn IObjImpl > {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Clone for Box< IComponent > {
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Clone for Box< dyn IComponent > {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn as_any( & self ) -> & Any;
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn as_any( & self ) -> & dyn Any;
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clone_box( & self ) -> Box< IComponent >;
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn clone_box( & self ) -> Box< dyn IComponent >;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn clone_box( & self ) -> Box< IComponent > {
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn clone_box( & self ) -> Box< dyn IComponent > {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn clone( & self ) -> Box< IComponent > {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn clone( & self ) -> Box< dyn IComponent > {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:44:56
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn flush_into_render_device( & self, rd: & mut i_renderobj::RenderDevice ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn flush_into_render_device( & self, rd: & mut dyn i_renderobj::RenderDevice ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/interface/i_component.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:108:30
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:131:30
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:143:30
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/interface/i_component.rs:154:30
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:420:72
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_renderpass( & mut self, name: String ) -> Option< & mut i_renderpass::IRenderPass > {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_renderpass( & mut self, name: String ) -> Option< & mut dyn i_renderpass::IRenderPass > {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/camera.rs:81:30
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/camera.rs:84:67
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/light.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/light.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/mesh.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/mesh.rs:44:67
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/primitive.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/primitive.rs:27:67
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:276:30
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:279:67
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:397:30
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:400:67
[INFO] [stdout]     |
[INFO] [stdout] 400 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:25:67
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:44:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:48:67
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:67:30
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:71:67
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:94:67
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/render_commands.rs:113:30
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/render_commands.rs:117:67
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/math/frustum.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bound( & self ) -> &IBound {
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bound( & self ) -> &dyn IBound {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/math/frustum.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_intersect( & self, _other: & IShape ) -> ( bool, Option< Mat3x1< f64 > > ){
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_intersect( & self, _other: & dyn IShape ) -> ( bool, Option< Mat3x1< f64 > > ){
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:420:72
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_renderpass( & mut self, name: String ) -> Option< & mut i_renderpass::IRenderPass > {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn get_renderpass( & mut self, name: String ) -> Option< & mut dyn i_renderpass::IRenderPass > {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/camera.rs:81:30
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/camera.rs:84:67
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/light.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/light.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/mesh.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/mesh.rs:44:67
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/primitive.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/primitive.rs:27:67
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:276:30
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:279:67
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:397:30
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/primitive.rs:400:67
[INFO] [stdout]     |
[INFO] [stdout] 400 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:25:67
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:44:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:48:67
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:67:30
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:71:67
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]    |                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/render/render_commands.rs:94:67
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/render_commands.rs:113:30
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn as_any( & self ) -> & Any {
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn as_any( & self ) -> & dyn Any {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/implement/render/render_commands.rs:117:67
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn update_components( & mut self, components: & mut Vec< Box< i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn update_components( & mut self, components: & mut Vec< Box< dyn i_component::IComponent > > ) -> Result< (), & 'static str > {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/math/frustum.rs:44:32
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bound( & self ) -> &IBound {
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bound( & self ) -> &dyn IBound {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/implement/math/frustum.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_intersect( & self, _other: & IShape ) -> ( bool, Option< Mat3x1< f64 > > ){
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_intersect( & self, _other: & dyn IShape ) -> ( bool, Option< Mat3x1< f64 > > ){
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/test/math/test_interpolate.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn test_interp_forward< T >( interp: & mut IInterpolate< T, Item=T >, _start_val: & T, end_val: & T ) -> () 
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn test_interp_forward< T >( interp: & mut dyn IInterpolate< T, Item=T >, _start_val: & T, end_val: & T ) -> () 
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/test/math/test_interpolate.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn test_interp_forward_back< T >( interp: & mut IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> () 
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn test_interp_forward_back< T >( interp: & mut dyn IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> () 
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> core/test/math/test_interpolate.rs:86:42
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn test_iterator< T >( interp: & mut IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> ()
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn test_iterator< T >( interp: & mut dyn IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> ()
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> core/test/math/test_interpolate.rs:104:50
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn test_reverse_iterator< T >( interp: & mut IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> ()
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn test_reverse_iterator< T >( interp: & mut dyn IInterpolate< T, Item=T >, start_val: & T, end_val: & T ) -> ()
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `progress` is never read
[INFO] [stdout]    --> core/implement/file/wavefrontobj.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut progress = false;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn set_next( & mut self, pos: Mat4x1<f64> ){
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_offset`
[INFO] [stdout]    --> core/implement/logic/game0.rs:324:68
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn transition_states( & mut self, inputs: & [ InputFiltered ], win_offset: (i32,i32), win_size: (u32,u32) ) -> GameStateChangePending {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_size`
[INFO] [stdout]    --> core/implement/logic/game0.rs:324:91
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn transition_states( & mut self, inputs: & [ InputFiltered ], win_offset: (i32,i32), win_size: (u32,u32) ) -> GameStateChangePending {
[INFO] [stdout]     |                                                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_size`
[INFO] [stdout]   --> core/implement/ui/input_default_glutin.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let win_size = input.2;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical_size`
[INFO] [stdout]   --> core/implement/ui/input_default_glutin.rs:50:48
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 &glutin::WindowEvent::Resized( logical_size ) => { //todo
[INFO] [stdout]    |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_offset`
[INFO] [stdout]   --> core/implement/ui/ui_cam.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn process( & mut self, i: & InputFiltered, win_offset: (i32,i32), win_size: (u32,u32) ) {
[INFO] [stdout]    |                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `progress` is never read
[INFO] [stdout]    --> core/implement/file/wavefrontobj.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut progress = false;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/interface/i_component.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             uc.set_group( shader_program as _, **k, (**v).clone() ).is_ok();            
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let _ = uc.set_group( shader_program as _, **k, (**v).clone() ).is_ok();            
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/interface/i_kernel.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             (self.as_mut() as & mut R).process_render_events( events_render ).is_ok();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let _ = (self.as_mut() as & mut R).process_render_events( events_render ).is_ok();
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/file/md5comp.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = n._val.into_iter().cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = n._val.iter().cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                             ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = IntoIterator::into_iter(n._val).cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                      ++++++++++++++++++++++++      ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/file/ppm.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     buf_reader.read_to_end( & mut content ).is_ok();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _ = buf_reader.read_to_end( & mut content ).is_ok();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         self._shader_collection.borrow_mut().clear().is_ok(); //does DeleteProgram
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = self._shader_collection.borrow_mut().clear().is_ok(); //does DeleteProgram
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupClear::init( draw_group ) ) ).is_ok();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupClear::init( draw_group ) ) ).is_ok();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupBind::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupBind::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | ...   self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDependentUniforms::init( draw_group, &[0u64,1u64] ) ) ).is_ok...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDependentUniforms::init( draw_group, &[0u64,1u64] ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDispatch::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDispatch::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 | ...   self._shader_collection.borrow_mut().put( i as u64, router::ShaderType::GLSL, util_gl::create_program_from_shaders( compiled_shaders.as_slice() ) as _, String::from("ads_program") ).is_ok...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 let _ = self._shader_collection.borrow_mut().put( i as u64, router::ShaderType::GLSL, util_gl::create_program_from_shaders( compiled_shaders.as_slice() ) as _, String::from("ads_program") ).is_ok();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         renderer.reset_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         let _ = renderer.reset_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:342:25
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         renderer.bind_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let _ = renderer.bind_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:350:25
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         renderer.set_draw_group_uniforms( o._group_id, &o._uniform_ids[..] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         let _ = renderer.set_draw_group_uniforms( o._group_id, &o._uniform_ids[..] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:359:25
[INFO] [stdout]     |
[INFO] [stdout] 359 |                         Renderer::drawcall_draw_group( renderer_immut, &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |                         let _ = Renderer::drawcall_draw_group( renderer_immut, &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 106 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 103 ~             let data_map_mat4f : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("ModelViewMatrix\0"), &model_view_transform._val[..] ),
[INFO] [stdout] 104 |                                                                   ( String::from("ProjectionMatrix\0"), &self._proj_xform._val[..] ),
[INFO] [stdout] 105 |                                                                   ( String::from("MVP\0"), &mvp_transform._val[..] ),
[INFO] [stdout] 106 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...   ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                    ...
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 109 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                              
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 108 ~             let data_map_mat3f : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("NormalMatrix\0"), &normal_inv_transpose._val[..] ),
[INFO] [stdout] 109 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                              
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 114 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 112 ~             let data_group : HashMap< u64, Vec<String> > = IntoIterator::into_iter([ ( uniform_group_id, [ String::from("ModelViewMatrix\0"), String::from("NormalMatrix\0"), //todo: add warning message on unmatched uniform name in uniform manager
[INFO] [stdout] 113 |                                                                                    String::from("ProjectionMatrix\0"), String::from("MVP\0") ] ),
[INFO] [stdout] 114 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]   --> core/implement/render/light.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 43 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 35 ~             let data_map : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("Light.Position\0"), &self._pos._val[..] ),
[INFO] [stdout] 36 |                                                             ( String::from("Light.La\0"), &self._ads_val_amb._val[..] ),
[INFO] [stdout]  ...
[INFO] [stdout] 42 |                                                             ( String::from("Material.Shininess\0"), &[ 3f32 ] ),
[INFO] [stdout] 43 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]   --> core/implement/render/light.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 50 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 46 ~             let data_group : HashMap< u64, Vec<String> > = IntoIterator::into_iter([ ( uniform_group_id, [ String::from("Material.Ka\0"), String::from("Material.Kd\0"),
[INFO] [stdout] 47 |                                                                                    String::from("Material.Ks\0"), String::from("Material.Shininess\0"),
[INFO] [stdout] 48 |                                                                                    String::from("Light.Position\0"), String::from("Light.La\0"),
[INFO] [stdout] 49 |                                                                                    String::from("Light.Ld\0"), String::from("Light.Ls\0") ] ),
[INFO] [stdout] 50 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/mesh.rs:103:122
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...                   ( i_renderobj::BuffDataType::TC, tc ) ].into_iter().cloned().collect();
[INFO] [stdout]     |                                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 103 |                                                                                  ( i_renderobj::BuffDataType::TC, tc ) ].iter().cloned().collect();
[INFO] [stdout]     |                                                                                                                          ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 101 ~             let data_map : HashMap< i_renderobj::BuffDataType, Vec<f32> > =  IntoIterator::into_iter([ ( i_renderobj::BuffDataType::POS, pos ),
[INFO] [stdout] 102 |                                                                                  ( i_renderobj::BuffDataType::NORMAL, normal ),
[INFO] [stdout] 103 ~                                                                                  ( i_renderobj::BuffDataType::TC, tc ) ]).cloned().collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:355:49
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = self._positions[ i[0] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = self._positions[ i[0] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = IntoIterator::into_iter(self._positions[ i[0] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:356:49
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = self._positions[ i[1] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = self._positions[ i[1] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = IntoIterator::into_iter(self._positions[ i[1] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:357:49
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = self._positions[ i[2] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = self._positions[ i[2] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = IntoIterator::into_iter(self._positions[ i[2] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 111 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> core/implement/cam/camguide.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn set_next( & mut self, pos: Mat4x1<f64> ){
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_offset`
[INFO] [stdout]    --> core/implement/logic/game0.rs:324:68
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn transition_states( & mut self, inputs: & [ InputFiltered ], win_offset: (i32,i32), win_size: (u32,u32) ) -> GameStateChangePending {
[INFO] [stdout]     |                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_size`
[INFO] [stdout]    --> core/implement/logic/game0.rs:324:91
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn transition_states( & mut self, inputs: & [ InputFiltered ], win_offset: (i32,i32), win_size: (u32,u32) ) -> GameStateChangePending {
[INFO] [stdout]     |                                                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_size`
[INFO] [stdout]   --> core/implement/ui/input_default_glutin.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let win_size = input.2;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logical_size`
[INFO] [stdout]   --> core/implement/ui/input_default_glutin.rs:50:48
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 &glutin::WindowEvent::Resized( logical_size ) => { //todo
[INFO] [stdout]    |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_logical_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_offset`
[INFO] [stdout]   --> core/implement/ui/ui_cam.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn process( & mut self, i: & InputFiltered, win_offset: (i32,i32), win_size: (u32,u32) ) {
[INFO] [stdout]    |                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> games/model_viewer/mod.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(main)]
[INFO] [stdout]   |            ^^^^ feature has been removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> games/n_of_a_kind/mod.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(main)]
[INFO] [stdout]   |            ^^^^ feature has been removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> games/model_viewer/mod.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(main)]
[INFO] [stdout]   |            ^^^^ feature has been removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> games/n_of_a_kind/mod.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(main)]
[INFO] [stdout]   |            ^^^^ feature has been removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `use_extern_macros` has been stable since 1.30.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> core/example/example_kernel_impl001.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(use_extern_macros)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `use_extern_macros` has been stable since 1.30.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> core/example/example_kernel_impl001.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(use_extern_macros)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `main` in this scope
[INFO] [stdout]    --> games/model_viewer/main.rs:566:3
[INFO] [stdout]     |
[INFO] [stdout] 566 | #[main]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `main` is in scope, but it is a function, not an attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for main.rs
[INFO] [stdout]  --> games/model_viewer/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod main;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: a binary crate cannot be used as library
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> games/model_viewer/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::e2rcore::implement::render::texture`
[INFO] [stdout]   --> games/model_viewer/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use self::e2rcore::implement::render::texture;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::image::GenericImage`
[INFO] [stdout]   --> games/model_viewer/main.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | use self::image::GenericImage;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `md5common` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `md5common` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 57 | use self::e2rcore::implement::file::md5common;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `wavefrontobj` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `wavefrontobj` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 58 | use self::e2rcore::implement::file::wavefrontobj;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `wavefrontcomp` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `wavefrontcomp` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 59 | use self::e2rcore::implement::file::wavefrontcomp;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0601]: `main` function not found in crate `model_viewer`
[INFO] [stdout]    --> games/model_viewer/mod.rs:5:14
[INFO] [stdout]     |
[INFO] [stdout] 5   | pub mod main;
[INFO] [stdout]     |              ^ the main function must be defined at the crate level (in `games/model_viewer/mod.rs`)
[INFO] [stdout]     |
[INFO] [stdout] note: here is a function named `main`
[INFO] [stdout]    --> games/model_viewer/main.rs:567:1
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn main() {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout]     = note: you have one or more functions named `main` not defined at the crate level
[INFO] [stdout]     = help: consider moving the `main` function definitions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `main` in this scope
[INFO] [stdout]    --> games/model_viewer/main.rs:566:3
[INFO] [stdout]     |
[INFO] [stdout] 566 | #[main]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `main` is in scope, but it is a function, not an attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `main` in this scope
[INFO] [stdout]    --> games/n_of_a_kind/main.rs:674:3
[INFO] [stdout]     |
[INFO] [stdout] 674 | #[main]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `main` is in scope, but it is a function, not an attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for main.rs
[INFO] [stdout]  --> games/model_viewer/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod main;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: a binary crate cannot be used as library
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> games/model_viewer/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::e2rcore::implement::render::texture`
[INFO] [stdout]   --> games/model_viewer/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use self::e2rcore::implement::render::texture;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::image::GenericImage`
[INFO] [stdout]   --> games/model_viewer/main.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | use self::image::GenericImage;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `md5common` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `md5common` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 57 | use self::e2rcore::implement::file::md5common;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `wavefrontobj` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `wavefrontobj` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 58 | use self::e2rcore::implement::file::wavefrontobj;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `wavefrontcomp` is imported redundantly
[INFO] [stdout]   --> games/model_viewer/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | use self::e2rcore::implement::file::*;
[INFO] [stdout]    |     --------------------------------- the item `wavefrontcomp` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 59 | use self::e2rcore::implement::file::wavefrontcomp;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `main` in this scope
[INFO] [stdout]    --> games/n_of_a_kind/main.rs:674:3
[INFO] [stdout]     |
[INFO] [stdout] 674 | #[main]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `main` is in scope, but it is a function, not an attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for main.rs
[INFO] [stdout]  --> games/n_of_a_kind/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod main;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: a binary crate cannot be used as library
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: found module declaration for main.rs
[INFO] [stdout]  --> games/n_of_a_kind/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub mod main;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: a binary crate cannot be used as library
[INFO] [stdout]   = note: `#[warn(special_module_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0601]: `main` function not found in crate `n_of_a_kind`
[INFO] [stdout]    --> games/n_of_a_kind/mod.rs:5:14
[INFO] [stdout]     |
[INFO] [stdout] 5   | pub mod main;
[INFO] [stdout]     |              ^ the main function must be defined at the crate level (in `games/n_of_a_kind/mod.rs`)
[INFO] [stdout]     |
[INFO] [stdout] note: here is a function named `main`
[INFO] [stdout]    --> games/n_of_a_kind/main.rs:675:1
[INFO] [stdout]     |
[INFO] [stdout] 675 | fn main() {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout]     = note: you have one or more functions named `main` not defined at the crate level
[INFO] [stdout]     = help: consider moving the `main` function definitions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/interface/i_component.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             uc.set_group( shader_program as _, **k, (**v).clone() ).is_ok();            
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let _ = uc.set_group( shader_program as _, **k, (**v).clone() ).is_ok();            
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/interface/i_kernel.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             (self.as_mut() as & mut R).process_render_events( events_render ).is_ok();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let _ = (self.as_mut() as & mut R).process_render_events( events_render ).is_ok();
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/file/md5comp.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = n._val.into_iter().cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = n._val.iter().cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                             ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let ns = IntoIterator::into_iter(n._val).cycle().cloned().take(9).collect::<Vec<f32>>();
[INFO] [stdout]     |                      ++++++++++++++++++++++++      ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/file/ppm.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     buf_reader.read_to_end( & mut content ).is_ok();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let _ = buf_reader.read_to_end( & mut content ).is_ok();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         self._shader_collection.borrow_mut().clear().is_ok(); //does DeleteProgram
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = self._shader_collection.borrow_mut().clear().is_ok(); //does DeleteProgram
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]   --> core/implement/render/renderer_gl.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupClear::init( draw_group ) ) ).is_ok();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupClear::init( draw_group ) ) ).is_ok();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupBind::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupBind::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | ...   self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDependentUniforms::init( draw_group, &[0u64,1u64] ) ) ).is_ok...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDependentUniforms::init( draw_group, &[0u64,1u64] ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |         self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDispatch::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = self.add_obj( dummy_str, i_ele::Ele::init( render_commands::CmdDrawGroupDispatch::init( draw_group ) ) ).is_ok();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 | ...   self._shader_collection.borrow_mut().put( i as u64, router::ShaderType::GLSL, util_gl::create_program_from_shaders( compiled_shaders.as_slice() ) as _, String::from("ads_program") ).is_ok...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 let _ = self._shader_collection.borrow_mut().put( i as u64, router::ShaderType::GLSL, util_gl::create_program_from_shaders( compiled_shaders.as_slice() ) as _, String::from("ads_program") ).is_ok();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         renderer.reset_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         let _ = renderer.reset_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:342:25
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         renderer.bind_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let _ = renderer.bind_draw_group_data( &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:350:25
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         renderer.set_draw_group_uniforms( o._group_id, &o._uniform_ids[..] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         let _ = renderer.set_draw_group_uniforms( o._group_id, &o._uniform_ids[..] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Result::<T, E>::is_ok` that must be used
[INFO] [stdout]    --> core/implement/render/renderer_gl.rs:359:25
[INFO] [stdout]     |
[INFO] [stdout] 359 |                         Renderer::drawcall_draw_group( renderer_immut, &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you intended to assert that this is ok, consider `.unwrap()` instead
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 359 |                         let _ = Renderer::drawcall_draw_group( renderer_immut, &[ o._group_id ] ).is_ok();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 106 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 103 ~             let data_map_mat4f : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("ModelViewMatrix\0"), &model_view_transform._val[..] ),
[INFO] [stdout] 104 |                                                                   ( String::from("ProjectionMatrix\0"), &self._proj_xform._val[..] ),
[INFO] [stdout] 105 |                                                                   ( String::from("MVP\0"), &mvp_transform._val[..] ),
[INFO] [stdout] 106 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0557, E0601.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...   ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                    ...
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 109 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                              
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 108 ~             let data_map_mat3f : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("NormalMatrix\0"), &normal_inv_transpose._val[..] ),
[INFO] [stdout] 109 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();                                                              
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/camera.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 114 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 112 ~             let data_group : HashMap< u64, Vec<String> > = IntoIterator::into_iter([ ( uniform_group_id, [ String::from("ModelViewMatrix\0"), String::from("NormalMatrix\0"), //todo: add warning message on unmatched uniform name in uniform manager
[INFO] [stdout] 113 |                                                                                    String::from("ProjectionMatrix\0"), String::from("MVP\0") ] ),
[INFO] [stdout] 114 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]   --> core/implement/render/light.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 43 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 35 ~             let data_map : HashMap< String, Vec<f32> > =  IntoIterator::into_iter([ ( String::from("Light.Position\0"), &self._pos._val[..] ),
[INFO] [stdout] 36 |                                                             ( String::from("Light.La\0"), &self._ads_val_amb._val[..] ),
[INFO] [stdout]  ...
[INFO] [stdout] 42 |                                                             ( String::from("Material.Shininess\0"), &[ 3f32 ] ),
[INFO] [stdout] 43 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]   --> core/implement/render/light.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |             ].into_iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 50 |             ].iter().map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |               ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 46 ~             let data_group : HashMap< u64, Vec<String> > = IntoIterator::into_iter([ ( uniform_group_id, [ String::from("Material.Ka\0"), String::from("Material.Kd\0"),
[INFO] [stdout] 47 |                                                                                    String::from("Material.Ks\0"), String::from("Material.Shininess\0"),
[INFO] [stdout] 48 |                                                                                    String::from("Light.Position\0"), String::from("Light.La\0"),
[INFO] [stdout] 49 |                                                                                    String::from("Light.Ld\0"), String::from("Light.Ls\0") ] ),
[INFO] [stdout] 50 ~             ]).map(|&( ref k, ref v)| ( k.clone(), v[..].to_vec() ) ).collect();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/mesh.rs:103:122
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...                   ( i_renderobj::BuffDataType::TC, tc ) ].into_iter().cloned().collect();
[INFO] [stdout]     |                                                               ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 103 |                                                                                  ( i_renderobj::BuffDataType::TC, tc ) ].iter().cloned().collect();
[INFO] [stdout]     |                                                                                                                          ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 101 ~             let data_map : HashMap< i_renderobj::BuffDataType, Vec<f32> > =  IntoIterator::into_iter([ ( i_renderobj::BuffDataType::POS, pos ),
[INFO] [stdout] 102 |                                                                                  ( i_renderobj::BuffDataType::NORMAL, normal ),
[INFO] [stdout] 103 ~                                                                                  ( i_renderobj::BuffDataType::TC, tc ) ]).cloned().collect();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:355:49
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = self._positions[ i[0] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = self._positions[ i[0] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 let x = IntoIterator::into_iter(self._positions[ i[0] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:356:49
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = self._positions[ i[1] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = self._positions[ i[1] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 356 |                 let y = IntoIterator::into_iter(self._positions[ i[1] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> core/implement/render/primitive.rs:357:49
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = self._positions[ i[2] ].into_iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = self._positions[ i[2] ].iter().enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                                                 ~~~~
[INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 let z = IntoIterator::into_iter(self._positions[ i[2] ]).enumerate().map(|(k,o)| o*r + offset[k] ).collect::<Vec<f32> >();
[INFO] [stdout]     |                         ++++++++++++++++++++++++                       ~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> core/test/math/test_interpolate.rs:108:14
[INFO] [stdout]     |
[INFO] [stdout] 108 |     for x in interp.next() {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to iterate over `interp` remove the call to `next`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     for x in interp.by_ref() {
[INFO] [stdout]     |                    ~~~~~~~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 108 |     if let Some(x) = interp.next() {
[INFO] [stdout]     |     ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> core/test/math/test_interpolate.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |     for x in interp.next_back() {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 118 |     while let Some(x) = interp.next_back() {
[INFO] [stdout]     |     ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 118 |     if let Some(x) = interp.next_back() {
[INFO] [stdout]     |     ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5rig_nom.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 |         Err( e ) => panic!( e ),
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 13 |         Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5rig_nom.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Err( e ) => panic!( e ),
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 17 |         Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5comp_nom.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Err( e ) => panic!( e ),
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5comp_nom.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Err( e ) => panic!( e ),
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 19 |         Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5comp_nom.rs:23:29
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Err( e ) => panic!( e ),
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                             +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> core/test/file/test_md5comp_nom.rs:30:33
[INFO] [stdout]    |
[INFO] [stdout] 30 |             Err( e ) => panic!( e ),
[INFO] [stdout]    |                                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 30 |             Err( e ) => panic!( "{}", e ),
[INFO] [stdout]    |                                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `e2r` (bin "model_viewer") due to 4 previous errors; 7 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 2 previous errors; 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `e2r` (bin "model_viewer" test) due to 3 previous errors; 7 warnings emitted
[INFO] [stdout] error: aborting due to 2 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `e2r` (bin "n_of_a_kind" test) due to 3 previous errors; 1 warning emitted
[INFO] [stdout] warning: 123 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0557, E0601.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `e2r` (bin "n_of_a_kind") due to 4 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "8cc02f8ace2fc899b7c900f650f14843dd69dbb6aa31277c957f9175dff2d777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8cc02f8ace2fc899b7c900f650f14843dd69dbb6aa31277c957f9175dff2d777", kill_on_drop: false }`
[INFO] [stdout] 8cc02f8ace2fc899b7c900f650f14843dd69dbb6aa31277c957f9175dff2d777
