[INFO] updating cached repository https://github.com/bollu/equinox
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 6f8874dd0cff8bd044e31e8c0638e78c88cc8a5b
[INFO] checking bollu/equinox against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbollu%2Fequinox" "/workspace/builds/worker-0/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/bollu/equinox on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/bollu/equinox
[INFO] finished tweaking git repo https://github.com/bollu/equinox
[INFO] tweaked toml for git repo https://github.com/bollu/equinox written to /workspace/builds/worker-0/source/Cargo.toml
[INFO] crate git repo https://github.com/bollu/equinox already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] b628e64cf2aab08c003cd9dd1ef49699e8e884d54e0480d75b8e721e8d50dcdf
[INFO] running `"docker" "start" "-a" "b628e64cf2aab08c003cd9dd1ef49699e8e884d54e0480d75b8e721e8d50dcdf"`
[INFO] [stderr]    Compiling sfml-build v0.1.0
[INFO] [stderr]     Checking num-complex v0.1.37
[INFO] [stderr]     Checking num-bigint v0.1.37
[INFO] [stderr]    Compiling csfml-system-sys v0.2.1
[INFO] [stderr]    Compiling csfml-window-sys v0.2.0
[INFO] [stderr]    Compiling csfml-audio-sys v0.2.0
[INFO] [stderr]    Compiling csfml-graphics-sys v0.3.0
[INFO] [stderr]     Checking num-rational v0.1.36
[INFO] [stderr]     Checking num v0.1.37
[INFO] [stderr]     Checking sfml v0.12.0
[INFO] [stderr]     Checking equinox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused import: `std::collections`
[INFO] [stderr]   --> src/main.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use std::collections;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/event_queue.rs:10:32
[INFO] [stderr]    |
[INFO] [stderr] 10 |     handlers: VecDeque<&'a mut EventHandler>,
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn EventHandler`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/event_queue.rs:17:45
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn push(&mut self, handler: &'a mut EventHandler) {
[INFO] [stderr]    |                                             ^^^^^^^^^^^^ help: use `dyn`: `dyn EventHandler`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/rendering.rs:76:29
[INFO] [stderr]    |
[INFO] [stderr] 76 |     renderers: VecDeque<&'a Drawable>,
[INFO] [stderr]    |                             ^^^^^^^^ help: use `dyn`: `dyn Drawable`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/rendering.rs:88:42
[INFO] [stderr]    |
[INFO] [stderr] 88 |     pub fn push(&mut self, renderer: &'a Drawable) {
[INFO] [stderr]    |                                          ^^^^^^^^ help: use `dyn`: `dyn Drawable`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `engine::settings::Settings`
[INFO] [stderr]  --> src/engine/state.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use engine::settings::Settings;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/state.rs:41:34
[INFO] [stderr]    |
[INFO] [stderr] 41 |     states: HashMap<StateId, Box<State>>,
[INFO] [stderr]    |                                  ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/state.rs:69:57
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn add_state(&mut self, id: StateId, state: Box<State>) {
[INFO] [stderr]    |                                                         ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/engine/state.rs:113:59
[INFO] [stderr]     |
[INFO] [stderr] 113 |     fn get_current_state<'a>(&'a mut self) -> &'a mut Box<State> {
[INFO] [stderr]     |                                                           ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StateData`
[INFO] [stderr]  --> src/game/main_menu.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use engine::state::{StateData, State, EngineState};
[INFO] [stderr]   |                     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `game`
[INFO] [stderr]   --> src/game/main_menu.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use game;
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StateData`
[INFO] [stderr]  --> src/game/slot_select_menu.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use engine::state::{StateData, State, EngineState};
[INFO] [stderr]   |                     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `game`
[INFO] [stderr]   --> src/game/slot_select_menu.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use game;
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::vec::Vec`
[INFO] [stderr]  --> src/game/level.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::vec::Vec;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/game/savefile.rs:23:64
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                                                ^^^^^ help: use `dyn`: `dyn Write`
[INFO] [stderr] 
[INFO] [stderr] warning: type `keyboard` should have an upper camel case name
[INFO] [stderr]  --> src/heart/game_event_layer.rs:8:6
[INFO] [stderr]   |
[INFO] [stderr] 8 | type keyboard = Key;
[INFO] [stderr]   |      ^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Keyboard`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/main.rs:35:48
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                |
[INFO] [stderr]    |                                                expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                                help: consider borrowing here: `&"settings".to_string()`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |         ^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: all local variables must have a statically known size
[INFO] [stderr]    = help: unsized locals are gated as an unstable feature
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> src/main.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 50 | /         loop {
[INFO] [stderr] 51 | |             let event = window.poll();
[INFO] [stderr] 52 | |
[INFO] [stderr] 53 | |             match event {
[INFO] [stderr] ...  |
[INFO] [stderr] 64 | |             }
[INFO] [stderr] 65 | |         }
[INFO] [stderr]    | |_________- any code following this expression is unreachable
[INFO] [stderr] 66 | 
[INFO] [stderr] 67 |           let engine_state =  state_machine.tick(1.0 / 60.0, &mut event_queue, &mut render_queue);
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:35:24
[INFO] [stderr]    |
[INFO] [stderr] 35 |       let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr] ...
[INFO] [stderr] 49 | /     while window.is_open() {
[INFO] [stderr] 50 | |         loop {
[INFO] [stderr] 51 | |             let event = window.poll();
[INFO] [stderr] 52 | |
[INFO] [stderr] ...  |
[INFO] [stderr] 75 | |         window.display();
[INFO] [stderr] 76 | |     }
[INFO] [stderr]    | |_____- this returned value is of type `()`
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::collections::VecDeque<&'a mut (dyn engine::event_queue::EventHandler + 'a)>` in the current scope
[INFO] [stderr]   --> src/engine/event_queue.rs:23:38
[INFO] [stderr]    |
[INFO] [stderr] 23 |         for handler in self.handlers.mut_iter() {
[INFO] [stderr]    |                                      ^^^^^^^^ method not found in `std::collections::VecDeque<&'a mut (dyn engine::event_queue::EventHandler + 'a)>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `new_init` found for struct `sfml::window::VideoMode` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:20:36
[INFO] [stderr]    |
[INFO] [stderr] 20 |         let videoMode = VideoMode::new_init(width, height, 32);
[INFO] [stderr]    |                                    ^^^^^^^^ function or associated item not found in `sfml::window::VideoMode`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no associated item named `FULLSCREEN` found for struct `sfml::window::Style` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:22:20
[INFO] [stderr]    |
[INFO] [stderr] 22 |             Style::FULLSCREEN
[INFO] [stderr]    |                    ^^^^^^^^^^ associated item not found in `sfml::window::Style`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no associated item named `CLOSE` found for struct `sfml::window::Style` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:24:20
[INFO] [stderr]    |
[INFO] [stderr] 24 |             Style::CLOSE
[INFO] [stderr]    |                    ^^^^^ associated item not found in `sfml::window::Style`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/rendering.rs:28:55
[INFO] [stderr]    |
[INFO] [stderr] 28 |         Window { window: RenderWindow::new(videoMode, title, style, &setting).unwrap() }
[INFO] [stderr]    |                                                       ^^^^^
[INFO] [stderr]    |                                                       |
[INFO] [stderr]    |                                                       expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                                       help: consider borrowing here: `&title`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/rendering.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn poll(&mut self) -> Event {
[INFO] [stderr]    |                               ----- expected `sfml::window::Event` because of return type
[INFO] [stderr] 36 |         self.window.poll_event()
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `sfml::window::Event`, found enum `std::option::Option`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `sfml::window::Event`
[INFO] [stderr]               found enum `std::option::Option<sfml::window::Event>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `clear` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:44:21
[INFO] [stderr]    |
[INFO] [stderr] 44 |         self.window.clear(&clear_color);
[INFO] [stderr]    |                     ^^^^^ method not found in `sfml::graphics::RenderWindow`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/render_target.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn clear(&mut self, color: &Color);
[INFO] [stderr]    |        -----
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::RenderTarget;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:52:21
[INFO] [stderr]    |
[INFO] [stderr] 52 |         self.window.get_size().x as usize
[INFO] [stderr]    |                     ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:56:21
[INFO] [stderr]    |
[INFO] [stderr] 56 |         self.window.get_size().y as usize
[INFO] [stderr]    |                     ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:60:32
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let size = self.window.get_size();
[INFO] [stderr]    |                                ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `new_RGB` found for struct `sfml::graphics::Color` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:84:33
[INFO] [stderr]    |
[INFO] [stderr] 84 |             clear_color: Color::new_RGB(0, 0, 20),
[INFO] [stderr]    |                                 ^^^^^^^ function or associated item not found in `sfml::graphics::Color`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `draw_in_render_window` found for reference `&&dyn sfml::graphics::Drawable` in the current scope
[INFO] [stderr]    --> src/engine/rendering.rs:103:22
[INFO] [stderr]     |
[INFO] [stderr] 103 |             renderer.draw_in_render_window(render_window);
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^ method not found in `&&dyn sfml::graphics::Drawable`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `find` found for struct `std::collections::HashMap<std::string::String, engine::resource_loader::Resource>` in the current scope
[INFO] [stderr]   --> src/engine/resource_loader.rs:34:30
[INFO] [stderr]    |
[INFO] [stderr] 34 |         match self.resources.find(key) {
[INFO] [stderr]    |                              ^^^^ method not found in `std::collections::HashMap<std::string::String, engine::resource_loader::Resource>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/engine/state.rs:114:9
[INFO] [stderr]     |
[INFO] [stderr] 114 |         self.states.get_mut(&self.current_id)
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected mutable reference, found enum `std::option::Option`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected mutable reference `&'a mut std::boxed::Box<(dyn engine::state::State + 'static)>`
[INFO] [stderr]                             found enum `std::option::Option<&mut std::boxed::Box<(dyn engine::state::State + 'static)>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:27:44
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn new(settings_path_raw: &str) -> Settings {
[INFO] [stderr]    |                                            ^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `read_to_str` found for enum `std::result::Result<std::fs::File, std::io::Error>` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:31:46
[INFO] [stderr]    |
[INFO] [stderr] 31 |             let contents = File::open(&path).read_to_str().unwrap();
[INFO] [stderr]    |                                              ^^^^^^^^^^^ method not found in `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/settings.rs:35:32
[INFO] [stderr]    |
[INFO] [stderr] 35 |                 settings_path: path,
[INFO] [stderr]    |                                ^^^^ expected struct `std::path::Path`, found `&std::path::Path`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 | /             Settings {
[INFO] [stderr] 35 | |                 settings_path: path,
[INFO] [stderr] 36 | |                 key_value_pair: key_value_pair,
[INFO] [stderr] 37 | |             }
[INFO] [stderr]    | |_____________^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: structs must have a statically known size to be initialized
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/settings.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |                 settings_path: path,
[INFO] [stderr]    |                                ^^^^ expected struct `std::path::Path`, found `&std::path::Path`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 | /             Settings {
[INFO] [stderr] 42 | |                 settings_path: path,
[INFO] [stderr] 43 | |                 key_value_pair: key_value_pair,
[INFO] [stderr] 44 | |             }
[INFO] [stderr]    | |_____________^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: structs must have a statically known size to be initialized
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `find_or_insert` found for struct `std::collections::HashMap<std::string::String, engine::settings::Setting>` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:49:36
[INFO] [stderr]    |
[INFO] [stderr] 49 |         return self.key_value_pair.find_or_insert(name, default_value);
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^ method not found in `std::collections::HashMap<std::string::String, engine::settings::Setting>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `char_at` found for reference `&str` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:54:20
[INFO] [stderr]    |
[INFO] [stderr] 54 |         match name.char_at(0) {
[INFO] [stderr]    |                    ^^^^^^^ method not found in `&str`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `isize` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:57:36
[INFO] [stderr]    |
[INFO] [stderr] 57 |                 let value = isize::from_str(valueStr).unwrap();
[INFO] [stderr]    |                                    ^^^^^^^^ function or associated item not found in `isize`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |                 let value = f32::from_str(valueStr).unwrap();
[INFO] [stderr]    |                                  ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:73:35
[INFO] [stderr]    |
[INFO] [stderr] 73 |                 let float1 = f32::from_str(*floatPair.get(0)).unwrap();
[INFO] [stderr]    |                                   ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0614]: type `std::option::Option<&&str>` cannot be dereferenced
[INFO] [stderr]   --> src/engine/settings.rs:73:44
[INFO] [stderr]    |
[INFO] [stderr] 73 |                 let float1 = f32::from_str(*floatPair.get(0)).unwrap();
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:74:35
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 let float2 = f32::from_str(*floatPair.get(1)).unwrap();
[INFO] [stderr]    |                                   ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0614]: type `std::option::Option<&&str>` cannot be dereferenced
[INFO] [stderr]   --> src/engine/settings.rs:74:44
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 let float2 = f32::from_str(*floatPair.get(1)).unwrap();
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `trim` found for enum `std::option::Option<&&str>` in the current scope
[INFO] [stderr]    --> src/engine/settings.rs:101:40
[INFO] [stderr]     |
[INFO] [stderr] 101 |             let name = dataPair.get(0).trim();
[INFO] [stderr]     |                                        ^^^^ method not found in `std::option::Option<&&str>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `trim` found for enum `std::option::Option<&&str>` in the current scope
[INFO] [stderr]    --> src/engine/settings.rs:102:44
[INFO] [stderr]     |
[INFO] [stderr] 102 |             let valueStr = dataPair.get(1).trim();
[INFO] [stderr]     |                                            ^^^^ method not found in `std::option::Option<&&str>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `new_from_file` found for struct `sfml::graphics::Font` in the current scope
[INFO] [stderr]   --> src/game/mod.rs:19:37
[INFO] [stderr]    |
[INFO] [stderr] 19 |      let obelix_font = graphics::Font::new_from_file("res/font/AlegreyaSansSC-Light.ttf").unwrap();
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^
[INFO] [stderr]    |                                        |
[INFO] [stderr]    |                                        function or associated item not found in `sfml::graphics::Font`
[INFO] [stderr]    |                                        help: there is an associated function with a similar name: `from_file`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `loader`
[INFO] [stderr]   --> src/game/mod.rs:38:55
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 loader: &ResourceLoader, 
[INFO] [stderr]    |                         --------------- help: add explicit lifetime `'static` to the type of `loader`: `&'static engine::resource_loader::ResourceLoader`
[INFO] [stderr] ...
[INFO] [stderr] 38 |     state_machine.add_state(MainMenuStateID as isize, Box::new(main_menu::MainMenu::new(loader, ctx)));
[INFO] [stderr]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `loader`
[INFO] [stderr]   --> src/game/mod.rs:41:57
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 loader: &ResourceLoader, 
[INFO] [stderr]    |                         --------------- help: add explicit lifetime `'static` to the type of `loader`: `&'static engine::resource_loader::ResourceLoader`
[INFO] [stderr] ...
[INFO] [stderr] 41 |     state_machine.add_state(SlotSelectStateID as isize, Box::new(slot_select_menu::SlotSelectMenu::new(loader, ctx)));
[INFO] [stderr]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `viewport_dim` of struct `engine::rendering::RenderContext` is private
[INFO] [stderr]   --> src/game/main_menu.rs:43:31
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let render_dim = render_ctx.viewport_dim;
[INFO] [stderr]    |                                     ^^^^^^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::Text<'_>` in the current scope
[INFO] [stderr]   --> src/game/main_menu.rs:48:70
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let mut banner = Text::new_init("equinox", font, font_size_banner).unwrap();
[INFO] [stderr]    |                                                                            ^^^^^^ method not found in `sfml::graphics::Text<'_>`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections`
[INFO] [stderr]   --> src/main.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use std::collections;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/event_queue.rs:10:32
[INFO] [stderr]    |
[INFO] [stderr] 10 |     handlers: VecDeque<&'a mut EventHandler>,
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn EventHandler`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/event_queue.rs:17:45
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn push(&mut self, handler: &'a mut EventHandler) {
[INFO] [stderr]    |                                             ^^^^^^^^^^^^ help: use `dyn`: `dyn EventHandler`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/rendering.rs:76:29
[INFO] [stderr]    |
[INFO] [stderr] 76 |     renderers: VecDeque<&'a Drawable>,
[INFO] [stderr]    |                             ^^^^^^^^ help: use `dyn`: `dyn Drawable`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/rendering.rs:88:42
[INFO] [stderr]    |
[INFO] [stderr] 88 |     pub fn push(&mut self, renderer: &'a Drawable) {
[INFO] [stderr]    |                                          ^^^^^^^^ help: use `dyn`: `dyn Drawable`
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]    --> src/game/main_menu.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr] 99  |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]     |                             ---------                    ----------
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             these two types are declared with different lifetimes...
[INFO] [stderr] 100 |         event_queue.push(&mut self.handler);
[INFO] [stderr]     |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0495]: cannot infer an appropriate lifetime for borrow expression due to conflicting requirements
[INFO] [stderr]    --> src/game/main_menu.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                           ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: first, the lifetime cannot outlive the lifetime `'a` as defined on the impl at 98:6...
[INFO] [stderr]    --> src/game/main_menu.rs:98:6
[INFO] [stderr]     |
[INFO] [stderr] 98  | impl<'a> State for MainMenu<'a> {
[INFO] [stderr]     |      ^^
[INFO] [stderr] note: ...so that the type `sfml::graphics::Text<'a>` is not borrowed for too long
[INFO] [stderr]    --> src/game/main_menu.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                           ^^^^^^^^^^^^
[INFO] [stderr] note: but, the lifetime must be valid for the anonymous lifetime #3 defined on the method body at 103:2...
[INFO] [stderr]    --> src/game/main_menu.rs:103:2
[INFO] [stderr]     |
[INFO] [stderr] 103 |       fn queue_renderers(&mut self, render_queue: &mut RenderQueue){
[INFO] [stderr]     |  _____^
[INFO] [stderr] 104 | |         render_queue.set_clear_color(colors::black);
[INFO] [stderr] 105 | |         render_queue.push(&self.banner);
[INFO] [stderr] 106 | |
[INFO] [stderr] ...   |
[INFO] [stderr] 109 | |         }
[INFO] [stderr] 110 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] note: ...so that the types are compatible
[INFO] [stderr]    --> src/game/main_menu.rs:105:16
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                      ^^^^
[INFO] [stderr]     = note: expected  `&mut engine::rendering::RenderQueue<'_>`
[INFO] [stderr]                found  `&mut engine::rendering::RenderQueue<'_>`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `engine::settings::Settings`
[INFO] [stderr]  --> src/engine/state.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use engine::settings::Settings;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/state.rs:41:34
[INFO] [stderr]    |
[INFO] [stderr] 41 |     states: HashMap<StateId, Box<State>>,
[INFO] [stderr]    |                                  ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/engine/state.rs:69:57
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn add_state(&mut self, id: StateId, state: Box<State>) {
[INFO] [stderr]    |                                                         ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/engine/state.rs:113:59
[INFO] [stderr]     |
[INFO] [stderr] 113 |     fn get_current_state<'a>(&'a mut self) -> &'a mut Box<State> {
[INFO] [stderr]     |                                                           ^^^^^ help: use `dyn`: `dyn State`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StateData`
[INFO] [stderr]  --> src/game/main_menu.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use engine::state::{StateData, State, EngineState};
[INFO] [stderr]   |                     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `game`
[INFO] [stderr]   --> src/game/main_menu.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use game;
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StateData`
[INFO] [stderr]  --> src/game/slot_select_menu.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use engine::state::{StateData, State, EngineState};
[INFO] [stderr]   |                     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `game`
[INFO] [stderr]   --> src/game/slot_select_menu.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use game;
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::vec::Vec`
[INFO] [stderr]  --> src/game/level.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::vec::Vec;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/game/savefile.rs:23:64
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                                                ^^^^^ help: use `dyn`: `dyn Write`
[INFO] [stderr] 
[INFO] [stderr] warning: type `keyboard` should have an upper camel case name
[INFO] [stderr]  --> src/heart/game_event_layer.rs:8:6
[INFO] [stderr]   |
[INFO] [stderr] 8 | type keyboard = Key;
[INFO] [stderr]   |      ^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Keyboard`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::vec::Vec<game::ui::MenuItem<'a, game::main_menu::MenuItemTag>>` in the current scope
[INFO] [stderr]    --> src/game/main_menu.rs:114:31
[INFO] [stderr]     |
[INFO] [stderr] 114 |         for item in self.menu_items.mut_iter() {
[INFO] [stderr]     |                                     ^^^^^^^^ method not found in `std::vec::Vec<game::ui::MenuItem<'a, game::main_menu::MenuItemTag>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:115:39
[INFO] [stderr]     |
[INFO] [stderr] 115 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:115:55
[INFO] [stderr]     |
[INFO] [stderr] 115 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `clicked` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:20
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                             ^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:58
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:74
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]   --> src/game/game_state.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]    |                             ---------                    ----------
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             these two types are declared with different lifetimes...
[INFO] [stderr] 41 |         event_queue.push(&mut self.event_layer);
[INFO] [stderr]    |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `viewport_dim` of struct `engine::rendering::RenderContext` is private
[INFO] [stderr]   --> src/game/slot_select_menu.rs:31:31
[INFO] [stderr]    |
[INFO] [stderr] 31 |         let render_dim = render_ctx.viewport_dim;
[INFO] [stderr]    |                                     ^^^^^^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:45:20
[INFO] [stderr]    |
[INFO] [stderr] 45 |                 if save_exists(save_path) {
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:46:26
[INFO] [stderr]    |
[INFO] [stderr] 46 |                     read_save_from_disk(save_path)
[INFO] [stderr]    |                                         ^^^^^^^^^
[INFO] [stderr]    |                                         |
[INFO] [stderr]    |                                         expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                         help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:50:32
[INFO] [stderr]    |
[INFO] [stderr] 50 |                     write_save_to_disk(&save, save_path);
[INFO] [stderr]    |                                               ^^^^^^^^^
[INFO] [stderr]    |                                               |
[INFO] [stderr]    |                                               expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                               help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `to_str` found for type `isize` in the current scope
[INFO] [stderr]   --> src/game/slot_select_menu.rs:55:31
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let name = "slot " + index.to_str();
[INFO] [stderr]    |                                        ^^^^^^ method not found in `isize`
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `[type error]` to `&str`
[INFO] [stderr]   --> src/game/slot_select_menu.rs:55:23
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let name = "slot " + index.to_str();
[INFO] [stderr]    |                        ------- ^ -------------- [type error]
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        &str
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `open` of struct `game::savefile::Savefile` is private
[INFO] [stderr]   --> src/game/slot_select_menu.rs:57:28
[INFO] [stderr]    |
[INFO] [stderr] 57 |             let color = if savefile.open {
[INFO] [stderr]    |                                     ^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]   --> src/game/slot_select_menu.rs:89:15
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]    |                             ---------                    ----------
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             these two types are declared with different lifetimes...
[INFO] [stderr] 89 |         event_queue.push(&mut self.handler);
[INFO] [stderr]    |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::vec::Vec<game::ui::MenuItem<'a, isize>>` in the current scope
[INFO] [stderr]    --> src/game/slot_select_menu.rs:102:31
[INFO] [stderr]     |
[INFO] [stderr] 102 |         for item in self.menu_items.mut_iter() {
[INFO] [stderr]     |                                     ^^^^^^^^ method not found in `std::vec::Vec<game::ui::MenuItem<'a, isize>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:103:39
[INFO] [stderr]     |
[INFO] [stderr] 103 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:103:55
[INFO] [stderr]     |
[INFO] [stderr] 103 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `clicked` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:20
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                             ^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:58
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:74
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/ui.rs:33:46
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size).unwrap();
[INFO] [stderr]    |                                                    ^^^^^^^^^ expected `u32`, found `usize`
[INFO] [stderr]    |
[INFO] [stderr] help: you can convert an `usize` to `u32` and panic if the converted value wouldn't fit
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size.try_into().unwrap()).unwrap();
[INFO] [stderr]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::Text<'_>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:33:57
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size).unwrap();
[INFO] [stderr]    |                                                               ^^^^^^ method not found in `sfml::graphics::Text<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::RectangleShape<'_>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:36:40
[INFO] [stderr]    |
[INFO] [stderr] 36 |         let mut back = RectangleShape::new().unwrap();
[INFO] [stderr]    |                                              ^^^^^^ method not found in `sfml::graphics::RectangleShape<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/main.rs:35:48
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                                                |
[INFO] [stderr]    |                                                expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                                help: consider borrowing here: `&"settings".to_string()`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_local_bounds` found for struct `sfml::graphics::Text<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:51:50
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let text_y = y + item_height * 0.5 - self.text.get_local_bounds().height;
[INFO] [stderr]    |                                                        ^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `global_bounds`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position2f` found for struct `sfml::graphics::Text<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:53:13
[INFO] [stderr]    |
[INFO] [stderr] 53 |         self.text.set_position2f(text_x, text_y);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::Text<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn set_position2f(&mut self, x: f32, y: f32);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position2f` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         self.back.set_position2f(0 as f32, text_y);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn set_position2f(&mut self, x: f32, y: f32);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error[E0609]: no field `alpha` on type `sfml::graphics::Color`
[INFO] [stderr]   --> src/game/ui.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |         color.alpha = self.animator.val() as u8;
[INFO] [stderr]    |               ^^^^^ unknown field
[INFO] [stderr]    |
[INFO] [stderr]    = note: available fields are: `r`, `g`, `b`, `a`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_fill_color` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:65:13
[INFO] [stderr]    |
[INFO] [stderr] 65 |         self.back.set_fill_color(&color);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/shape.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn set_fill_color(&mut self, color: &Color);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Shape;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_global_bounds` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:67:16
[INFO] [stderr]    |
[INFO] [stderr] 67 |         if self.back.get_global_bounds().contains(mouse_x,mouse_y) {
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_global_bounds` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |         self.back.get_global_bounds().contains(mouse_x,mouse_y)
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `queue`
[INFO] [stderr]   --> src/game/ui.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub fn push_to_queue(&self, queue: &mut RenderQueue) {
[INFO] [stderr]    |                                        ---------------- help: add explicit lifetime `'a` to the type of `queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 81 |         queue.push(&self.back);
[INFO] [stderr]    |               ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `queue`
[INFO] [stderr]   --> src/game/ui.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub fn push_to_queue(&self, queue: &mut RenderQueue) {
[INFO] [stderr]    |                                        ---------------- help: add explicit lifetime `'a` to the type of `queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 81 |         queue.push(&self.back);
[INFO] [stderr] 82 |         queue.push(&self.text);
[INFO] [stderr]    |               ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |         ^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: all local variables must have a statically known size
[INFO] [stderr]    = help: unsized locals are gated as an unstable feature
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> src/main.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 50 | /         loop {
[INFO] [stderr] 51 | |             let event = window.poll();
[INFO] [stderr] 52 | |
[INFO] [stderr] 53 | |             match event {
[INFO] [stderr] ...  |
[INFO] [stderr] 64 | |             }
[INFO] [stderr] 65 | |         }
[INFO] [stderr]    | |_________- any code following this expression is unreachable
[INFO] [stderr] 66 | 
[INFO] [stderr] 67 |           let engine_state =  state_machine.tick(1.0 / 60.0, &mut event_queue, &mut render_queue);
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/main.rs:35:24
[INFO] [stderr]    |
[INFO] [stderr] 35 |       let mut settings = settings::Settings::new("settings".to_string());
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr] ...
[INFO] [stderr] 49 | /     while window.is_open() {
[INFO] [stderr] 50 | |         loop {
[INFO] [stderr] 51 | |             let event = window.poll();
[INFO] [stderr] 52 | |
[INFO] [stderr] ...  |
[INFO] [stderr] 75 | |         window.display();
[INFO] [stderr] 76 | |     }
[INFO] [stderr]    | |_____- this returned value is of type `()`
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::collections::VecDeque<&'a mut (dyn engine::event_queue::EventHandler + 'a)>` in the current scope
[INFO] [stderr]   --> src/engine/event_queue.rs:23:38
[INFO] [stderr]    |
[INFO] [stderr] 23 |         for handler in self.handlers.mut_iter() {
[INFO] [stderr]    |                                      ^^^^^^^^ method not found in `std::collections::VecDeque<&'a mut (dyn engine::event_queue::EventHandler + 'a)>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `new_init` found for struct `sfml::window::VideoMode` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:20:36
[INFO] [stderr]    |
[INFO] [stderr] 20 |         let videoMode = VideoMode::new_init(width, height, 32);
[INFO] [stderr]    |                                    ^^^^^^^^ function or associated item not found in `sfml::window::VideoMode`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no associated item named `FULLSCREEN` found for struct `sfml::window::Style` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:22:20
[INFO] [stderr]    |
[INFO] [stderr] 22 |             Style::FULLSCREEN
[INFO] [stderr]    |                    ^^^^^^^^^^ associated item not found in `sfml::window::Style`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no associated item named `CLOSE` found for struct `sfml::window::Style` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:24:20
[INFO] [stderr]    |
[INFO] [stderr] 24 |             Style::CLOSE
[INFO] [stderr]    |                    ^^^^^ associated item not found in `sfml::window::Style`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/rendering.rs:28:55
[INFO] [stderr]    |
[INFO] [stderr] 28 |         Window { window: RenderWindow::new(videoMode, title, style, &setting).unwrap() }
[INFO] [stderr]    |                                                       ^^^^^
[INFO] [stderr]    |                                                       |
[INFO] [stderr]    |                                                       expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                                       help: consider borrowing here: `&title`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/savefile.rs:23:46
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^ expected trait `std::fmt::Write`, found trait `std::io::Write`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected mutable reference `&mut dyn std::fmt::Write`
[INFO] [stderr]               found mutable reference `&mut dyn std::io::Write`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `std::result::Result<std::fs::File, std::io::Error>: std::io::Write` is not satisfied
[INFO] [stderr]   --> src/game/savefile.rs:23:46
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                              ^^^^^^^^^ the trait `std::io::Write` is not implemented for `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required for the cast to the object type `dyn std::io::Write`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `read_to_end` found for enum `std::result::Result<std::fs::File, std::io::Error>` in the current scope
[INFO] [stderr]   --> src/game/savefile.rs:32:22
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let raw_data = file.read_to_end().unwrap();
[INFO] [stderr]    |                         ^^^^^^^^^^^ method not found in `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `rustc_serialize::json::Json: rustc_serialize::Decodable` is not satisfied
[INFO] [stderr]    --> src/game/savefile.rs:35:20
[INFO] [stderr]     |
[INFO] [stderr] 35  |     let json_object = json::decode(json_str).unwrap();
[INFO] [stderr]     |                       ^^^^^^^^^^^^ the trait `rustc_serialize::Decodable` is not implemented for `rustc_serialize::json::Json`
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.23/src/json.rs:379:18
[INFO] [stderr]     |
[INFO] [stderr] 379 | pub fn decode<T: ::Decodable>(s: &str) -> DecodeResult<T> {
[INFO] [stderr]     |                  ----------- required by this bound in `rustc_serialize::json::decode`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/savefile.rs:38:28
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let savefile : Savefile = Decodable::decode(&mut savefile_decoder);
[INFO] [stderr]    |                    --------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `game::savefile::Savefile`, found enum `std::result::Result`
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    expected due to this
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected struct `game::savefile::Savefile`
[INFO] [stderr]                 found enum `std::result::Result<_, rustc_serialize::json::DecoderError>`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `render_queue`
[INFO] [stderr]   --> src/heart/player.rs:24:16
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn push_to_queue(&self, render_queue: &mut RenderQueue) {
[INFO] [stderr]    |                                               ---------------- help: add explicit lifetime `'a` to the type of `render_queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 24 |         render_queue.push(&self.renderer.render);
[INFO] [stderr]    |                      ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::CircleShape<'_>` in the current scope
[INFO] [stderr]   --> src/heart/player.rs:69:51
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let mut render = CircleShape::new_init(32., 30).unwrap();
[INFO] [stderr]    |                                                         ^^^^^^ method not found in `sfml::graphics::CircleShape<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/rendering.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn poll(&mut self) -> Event {
[INFO] [stderr]    |                               ----- expected `sfml::window::Event` because of return type
[INFO] [stderr] 36 |         self.window.poll_event()
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `sfml::window::Event`, found enum `std::option::Option`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected enum `sfml::window::Event`
[INFO] [stderr]               found enum `std::option::Option<sfml::window::Event>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position` found for struct `sfml::graphics::CircleShape<'a>` in the current scope
[INFO] [stderr]   --> src/heart/player.rs:75:15
[INFO] [stderr]    |
[INFO] [stderr] 75 |         self.render.set_position(&repr.get_position())
[INFO] [stderr]    |                     ^^^^^^^^^^^^ method not found in `sfml::graphics::CircleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn set_position(&mut self, position: &Vector2f);
[INFO] [stderr]    |        ------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `clear` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:44:21
[INFO] [stderr]    |
[INFO] [stderr] 44 |         self.window.clear(&clear_color);
[INFO] [stderr]    |                     ^^^^^ method not found in `sfml::graphics::RenderWindow`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/render_target.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn clear(&mut self, color: &Color);
[INFO] [stderr]    |        -----
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RenderWindow>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::RenderTarget;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:52:21
[INFO] [stderr]    |
[INFO] [stderr] 52 |         self.window.get_size().x as usize
[INFO] [stderr]    |                     ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:56:21
[INFO] [stderr]    |
[INFO] [stderr] 56 |         self.window.get_size().y as usize
[INFO] [stderr]    |                     ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_size` found for struct `sfml::graphics::RenderWindow` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:60:32
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let size = self.window.get_size();
[INFO] [stderr]    |                                ^^^^^^^^ help: there is an associated function with a similar name: `set_size`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 81 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0369, E0495, E0599, E0609, E0614, E0616, E0621...
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error[E0599]: no function or associated item named `new_RGB` found for struct `sfml::graphics::Color` in the current scope
[INFO] [stderr]   --> src/engine/rendering.rs:84:33
[INFO] [stderr]    |
[INFO] [stderr] 84 |             clear_color: Color::new_RGB(0, 0, 20),
[INFO] [stderr]    |                                 ^^^^^^^ function or associated item not found in `sfml::graphics::Color`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `draw_in_render_window` found for reference `&&dyn sfml::graphics::Drawable` in the current scope
[INFO] [stderr]    --> src/engine/rendering.rs:103:22
[INFO] [stderr]     |
[INFO] [stderr] 103 |             renderer.draw_in_render_window(render_window);
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^ method not found in `&&dyn sfml::graphics::Drawable`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `find` found for struct `std::collections::HashMap<std::string::String, engine::resource_loader::Resource>` in the current scope
[INFO] [stderr]   --> src/engine/resource_loader.rs:34:30
[INFO] [stderr]    |
[INFO] [stderr] 34 |         match self.resources.find(key) {
[INFO] [stderr]    |                              ^^^^ method not found in `std::collections::HashMap<std::string::String, engine::resource_loader::Resource>`
[INFO] [stderr] 
[INFO] [stderr] error: could not compile `equinox`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/engine/state.rs:114:9
[INFO] [stderr]     |
[INFO] [stderr] 114 |         self.states.get_mut(&self.current_id)
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected mutable reference, found enum `std::option::Option`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected mutable reference `&'a mut std::boxed::Box<(dyn engine::state::State + 'static)>`
[INFO] [stderr]                             found enum `std::option::Option<&mut std::boxed::Box<(dyn engine::state::State + 'static)>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:27:44
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn new(settings_path_raw: &str) -> Settings {
[INFO] [stderr]    |                                            ^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: the return type of a function must have a statically known size
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `read_to_str` found for enum `std::result::Result<std::fs::File, std::io::Error>` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:31:46
[INFO] [stderr]    |
[INFO] [stderr] 31 |             let contents = File::open(&path).read_to_str().unwrap();
[INFO] [stderr]    |                                              ^^^^^^^^^^^ method not found in `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/settings.rs:35:32
[INFO] [stderr]    |
[INFO] [stderr] 35 |                 settings_path: path,
[INFO] [stderr]    |                                ^^^^ expected struct `std::path::Path`, found `&std::path::Path`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 | /             Settings {
[INFO] [stderr] 35 | |                 settings_path: path,
[INFO] [stderr] 36 | |                 key_value_pair: key_value_pair,
[INFO] [stderr] 37 | |             }
[INFO] [stderr]    | |_____________^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: structs must have a statically known size to be initialized
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/engine/settings.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |                 settings_path: path,
[INFO] [stderr]    |                                ^^^^ expected struct `std::path::Path`, found `&std::path::Path`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stderr]   --> src/engine/settings.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 | /             Settings {
[INFO] [stderr] 42 | |                 settings_path: path,
[INFO] [stderr] 43 | |                 key_value_pair: key_value_pair,
[INFO] [stderr] 44 | |             }
[INFO] [stderr]    | |_____________^ doesn't have a size known at compile-time
[INFO] [stderr]    |
[INFO] [stderr]    = help: within `engine::settings::Settings`, the trait `std::marker::Sized` is not implemented for `[u8]`
[INFO] [stderr]    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
[INFO] [stderr]    = note: required because it appears within the type `engine::settings::Settings`
[INFO] [stderr]    = note: structs must have a statically known size to be initialized
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `find_or_insert` found for struct `std::collections::HashMap<std::string::String, engine::settings::Setting>` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:49:36
[INFO] [stderr]    |
[INFO] [stderr] 49 |         return self.key_value_pair.find_or_insert(name, default_value);
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^ method not found in `std::collections::HashMap<std::string::String, engine::settings::Setting>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `char_at` found for reference `&str` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:54:20
[INFO] [stderr]    |
[INFO] [stderr] 54 |         match name.char_at(0) {
[INFO] [stderr]    |                    ^^^^^^^ method not found in `&str`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `isize` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:57:36
[INFO] [stderr]    |
[INFO] [stderr] 57 |                 let value = isize::from_str(valueStr).unwrap();
[INFO] [stderr]    |                                    ^^^^^^^^ function or associated item not found in `isize`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |                 let value = f32::from_str(valueStr).unwrap();
[INFO] [stderr]    |                                  ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:73:35
[INFO] [stderr]    |
[INFO] [stderr] 73 |                 let float1 = f32::from_str(*floatPair.get(0)).unwrap();
[INFO] [stderr]    |                                   ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0614]: type `std::option::Option<&&str>` cannot be dereferenced
[INFO] [stderr]   --> src/engine/settings.rs:73:44
[INFO] [stderr]    |
[INFO] [stderr] 73 |                 let float1 = f32::from_str(*floatPair.get(0)).unwrap();
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `from_str` found for type `f32` in the current scope
[INFO] [stderr]   --> src/engine/settings.rs:74:35
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 let float2 = f32::from_str(*floatPair.get(1)).unwrap();
[INFO] [stderr]    |                                   ^^^^^^^^ function or associated item not found in `f32`
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use std::str::FromStr;`
[INFO] [stderr] 
[INFO] [stderr] error[E0614]: type `std::option::Option<&&str>` cannot be dereferenced
[INFO] [stderr]   --> src/engine/settings.rs:74:44
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 let float2 = f32::from_str(*floatPair.get(1)).unwrap();
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `trim` found for enum `std::option::Option<&&str>` in the current scope
[INFO] [stderr]    --> src/engine/settings.rs:101:40
[INFO] [stderr]     |
[INFO] [stderr] 101 |             let name = dataPair.get(0).trim();
[INFO] [stderr]     |                                        ^^^^ method not found in `std::option::Option<&&str>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `trim` found for enum `std::option::Option<&&str>` in the current scope
[INFO] [stderr]    --> src/engine/settings.rs:102:44
[INFO] [stderr]     |
[INFO] [stderr] 102 |             let valueStr = dataPair.get(1).trim();
[INFO] [stderr]     |                                            ^^^^ method not found in `std::option::Option<&&str>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no function or associated item named `new_from_file` found for struct `sfml::graphics::Font` in the current scope
[INFO] [stderr]   --> src/game/mod.rs:19:37
[INFO] [stderr]    |
[INFO] [stderr] 19 |      let obelix_font = graphics::Font::new_from_file("res/font/AlegreyaSansSC-Light.ttf").unwrap();
[INFO] [stderr]    |                                        ^^^^^^^^^^^^^
[INFO] [stderr]    |                                        |
[INFO] [stderr]    |                                        function or associated item not found in `sfml::graphics::Font`
[INFO] [stderr]    |                                        help: there is an associated function with a similar name: `from_file`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `loader`
[INFO] [stderr]   --> src/game/mod.rs:38:55
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 loader: &ResourceLoader, 
[INFO] [stderr]    |                         --------------- help: add explicit lifetime `'static` to the type of `loader`: `&'static engine::resource_loader::ResourceLoader`
[INFO] [stderr] ...
[INFO] [stderr] 38 |     state_machine.add_state(MainMenuStateID as isize, Box::new(main_menu::MainMenu::new(loader, ctx)));
[INFO] [stderr]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `loader`
[INFO] [stderr]   --> src/game/mod.rs:41:57
[INFO] [stderr]    |
[INFO] [stderr] 34 |                 loader: &ResourceLoader, 
[INFO] [stderr]    |                         --------------- help: add explicit lifetime `'static` to the type of `loader`: `&'static engine::resource_loader::ResourceLoader`
[INFO] [stderr] ...
[INFO] [stderr] 41 |     state_machine.add_state(SlotSelectStateID as isize, Box::new(slot_select_menu::SlotSelectMenu::new(loader, ctx)));
[INFO] [stderr]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `viewport_dim` of struct `engine::rendering::RenderContext` is private
[INFO] [stderr]   --> src/game/main_menu.rs:43:31
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let render_dim = render_ctx.viewport_dim;
[INFO] [stderr]    |                                     ^^^^^^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::Text<'_>` in the current scope
[INFO] [stderr]   --> src/game/main_menu.rs:48:70
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let mut banner = Text::new_init("equinox", font, font_size_banner).unwrap();
[INFO] [stderr]    |                                                                            ^^^^^^ method not found in `sfml::graphics::Text<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]    --> src/game/main_menu.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr] 99  |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]     |                             ---------                    ----------
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             these two types are declared with different lifetimes...
[INFO] [stderr] 100 |         event_queue.push(&mut self.handler);
[INFO] [stderr]     |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0495]: cannot infer an appropriate lifetime for borrow expression due to conflicting requirements
[INFO] [stderr]    --> src/game/main_menu.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                           ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: first, the lifetime cannot outlive the lifetime `'a` as defined on the impl at 98:6...
[INFO] [stderr]    --> src/game/main_menu.rs:98:6
[INFO] [stderr]     |
[INFO] [stderr] 98  | impl<'a> State for MainMenu<'a> {
[INFO] [stderr]     |      ^^
[INFO] [stderr] note: ...so that the type `sfml::graphics::Text<'a>` is not borrowed for too long
[INFO] [stderr]    --> src/game/main_menu.rs:105:21
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                           ^^^^^^^^^^^^
[INFO] [stderr] note: but, the lifetime must be valid for the anonymous lifetime #3 defined on the method body at 103:2...
[INFO] [stderr]    --> src/game/main_menu.rs:103:2
[INFO] [stderr]     |
[INFO] [stderr] 103 |       fn queue_renderers(&mut self, render_queue: &mut RenderQueue){
[INFO] [stderr]     |  _____^
[INFO] [stderr] 104 | |         render_queue.set_clear_color(colors::black);
[INFO] [stderr] 105 | |         render_queue.push(&self.banner);
[INFO] [stderr] 106 | |
[INFO] [stderr] ...   |
[INFO] [stderr] 109 | |         }
[INFO] [stderr] 110 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr] note: ...so that the types are compatible
[INFO] [stderr]    --> src/game/main_menu.rs:105:16
[INFO] [stderr]     |
[INFO] [stderr] 105 |         render_queue.push(&self.banner);
[INFO] [stderr]     |                      ^^^^
[INFO] [stderr]     = note: expected  `&mut engine::rendering::RenderQueue<'_>`
[INFO] [stderr]                found  `&mut engine::rendering::RenderQueue<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::vec::Vec<game::ui::MenuItem<'a, game::main_menu::MenuItemTag>>` in the current scope
[INFO] [stderr]    --> src/game/main_menu.rs:114:31
[INFO] [stderr]     |
[INFO] [stderr] 114 |         for item in self.menu_items.mut_iter() {
[INFO] [stderr]     |                                     ^^^^^^^^ method not found in `std::vec::Vec<game::ui::MenuItem<'a, game::main_menu::MenuItemTag>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:115:39
[INFO] [stderr]     |
[INFO] [stderr] 115 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:115:55
[INFO] [stderr]     |
[INFO] [stderr] 115 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `clicked` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:20
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                             ^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:58
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/main_menu.rs:117:74
[INFO] [stderr]     |
[INFO] [stderr] 117 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]   --> src/game/game_state.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]    |                             ---------                    ----------
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             these two types are declared with different lifetimes...
[INFO] [stderr] 41 |         event_queue.push(&mut self.event_layer);
[INFO] [stderr]    |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `viewport_dim` of struct `engine::rendering::RenderContext` is private
[INFO] [stderr]   --> src/game/slot_select_menu.rs:31:31
[INFO] [stderr]    |
[INFO] [stderr] 31 |         let render_dim = render_ctx.viewport_dim;
[INFO] [stderr]    |                                     ^^^^^^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:45:20
[INFO] [stderr]    |
[INFO] [stderr] 45 |                 if save_exists(save_path) {
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:46:26
[INFO] [stderr]    |
[INFO] [stderr] 46 |                     read_save_from_disk(save_path)
[INFO] [stderr]    |                                         ^^^^^^^^^
[INFO] [stderr]    |                                         |
[INFO] [stderr]    |                                         expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                         help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/slot_select_menu.rs:50:32
[INFO] [stderr]    |
[INFO] [stderr] 50 |                     write_save_to_disk(&save, save_path);
[INFO] [stderr]    |                                               ^^^^^^^^^
[INFO] [stderr]    |                                               |
[INFO] [stderr]    |                                               expected `&str`, found struct `std::string::String`
[INFO] [stderr]    |                                               help: consider borrowing here: `&save_path`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `to_str` found for type `isize` in the current scope
[INFO] [stderr]   --> src/game/slot_select_menu.rs:55:31
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let name = "slot " + index.to_str();
[INFO] [stderr]    |                                        ^^^^^^ method not found in `isize`
[INFO] [stderr] 
[INFO] [stderr] error[E0369]: cannot add `[type error]` to `&str`
[INFO] [stderr]   --> src/game/slot_select_menu.rs:55:23
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let name = "slot " + index.to_str();
[INFO] [stderr]    |                        ------- ^ -------------- [type error]
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        &str
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `open` of struct `game::savefile::Savefile` is private
[INFO] [stderr]   --> src/game/slot_select_menu.rs:57:28
[INFO] [stderr]    |
[INFO] [stderr] 57 |             let color = if savefile.open {
[INFO] [stderr]    |                                     ^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0623]: lifetime mismatch
[INFO] [stderr]   --> src/game/slot_select_menu.rs:89:15
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn queue_event_handlers(&mut self, event_queue: &mut EventQueue){
[INFO] [stderr]    |                             ---------                    ----------
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             these two types are declared with different lifetimes...
[INFO] [stderr] 89 |         event_queue.push(&mut self.handler);
[INFO] [stderr]    |                     ^^^^ ...but data from `self` flows into `event_queue` here
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `mut_iter` found for struct `std::vec::Vec<game::ui::MenuItem<'a, isize>>` in the current scope
[INFO] [stderr]    --> src/game/slot_select_menu.rs:102:31
[INFO] [stderr]     |
[INFO] [stderr] 102 |         for item in self.menu_items.mut_iter() {
[INFO] [stderr]     |                                     ^^^^^^^^ method not found in `std::vec::Vec<game::ui::MenuItem<'a, isize>>`
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:103:39
[INFO] [stderr]     |
[INFO] [stderr] 103 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:103:55
[INFO] [stderr]     |
[INFO] [stderr] 103 |             item.update_state(dt, self.handler.x, self.handler.y);
[INFO] [stderr]     |                                                                ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `clicked` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:20
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                             ^^^^^^^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `x` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:58
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0616]: field `y` of struct `game::ui::SimpleMenuHandler` is private
[INFO] [stderr]    --> src/game/slot_select_menu.rs:105:74
[INFO] [stderr]     |
[INFO] [stderr] 105 |             if self.handler.clicked && item.contains(self.handler.x, self.handler.y) {
[INFO] [stderr]     |                                                                                   ^ private field
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/ui.rs:33:46
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size).unwrap();
[INFO] [stderr]    |                                                    ^^^^^^^^^ expected `u32`, found `usize`
[INFO] [stderr]    |
[INFO] [stderr] help: you can convert an `usize` to `u32` and panic if the converted value wouldn't fit
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size.try_into().unwrap()).unwrap();
[INFO] [stderr]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::Text<'_>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:33:57
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut text = Text::new_init(label, font, font_size).unwrap();
[INFO] [stderr]    |                                                               ^^^^^^ method not found in `sfml::graphics::Text<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::RectangleShape<'_>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:36:40
[INFO] [stderr]    |
[INFO] [stderr] 36 |         let mut back = RectangleShape::new().unwrap();
[INFO] [stderr]    |                                              ^^^^^^ method not found in `sfml::graphics::RectangleShape<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_local_bounds` found for struct `sfml::graphics::Text<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:51:50
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let text_y = y + item_height * 0.5 - self.text.get_local_bounds().height;
[INFO] [stderr]    |                                                        ^^^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `global_bounds`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position2f` found for struct `sfml::graphics::Text<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:53:13
[INFO] [stderr]    |
[INFO] [stderr] 53 |         self.text.set_position2f(text_x, text_y);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::Text<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn set_position2f(&mut self, x: f32, y: f32);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::Text<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position2f` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         self.back.set_position2f(0 as f32, text_y);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn set_position2f(&mut self, x: f32, y: f32);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error[E0609]: no field `alpha` on type `sfml::graphics::Color`
[INFO] [stderr]   --> src/game/ui.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |         color.alpha = self.animator.val() as u8;
[INFO] [stderr]    |               ^^^^^ unknown field
[INFO] [stderr]    |
[INFO] [stderr]    = note: available fields are: `r`, `g`, `b`, `a`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_fill_color` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:65:13
[INFO] [stderr]    |
[INFO] [stderr] 65 |         self.back.set_fill_color(&color);
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/shape.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn set_fill_color(&mut self, color: &Color);
[INFO] [stderr]    |        --------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::RectangleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Shape;`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_global_bounds` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:67:16
[INFO] [stderr]    |
[INFO] [stderr] 67 |         if self.back.get_global_bounds().contains(mouse_x,mouse_y) {
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `get_global_bounds` found for struct `sfml::graphics::RectangleShape<'a>` in the current scope
[INFO] [stderr]   --> src/game/ui.rs:76:13
[INFO] [stderr]    |
[INFO] [stderr] 76 |         self.back.get_global_bounds().contains(mouse_x,mouse_y)
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^ method not found in `sfml::graphics::RectangleShape<'a>`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `queue`
[INFO] [stderr]   --> src/game/ui.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub fn push_to_queue(&self, queue: &mut RenderQueue) {
[INFO] [stderr]    |                                        ---------------- help: add explicit lifetime `'a` to the type of `queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 81 |         queue.push(&self.back);
[INFO] [stderr]    |               ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `queue`
[INFO] [stderr]   --> src/game/ui.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub fn push_to_queue(&self, queue: &mut RenderQueue) {
[INFO] [stderr]    |                                        ---------------- help: add explicit lifetime `'a` to the type of `queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 81 |         queue.push(&self.back);
[INFO] [stderr] 82 |         queue.push(&self.text);
[INFO] [stderr]    |               ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/savefile.rs:23:46
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^ expected trait `std::fmt::Write`, found trait `std::io::Write`
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected mutable reference `&mut dyn std::fmt::Write`
[INFO] [stderr]               found mutable reference `&mut dyn std::io::Write`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `std::result::Result<std::fs::File, std::io::Error>: std::io::Write` is not satisfied
[INFO] [stderr]   --> src/game/savefile.rs:23:46
[INFO] [stderr]    |
[INFO] [stderr] 23 |         let mut encoder = json::Encoder::new(&mut file as &mut Write);
[INFO] [stderr]    |                                              ^^^^^^^^^ the trait `std::io::Write` is not implemented for `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr]    |
[INFO] [stderr]    = note: required for the cast to the object type `dyn std::io::Write`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `read_to_end` found for enum `std::result::Result<std::fs::File, std::io::Error>` in the current scope
[INFO] [stderr]   --> src/game/savefile.rs:32:22
[INFO] [stderr]    |
[INFO] [stderr] 32 |     let raw_data = file.read_to_end().unwrap();
[INFO] [stderr]    |                         ^^^^^^^^^^^ method not found in `std::result::Result<std::fs::File, std::io::Error>`
[INFO] [stderr] 
[INFO] [stderr] error[E0277]: the trait bound `rustc_serialize::json::Json: rustc_serialize::Decodable` is not satisfied
[INFO] [stderr]    --> src/game/savefile.rs:35:20
[INFO] [stderr]     |
[INFO] [stderr] 35  |     let json_object = json::decode(json_str).unwrap();
[INFO] [stderr]     |                       ^^^^^^^^^^^^ the trait `rustc_serialize::Decodable` is not implemented for `rustc_serialize::json::Json`
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.23/src/json.rs:379:18
[INFO] [stderr]     |
[INFO] [stderr] 379 | pub fn decode<T: ::Decodable>(s: &str) -> DecodeResult<T> {
[INFO] [stderr]     |                  ----------- required by this bound in `rustc_serialize::json::decode`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]   --> src/game/savefile.rs:38:28
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let savefile : Savefile = Decodable::decode(&mut savefile_decoder);
[INFO] [stderr]    |                    --------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `game::savefile::Savefile`, found enum `std::result::Result`
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    expected due to this
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected struct `game::savefile::Savefile`
[INFO] [stderr]                 found enum `std::result::Result<_, rustc_serialize::json::DecoderError>`
[INFO] [stderr] 
[INFO] [stderr] error[E0621]: explicit lifetime required in the type of `render_queue`
[INFO] [stderr]   --> src/heart/player.rs:24:16
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn push_to_queue(&self, render_queue: &mut RenderQueue) {
[INFO] [stderr]    |                                               ---------------- help: add explicit lifetime `'a` to the type of `render_queue`: `&mut engine::rendering::RenderQueue<'a>`
[INFO] [stderr] 24 |         render_queue.push(&self.renderer.render);
[INFO] [stderr]    |                      ^^^^ lifetime `'a` required
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `unwrap` found for struct `sfml::graphics::CircleShape<'_>` in the current scope
[INFO] [stderr]   --> src/heart/player.rs:69:51
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let mut render = CircleShape::new_init(32., 30).unwrap();
[INFO] [stderr]    |                                                         ^^^^^^ method not found in `sfml::graphics::CircleShape<'_>`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `set_position` found for struct `sfml::graphics::CircleShape<'a>` in the current scope
[INFO] [stderr]   --> src/heart/player.rs:75:15
[INFO] [stderr]    |
[INFO] [stderr] 75 |         self.render.set_position(&repr.get_position())
[INFO] [stderr]    |                     ^^^^^^^^^^^^ method not found in `sfml::graphics::CircleShape<'a>`
[INFO] [stderr]    | 
[INFO] [stderr]   ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/sfml-0.12.0/src/graphics/transformable.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn set_position(&mut self, position: &Vector2f);
[INFO] [stderr]    |        ------------
[INFO] [stderr]    |        |
[INFO] [stderr]    |        the method is available for `std::boxed::Box<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::sync::Arc<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |        the method is available for `std::rc::Rc<sfml::graphics::CircleShape<'a>>` here
[INFO] [stderr]    |
[INFO] [stderr]    = help: items from traits can only be used if the trait is in scope
[INFO] [stderr]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stderr]            `use sfml::graphics::Transformable;`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 81 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0369, E0495, E0599, E0609, E0614, E0616, E0621...
[INFO] [stderr] For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] error: could not compile `equinox`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "b628e64cf2aab08c003cd9dd1ef49699e8e884d54e0480d75b8e721e8d50dcdf"`
[INFO] running `"docker" "rm" "-f" "b628e64cf2aab08c003cd9dd1ef49699e8e884d54e0480d75b8e721e8d50dcdf"`
[INFO] [stdout] b628e64cf2aab08c003cd9dd1ef49699e8e884d54e0480d75b8e721e8d50dcdf
