[INFO] updating cached repository zack37/rust-cave-story [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zack37/rust-cave-story [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zack37/rust-cave-story" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zack37/rust-cave-story"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zack37/rust-cave-story'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zack37/rust-cave-story" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zack37/rust-cave-story"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zack37/rust-cave-story'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] cd1283cce3e0082b28589aacfab9db859f1c9832 [INFO] sha for GitHub repo zack37/rust-cave-story: cd1283cce3e0082b28589aacfab9db859f1c9832 [INFO] validating manifest of zack37/rust-cave-story on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of zack37/rust-cave-story on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing zack37/rust-cave-story [INFO] finished frobbing zack37/rust-cave-story [INFO] frobbed toml for zack37/rust-cave-story written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zack37/rust-cave-story/Cargo.toml [INFO] started frobbing zack37/rust-cave-story [INFO] finished frobbing zack37/rust-cave-story [INFO] frobbed toml for zack37/rust-cave-story written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zack37/rust-cave-story/Cargo.toml [INFO] crate zack37/rust-cave-story already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking zack37/rust-cave-story against master#60960a260f7b5c695fd0717311d72ce62dd4eb43 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-1/master#60960a260f7b5c695fd0717311d72ce62dd4eb43:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zack37/rust-cave-story:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 1eb661bf50ecc2dd20bc2f09f6cca9d9b5f9fbd0cc1203c81a221e4ee04cc3ec [INFO] running `"docker" "start" "-a" "1eb661bf50ecc2dd20bc2f09f6cca9d9b5f9fbd0cc1203c81a221e4ee04cc3ec"` [INFO] [stderr] warning: unused manifest key: attributes [INFO] [stderr] Checking num-traits v0.1.37 [INFO] [stderr] Compiling sdl2-sys v0.30.0 [INFO] [stderr] Checking libc v0.2.23 [INFO] [stderr] Checking lazy_static v0.2.8 [INFO] [stderr] Checking rand v0.3.15 [INFO] [stderr] Checking time v0.1.37 [INFO] [stderr] Checking num-integer v0.1.34 [INFO] [stderr] Checking num-iter v0.1.33 [INFO] [stderr] Checking num v0.1.37 [INFO] [stderr] Checking sdl2 v0.30.0 [INFO] [stderr] Checking cave-story v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/tile.rs:12:34 [INFO] [stderr] | [INFO] [stderr] 12 | type TileSprite = Rc>>; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [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/map/mod.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | backdrop: Option>, [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Backdrop` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:51:47 [INFO] [stderr] | [INFO] [stderr] 51 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:58:50 [INFO] [stderr] | [INFO] [stderr] 58 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:66:53 [INFO] [stderr] | [INFO] [stderr] 66 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:74:53 [INFO] [stderr] | [INFO] [stderr] 74 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/player/mod.rs:51:39 [INFO] [stderr] | [INFO] [stderr] 51 | sprites: HashMap>, [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/tile.rs:12:34 [INFO] [stderr] | [INFO] [stderr] 12 | type TileSprite = Rc>>; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [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/map/mod.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | backdrop: Option>, [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Backdrop` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:51:47 [INFO] [stderr] | [INFO] [stderr] 51 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:58:50 [INFO] [stderr] | [INFO] [stderr] 58 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:66:53 [INFO] [stderr] | [INFO] [stderr] 66 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/map/mod.rs:74:53 [INFO] [stderr] | [INFO] [stderr] 74 | Box)); [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/player/mod.rs:51:39 [INFO] [stderr] | [INFO] [stderr] 51 | sprites: HashMap>, [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Sprite` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:24:22 [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^ expected integer, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `{integer}` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:24:44 [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected usize, found u32 [INFO] [stderr] help: you can convert an `u32` to `usize` and panic if the converted value wouldn't fit [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:24:22 [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^ expected integer, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `{integer}` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:24:44 [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected usize, found u32 [INFO] [stderr] help: you can convert an `u32` to `usize` and panic if the converted value wouldn't fit [INFO] [stderr] | [INFO] [stderr] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^ expected integer, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `{integer}` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:25:49 [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected usize, found u32 [INFO] [stderr] help: you can convert an `u32` to `usize` and panic if the converted value wouldn't fit [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^ expected integer, found struct `units::drawing::Tile` [INFO] [stderr] error[E0277]: the trait bound `{integer}: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/game.rs:37:54 [INFO] [stderr] | [INFO] [stderr] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `{integer}` [INFO] [stderr] | [INFO] [stderr] = note: expected type `{integer}` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/backdrop.rs:25:49 [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected usize, found u32 [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div<{integer}>` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `{integer}: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/game.rs:37:66 [INFO] [stderr] | [INFO] [stderr] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `{integer}` [INFO] [stderr] help: you can convert an `u32` to `usize` and panic if the converted value wouldn't fit [INFO] [stderr] | [INFO] [stderr] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `{integer}: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/game.rs:37:54 [INFO] [stderr] | [INFO] [stderr] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `{integer}` [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div<{integer}>` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div<{integer}>` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `{integer}: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/game.rs:37:66 [INFO] [stderr] | [INFO] [stderr] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `{integer}` [INFO] [stderr] | [INFO] [stderr] = help: the following implementations were found: [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div<{integer}>` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/graphics.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stderr] | ^^^^^^^^^^^^ expected u32, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `u32` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/graphics.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stderr] | ^^^^^^^^^^^^ expected u32, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `u32` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/graphics.rs:22:63 [INFO] [stderr] | [INFO] [stderr] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stderr] | ^^^^^^^^^^^^^ expected u32, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `u32` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `u32: units::drawing::AsTile` is not satisfied [INFO] [stderr] --> src/map/mod.rs:36:39 [INFO] [stderr] | [INFO] [stderr] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stderr] | ^ the trait `units::drawing::AsTile` is not implemented for `u32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div` for `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `u32: units::drawing::AsTile` is not satisfied [INFO] [stderr] --> src/map/mod.rs:37:38 [INFO] [stderr] | [INFO] [stderr] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stderr] | ^ the trait `units::drawing::AsTile` is not implemented for `u32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div` for `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0605]: non-primitive cast: `units::drawing::Tile` as `usize` [INFO] [stderr] --> src/map/mod.rs:36:24 [INFO] [stderr] | [INFO] [stderr] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait [INFO] [stderr] [INFO] [stderr] error[E0605]: non-primitive cast: `units::drawing::Tile` as `usize` [INFO] [stderr] --> src/map/mod.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/graphics.rs:22:63 [INFO] [stderr] | [INFO] [stderr] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stderr] | ^^^^^^^^^^^^^ expected u32, found struct `units::drawing::Tile` [INFO] [stderr] | [INFO] [stderr] = note: expected type `u32` [INFO] [stderr] found type `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `u32: units::drawing::AsTile` is not satisfied [INFO] [stderr] --> src/map/mod.rs:36:39 [INFO] [stderr] | [INFO] [stderr] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stderr] | ^ the trait `units::drawing::AsTile` is not implemented for `u32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div` for `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `u32: units::drawing::AsTile` is not satisfied [INFO] [stderr] --> src/map/mod.rs:37:38 [INFO] [stderr] | [INFO] [stderr] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stderr] | ^ the trait `units::drawing::AsTile` is not implemented for `u32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Div` for `units::drawing::Tile` [INFO] [stderr] [INFO] [stderr] error[E0605]: non-primitive cast: `units::drawing::Tile` as `usize` [INFO] [stderr] --> src/map/mod.rs:36:24 [INFO] [stderr] | [INFO] [stderr] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait [INFO] [stderr] [INFO] [stderr] error[E0605]: non-primitive cast: `units::drawing::Tile` as `usize` [INFO] [stderr] --> src/map/mod.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:132:63 [INFO] [stderr] | [INFO] [stderr] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stderr] | ^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:132:63 [INFO] [stderr] | [INFO] [stderr] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stderr] | ^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:132:71 [INFO] [stderr] | [INFO] [stderr] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stderr] | ^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:132:71 [INFO] [stderr] | [INFO] [stderr] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stderr] | ^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:147:55 [INFO] [stderr] | [INFO] [stderr] 147 | let acceleration_x = if self.acceleration_x < 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:147:55 [INFO] [stderr] | [INFO] [stderr] 147 | let acceleration_x = if self.acceleration_x < 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:153:41 [INFO] [stderr] | [INFO] [stderr] 153 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0308]: if and else have incompatible types [INFO] [stderr] --> src/player/mod.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 153 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ________________- [INFO] [stderr] 154 | | if self.on_ground { [INFO] [stderr] | |_____________- [INFO] [stderr] 155 | || WALKING_ACCELERATION [INFO] [stderr] 156 | || } else { [INFO] [stderr] 157 | || AIR_ACCELERATION [INFO] [stderr] 158 | || } [INFO] [stderr] | ||_____________- expected because of this [INFO] [stderr] 159 | | } else { [INFO] [stderr] 160 | | 0.0 [INFO] [stderr] | | ^^^ expected struct `units::physics::Acceleration`, found floating-point number [INFO] [stderr] 161 | | }; [INFO] [stderr] | |_________- if and else have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | self.velocity_x += acceleration_x * elapsed_time_ms; [INFO] [stderr] | ---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::physics::Velocity` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:153:41 [INFO] [stderr] | [INFO] [stderr] 153 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0308]: if and else have incompatible types [INFO] [stderr] --> src/player/mod.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 153 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ________________- [INFO] [stderr] 154 | | if self.on_ground { [INFO] [stderr] | |_____________- [INFO] [stderr] 155 | || WALKING_ACCELERATION [INFO] [stderr] 156 | || } else { [INFO] [stderr] 157 | || AIR_ACCELERATION [INFO] [stderr] 158 | || } [INFO] [stderr] | ||_____________- expected because of this [INFO] [stderr] 159 | | } else { [INFO] [stderr] 160 | | 0.0 [INFO] [stderr] | | ^^^ expected struct `units::physics::Acceleration`, found floating-point number [INFO] [stderr] 161 | | }; [INFO] [stderr] | |_________- if and else have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | self.velocity_x += acceleration_x * elapsed_time_ms; [INFO] [stderr] | ---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::physics::Velocity` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:164:52 [INFO] [stderr] | [INFO] [stderr] 164 | self.velocity_x = if self.acceleration_x < 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `max` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:165:29 [INFO] [stderr] | [INFO] [stderr] 165 | self.velocity_x.max(-MAX_SPEED_X) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `max` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `max` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `max`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:164:52 [INFO] [stderr] | [INFO] [stderr] 164 | self.velocity_x = if self.acceleration_x < 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `max` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:165:29 [INFO] [stderr] | [INFO] [stderr] 165 | self.velocity_x.max(-MAX_SPEED_X) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `max` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `max` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `max`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] candidate #4: `test::stats::Stats` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:166:41 [INFO] [stderr] | [INFO] [stderr] 166 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:167:29 [INFO] [stderr] | [INFO] [stderr] 167 | self.velocity_x.min(MAX_SPEED_X) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `>` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:169:32 [INFO] [stderr] | [INFO] [stderr] 169 | if self.velocity_x > 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:166:41 [INFO] [stderr] | [INFO] [stderr] 166 | } else if self.acceleration_x > 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:167:29 [INFO] [stderr] | [INFO] [stderr] 167 | self.velocity_x.min(MAX_SPEED_X) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] candidate #4: `test::stats::Stats` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `>` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:169:32 [INFO] [stderr] | [INFO] [stderr] 169 | if self.velocity_x > 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:170:47 [INFO] [stderr] | [INFO] [stderr] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `max` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:170:64 [INFO] [stderr] | [INFO] [stderr] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `max` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `max` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `max`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:170:47 [INFO] [stderr] | [INFO] [stderr] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `max` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:170:64 [INFO] [stderr] | [INFO] [stderr] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `max` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `max` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `max`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] candidate #4: `test::stats::Stats` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:172:47 [INFO] [stderr] | [INFO] [stderr] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:172:64 [INFO] [stderr] | [INFO] [stderr] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:179:40 [INFO] [stderr] | [INFO] [stderr] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `round` found for type `units::drawing::Game` in the current scope [INFO] [stderr] --> src/player/mod.rs:179:57 [INFO] [stderr] | [INFO] [stderr] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/drawing.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Game(pub f64); [INFO] [stderr] | ------------------------- method `round` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0277]: can't compare `i32` with `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:182:18 [INFO] [stderr] | [INFO] [stderr] 182 | if delta > units::Game(0.0) { [INFO] [stderr] | ^ no implementation for `i32 < units::drawing::Game` and `i32 > units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::cmp::PartialOrd` is not implemented for `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:172:47 [INFO] [stderr] | [INFO] [stderr] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:172:64 [INFO] [stderr] | [INFO] [stderr] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] candidate #4: `test::stats::Stats` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:187:26 [INFO] [stderr] | [INFO] [stderr] 187 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:179:40 [INFO] [stderr] | [INFO] [stderr] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `round` found for type `units::drawing::Game` in the current scope [INFO] [stderr] --> src/player/mod.rs:179:57 [INFO] [stderr] | [INFO] [stderr] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/drawing.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Game(pub f64); [INFO] [stderr] | ------------------------- method `round` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0277]: can't compare `i32` with `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:182:18 [INFO] [stderr] | [INFO] [stderr] 182 | if delta > units::Game(0.0) { [INFO] [stderr] | ^ no implementation for `i32 < units::drawing::Game` and `i32 > units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::cmp::PartialOrd` is not implemented for `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:188:35 [INFO] [stderr] | [INFO] [stderr] 188 | self.velocity_x = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | self.x += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:187:26 [INFO] [stderr] | [INFO] [stderr] 187 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:196:26 [INFO] [stderr] | [INFO] [stderr] 196 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:188:35 [INFO] [stderr] | [INFO] [stderr] 188 | self.velocity_x = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:190:17 [INFO] [stderr] | [INFO] [stderr] 190 | self.x += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:203:26 [INFO] [stderr] | [INFO] [stderr] 203 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:196:26 [INFO] [stderr] | [INFO] [stderr] 196 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:204:35 [INFO] [stderr] | [INFO] [stderr] 204 | self.velocity_x = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | self.x += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:203:26 [INFO] [stderr] | [INFO] [stderr] 203 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:212:26 [INFO] [stderr] | [INFO] [stderr] 212 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `<` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:219:62 [INFO] [stderr] | [INFO] [stderr] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: if and else have incompatible types [INFO] [stderr] --> src/player/mod.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stderr] | _______________________- [INFO] [stderr] 220 | | JUMP_GRAVITY [INFO] [stderr] | | ------------ expected because of this [INFO] [stderr] 221 | | } else { [INFO] [stderr] 222 | | GRAVITY [INFO] [stderr] | | ^^^^^^^ expected struct `units::physics::Acceleration`, found f32 [INFO] [stderr] 223 | | }; [INFO] [stderr] | |_________- if and else have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:225:73 [INFO] [stderr] | [INFO] [stderr] 225 | self.velocity_y = (self.velocity_y + gravity * elapsed_time_ms).min(MAX_SPEED_Y); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:204:35 [INFO] [stderr] | [INFO] [stderr] 204 | self.velocity_x = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | self.x += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:228:40 [INFO] [stderr] | [INFO] [stderr] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `round` found for type `units::drawing::Game` in the current scope [INFO] [stderr] --> src/player/mod.rs:228:57 [INFO] [stderr] | [INFO] [stderr] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/drawing.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Game(pub f64); [INFO] [stderr] | ------------------------- method `round` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:212:26 [INFO] [stderr] | [INFO] [stderr] 212 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `<` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:219:62 [INFO] [stderr] | [INFO] [stderr] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: if and else have incompatible types [INFO] [stderr] --> src/player/mod.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stderr] | _______________________- [INFO] [stderr] 220 | | JUMP_GRAVITY [INFO] [stderr] | | ------------ expected because of this [INFO] [stderr] 221 | | } else { [INFO] [stderr] 222 | | GRAVITY [INFO] [stderr] | | ^^^^^^^ expected struct `units::physics::Acceleration`, found f32 [INFO] [stderr] 223 | | }; [INFO] [stderr] | |_________- if and else have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `min` found for type `units::physics::Velocity` in the current scope [INFO] [stderr] --> src/player/mod.rs:225:73 [INFO] [stderr] | [INFO] [stderr] 225 | self.velocity_y = (self.velocity_y + gravity * elapsed_time_ms).min(MAX_SPEED_Y); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/physics.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Velocity(pub f64); [INFO] [stderr] | ----------------------------- method `min` not found for this [INFO] [stderr] | [INFO] [stderr] = note: the method `min` exists but the following trait bounds were not satisfied: [INFO] [stderr] `&mut units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] `&mut units::physics::Velocity : std::iter::Iterator` [INFO] [stderr] `&units::physics::Velocity : std::cmp::Ord` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `min`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::cmp::Ord` [INFO] [stderr] candidate #2: `std::iter::Iterator` [INFO] [stderr] candidate #3: `num_traits::float::Float` [INFO] [stderr] candidate #4: `test::stats::Stats` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:236:26 [INFO] [stderr] | [INFO] [stderr] 236 | self.y = info.row * (TILE_SIZE as i32) - self.collision_y.bottom(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:228:40 [INFO] [stderr] | [INFO] [stderr] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ expected struct `units::physics::Millis`, found f32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Millis` [INFO] [stderr] found type `f32` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `round` found for type `units::drawing::Game` in the current scope [INFO] [stderr] --> src/player/mod.rs:228:57 [INFO] [stderr] | [INFO] [stderr] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/units/drawing.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Game(pub f64); [INFO] [stderr] | ------------------------- method `round` not found for this [INFO] [stderr] | [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `num_traits::float::Float` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:237:35 [INFO] [stderr] | [INFO] [stderr] 237 | self.velocity_y = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:239:17 [INFO] [stderr] | [INFO] [stderr] 239 | self.y += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:236:26 [INFO] [stderr] | [INFO] [stderr] 236 | self.y = info.row * (TILE_SIZE as i32) - self.collision_y.bottom(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:245:26 [INFO] [stderr] | [INFO] [stderr] 245 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:237:35 [INFO] [stderr] | [INFO] [stderr] 237 | self.velocity_y = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:239:17 [INFO] [stderr] | [INFO] [stderr] 239 | self.y += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:251:26 [INFO] [stderr] | [INFO] [stderr] 251 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:245:26 [INFO] [stderr] | [INFO] [stderr] 245 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:252:35 [INFO] [stderr] | [INFO] [stderr] 252 | self.velocity_y = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:254:17 [INFO] [stderr] | [INFO] [stderr] 254 | self.y += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:251:26 [INFO] [stderr] | [INFO] [stderr] 251 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:262:26 [INFO] [stderr] | [INFO] [stderr] 262 | self.y = info.row * TILE_SIZE as i32 - self.collision_y.bottom(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:252:35 [INFO] [stderr] | [INFO] [stderr] 252 | self.velocity_y = 0.0; [INFO] [stderr] | ^^^ expected struct `units::physics::Velocity`, found floating-point number [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Velocity` [INFO] [stderr] found type `{float}` [INFO] [stderr] [INFO] [stderr] error[E0368]: binary assignment operation `+=` cannot be applied to type `units::drawing::Game` [INFO] [stderr] --> src/player/mod.rs:254:17 [INFO] [stderr] | [INFO] [stderr] 254 | self.y += delta; [INFO] [stderr] | ------^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | cannot use `+=` on type `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::ops::AddAssign` might be missing for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if self.acceleration_x == 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `<` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:316:32 [INFO] [stderr] | [INFO] [stderr] 316 | if self.velocity_y < 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:262:26 [INFO] [stderr] | [INFO] [stderr] 262 | self.y = info.row * TILE_SIZE as i32 - self.collision_y.bottom(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `units::drawing::Game`, found i32 [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::drawing::Game` [INFO] [stderr] found type `i32` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:327:26 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:310:39 [INFO] [stderr] | [INFO] [stderr] 310 | if self.acceleration_x == 0 { [INFO] [stderr] | ^ expected struct `units::physics::Acceleration`, found integer [INFO] [stderr] | [INFO] [stderr] = note: expected type `units::physics::Acceleration` [INFO] [stderr] found type `{integer}` [INFO] [stderr] [INFO] [stderr] error[E0369]: binary operation `<` cannot be applied to type `units::physics::Velocity` [INFO] [stderr] --> src/player/mod.rs:316:32 [INFO] [stderr] | [INFO] [stderr] 316 | if self.velocity_y < 0.0 { [INFO] [stderr] | --------------- ^ --- {float} [INFO] [stderr] | | [INFO] [stderr] | units::physics::Velocity [INFO] [stderr] | [INFO] [stderr] = note: an implementation of `std::cmp::PartialOrd` might be missing for `units::physics::Velocity` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:327:26 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:327:19 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:327:52 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:327:19 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:327:52 [INFO] [stderr] | [INFO] [stderr] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:328:19 [INFO] [stderr] | [INFO] [stderr] 328 | self.y + self.collision_x.top(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:328:19 [INFO] [stderr] | [INFO] [stderr] 328 | self.y + self.collision_x.top(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:328:26 [INFO] [stderr] | [INFO] [stderr] 328 | self.y + self.collision_x.top(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:328:26 [INFO] [stderr] | [INFO] [stderr] 328 | self.y + self.collision_x.top(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:335:26 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:335:26 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:335:19 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:335:52 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:335:19 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:335:52 [INFO] [stderr] | [INFO] [stderr] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:336:19 [INFO] [stderr] | [INFO] [stderr] 336 | self.y + self.collision_x.top(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:336:26 [INFO] [stderr] | [INFO] [stderr] 336 | self.y + self.collision_x.top(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:336:19 [INFO] [stderr] | [INFO] [stderr] 336 | self.y + self.collision_x.top(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:336:26 [INFO] [stderr] | [INFO] [stderr] 336 | self.y + self.collision_x.top(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:343:19 [INFO] [stderr] | [INFO] [stderr] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:344:26 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:343:19 [INFO] [stderr] | [INFO] [stderr] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:344:26 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:344:19 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:344:51 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:351:19 [INFO] [stderr] | [INFO] [stderr] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:351:26 [INFO] [stderr] | [INFO] [stderr] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:344:19 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:352:26 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] [INFO] [stderr] --> src/player/mod.rs:344:51 [INFO] [stderr] | [INFO] [stderr] 344 | self.y + self.collision_y.top() + delta, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:352:19 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:352:51 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:351:19 [INFO] [stderr] | [INFO] [stderr] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:351:26 [INFO] [stderr] | [INFO] [stderr] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:352:26 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/player/mod.rs:352:19 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found struct `units::drawing::Game` [INFO] [stderr] | [INFO] [stderr] = note: expected type `i32` [INFO] [stderr] found type `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `i32: units::drawing::AsGame` is not satisfied [INFO] [stderr] --> src/player/mod.rs:352:51 [INFO] [stderr] | [INFO] [stderr] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stderr] | ^ the trait `units::drawing::AsGame` is not implemented for `i32` [INFO] [stderr] | [INFO] [stderr] = note: required because of the requirements on the impl of `std::ops::Add` for `units::drawing::Game` [INFO] [stderr] [INFO] [stderr] error: aborting due to 73 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0368, E0369, E0599, E0605. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: aborting due to 73 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0308, E0368, E0369, E0599, E0605. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `cave-story`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `cave-story`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1eb661bf50ecc2dd20bc2f09f6cca9d9b5f9fbd0cc1203c81a221e4ee04cc3ec"` [INFO] running `"docker" "rm" "-f" "1eb661bf50ecc2dd20bc2f09f6cca9d9b5f9fbd0cc1203c81a221e4ee04cc3ec"` [INFO] [stdout] 1eb661bf50ecc2dd20bc2f09f6cca9d9b5f9fbd0cc1203c81a221e4ee04cc3ec