[INFO] cloning repository https://github.com/zack37/rust-cave-story [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zack37/rust-cave-story" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzack37%2Frust-cave-story", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzack37%2Frust-cave-story'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cd1283cce3e0082b28589aacfab9db859f1c9832 [INFO] checking zack37/rust-cave-story against try#4949cf2f817beadb9a248d423b6d55d6d2398ffe for pr-142681 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzack37%2Frust-cave-story" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/zack37/rust-cave-story [INFO] finished tweaking git repo https://github.com/zack37/rust-cave-story [INFO] tweaked toml for git repo https://github.com/zack37/rust-cave-story written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zack37/rust-cave-story on toolchain 4949cf2f817beadb9a248d423b6d55d6d2398ffe [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4949cf2f817beadb9a248d423b6d55d6d2398ffe" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/zack37/rust-cave-story already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4949cf2f817beadb9a248d423b6d55d6d2398ffe" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] warning: unused manifest key: attributes [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded redox_syscall v0.1.18 [INFO] [stderr] Downloaded num-traits v0.1.37 [INFO] [stderr] Downloaded num-iter v0.1.33 [INFO] [stderr] Downloaded lazy_static v0.2.8 [INFO] [stderr] Downloaded bitflags v0.7.0 [INFO] [stderr] Downloaded num v0.1.37 [INFO] [stderr] Downloaded sdl2 v0.30.0 [INFO] [stderr] Downloaded time v0.1.37 [INFO] [stderr] Downloaded num-integer v0.1.34 [INFO] [stderr] Downloaded sdl2-sys v0.30.0 [INFO] [stderr] Downloaded libc v0.2.23 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+4949cf2f817beadb9a248d423b6d55d6d2398ffe" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5947ea7a61a4b93426a9aff7aaf4011189c14d4158b17511623a7eb7cd46a893 [INFO] running `Command { std: "docker" "start" "-a" "5947ea7a61a4b93426a9aff7aaf4011189c14d4158b17511623a7eb7cd46a893", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5947ea7a61a4b93426a9aff7aaf4011189c14d4158b17511623a7eb7cd46a893", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5947ea7a61a4b93426a9aff7aaf4011189c14d4158b17511623a7eb7cd46a893", kill_on_drop: false }` [INFO] [stdout] 5947ea7a61a4b93426a9aff7aaf4011189c14d4158b17511623a7eb7cd46a893 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+4949cf2f817beadb9a248d423b6d55d6d2398ffe" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3350374e34981b070d049179cb362ee584a4fad53d51b028836290a700a859ad [INFO] running `Command { std: "docker" "start" "-a" "3350374e34981b070d049179cb362ee584a4fad53d51b028836290a700a859ad", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] warning: unused manifest key: attributes [INFO] [stderr] Checking num-traits v0.1.37 [INFO] [stderr] Checking libc v0.2.23 [INFO] [stderr] Compiling sdl2-sys v0.30.0 [INFO] [stderr] Checking bitflags v0.7.0 [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/rustwide/workdir) [INFO] [stdout] warning: unused imports: `AsPixel`, `AsTile`, `HalfTile`, and `Pixel` [INFO] [stdout] --> src/units/mod.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | pub use units::drawing::{AsGame, AsTile, AsPixel, Game, Tile, HalfTile, Pixel}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AngularVelocity`, `Degrees`, `Frame`, and `Millis` [INFO] [stdout] --> src/units/mod.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | pub use units::physics::{Millis, Velocity, Acceleration, Degrees, AngularVelocity, Frame, Fps}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsPixel`, `AsTile`, `HalfTile`, and `Pixel` [INFO] [stdout] --> src/units/mod.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | pub use units::drawing::{AsGame, AsTile, AsPixel, Game, Tile, HalfTile, Pixel}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AngularVelocity`, `Degrees`, `Frame`, and `Millis` [INFO] [stdout] --> src/units/mod.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | pub use units::physics::{Millis, Velocity, Acceleration, Degrees, AngularVelocity, Frame, Fps}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0635]: unknown feature `step_by` [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(step_by)] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/tile.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | type TileSprite = Rc>>; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | type TileSprite = Rc>>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:19:26 [INFO] [stdout] | [INFO] [stdout] 19 | backdrop: Option>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | backdrop: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/player/mod.rs:51:39 [INFO] [stdout] | [INFO] [stdout] 51 | sprites: HashMap>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 | sprites: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0635]: unknown feature `step_by` [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(step_by)] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/tile.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | type TileSprite = Rc>>; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | type TileSprite = Rc>>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:19:26 [INFO] [stdout] | [INFO] [stdout] 19 | backdrop: Option>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | backdrop: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/player/mod.rs:51:39 [INFO] [stdout] | [INFO] [stdout] 51 | sprites: HashMap>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 | sprites: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^ expected integer, found `Tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^ expected integer, found `Tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:24:44 [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^ expected `usize`, found `u32` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:423:8 [INFO] [stdout] help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:24:44 [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^ expected `usize`, found `u32` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:423:8 [INFO] [stdout] help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 24 | for x in (0..SCREEN_WIDTH).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^^ expected integer, found `Tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^^ expected integer, found `Tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:25:49 [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^ expected `usize`, found `u32` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:423:8 [INFO] [stdout] help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/backdrop.rs:25:49 [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE) { [INFO] [stdout] | ------- ^^^^^^^^^^^^^^^ expected `usize`, found `u32` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:423:8 [INFO] [stdout] help: you can convert a `u32` to a `usize` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 25 | for y in (0..SCREEN_HEIGHT).step_by(BACKGROUND_SIZE.try_into().unwrap()) { [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{integer}: AsGame` is not satisfied [INFO] [stdout] --> src/game.rs:37:54 [INFO] [stdout] | [INFO] [stdout] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `{integer}` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `Div<{integer}>` [INFO] [stdout] --> src/units/drawing.rs:72:17 [INFO] [stdout] | [INFO] [stdout] 72 | impl Div for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{integer}: AsGame` is not satisfied [INFO] [stdout] --> src/game.rs:37:54 [INFO] [stdout] | [INFO] [stdout] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `{integer}` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `Div<{integer}>` [INFO] [stdout] --> src/units/drawing.rs:72:17 [INFO] [stdout] | [INFO] [stdout] 72 | impl Div for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{integer}: AsGame` is not satisfied [INFO] [stdout] --> src/game.rs:37:66 [INFO] [stdout] | [INFO] [stdout] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `{integer}` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `Div<{integer}>` [INFO] [stdout] --> src/units/drawing.rs:72:17 [INFO] [stdout] | [INFO] [stdout] 72 | impl Div for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `{integer}: AsGame` is not satisfied [INFO] [stdout] --> src/game.rs:37:66 [INFO] [stdout] | [INFO] [stdout] 37 | let mut player = Player::new(graphics, width / 2, height / 2); [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `{integer}` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `Div<{integer}>` [INFO] [stdout] --> src/units/drawing.rs:72:17 [INFO] [stdout] | [INFO] [stdout] 72 | impl Div for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/graphics.rs:22:22 [INFO] [stdout] | [INFO] [stdout] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stdout] | ^^^^^^ ------------ ------------- expected `u32`, found `Tile` [INFO] [stdout] | | [INFO] [stdout] | expected `u32`, found `Tile` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/video.rs:561:12 [INFO] [stdout] | [INFO] [stdout] 561 | pub fn window(&self, title: &str, width: u32, height: u32) -> WindowBuilder { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/graphics.rs:22:22 [INFO] [stdout] | [INFO] [stdout] 22 | .window("Cave Story: Rust", SCREEN_WIDTH, SCREEN_HEIGHT) [INFO] [stdout] | ^^^^^^ ------------ ------------- expected `u32`, found `Tile` [INFO] [stdout] | | [INFO] [stdout] | expected `u32`, found `Tile` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/video.rs:561:12 [INFO] [stdout] | [INFO] [stdout] 561 | pub fn window(&self, title: &str, width: u32, height: u32) -> WindowBuilder { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u32: AsTile` is not satisfied [INFO] [stdout] --> src/map/mod.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stdout] | ^ the trait `AsTile` is not implemented for `u32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsTile`: [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Tile` to implement `Div` [INFO] [stdout] --> src/units/drawing.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | impl Div for Tile { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u32: AsTile` is not satisfied [INFO] [stdout] --> src/map/mod.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stdout] | ^ the trait `AsTile` is not implemented for `u32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsTile`: [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Tile` to implement `Div` [INFO] [stdout] --> src/units/drawing.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | impl Div for Tile { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u32: AsTile` is not satisfied [INFO] [stdout] --> src/map/mod.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stdout] | ^ the trait `AsTile` is not implemented for `u32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsTile`: [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Tile` to implement `Div` [INFO] [stdout] --> src/units/drawing.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | impl Div for Tile { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `u32: AsTile` is not satisfied [INFO] [stdout] --> src/map/mod.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stdout] | ^ the trait `AsTile` is not implemented for `u32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsTile`: [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Tile` to implement `Div` [INFO] [stdout] --> src/units/drawing.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | impl Div for Tile { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:58:50 [INFO] [stdout] | [INFO] [stdout] 58 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:66:53 [INFO] [stdout] | [INFO] [stdout] 66 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 66 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:74:53 [INFO] [stdout] | [INFO] [stdout] 74 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:58:50 [INFO] [stdout] | [INFO] [stdout] 58 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:66:53 [INFO] [stdout] | [INFO] [stdout] 66 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 66 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/map/mod.rs:74:53 [INFO] [stdout] | [INFO] [stdout] 74 | ... Box)); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | Box)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `drawing::Tile` as `usize` [INFO] [stdout] --> src/map/mod.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `drawing::Tile` as `usize` [INFO] [stdout] --> src/map/mod.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | let num_rows = (SCREEN_HEIGHT / TILE_SIZE) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `drawing::Tile` as `usize` [INFO] [stdout] --> src/map/mod.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0605]: non-primitive cast: `drawing::Tile` as `usize` [INFO] [stdout] --> src/map/mod.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | let num_cols = (SCREEN_WIDTH / TILE_SIZE) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/player/mod.rs:132:48 [INFO] [stdout] | [INFO] [stdout] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stdout] | ^^^^ ------ ------ expected `i32`, found `Game` [INFO] [stdout] | | [INFO] [stdout] | expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/sprite.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | fn draw(&self, graphics: &mut Graphics, x: i32, y: i32); [INFO] [stdout] | ^^^^ - - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:147:55 [INFO] [stdout] | [INFO] [stdout] 147 | let acceleration_x = if self.acceleration_x < 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> src/player/mod.rs:132:48 [INFO] [stdout] | [INFO] [stdout] 132 | self.sprites[&self.get_sprite_state()].draw(graphics, self.x, self.y); [INFO] [stdout] | ^^^^ ------ ------ expected `i32`, found `Game` [INFO] [stdout] | | [INFO] [stdout] | expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/sprite.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | fn draw(&self, graphics: &mut Graphics, x: i32, y: i32); [INFO] [stdout] | ^^^^ - - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:147:55 [INFO] [stdout] | [INFO] [stdout] 147 | let acceleration_x = if self.acceleration_x < 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:153:41 [INFO] [stdout] | [INFO] [stdout] 153 | } else if self.acceleration_x > 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:153:41 [INFO] [stdout] | [INFO] [stdout] 153 | } else if self.acceleration_x > 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/player/mod.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 153 | } else if self.acceleration_x > 0 { [INFO] [stdout] | _________________- [INFO] [stdout] 154 | |/ if self.on_ground { [INFO] [stdout] 155 | || WALKING_ACCELERATION [INFO] [stdout] 156 | || } else { [INFO] [stdout] 157 | || AIR_ACCELERATION [INFO] [stdout] 158 | || } [INFO] [stdout] | ||_____________- expected because of this [INFO] [stdout] 159 | | } else { [INFO] [stdout] 160 | | 0.0 [INFO] [stdout] | | ^^^ expected `Acceleration`, found floating-point number [INFO] [stdout] 161 | | }; [INFO] [stdout] | |__________- `if` and `else` have incompatible types [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Acceleration` [INFO] [stdout] | [INFO] [stdout] 160 | units::physics::Acceleration(0.0) [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/player/mod.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 153 | } else if self.acceleration_x > 0 { [INFO] [stdout] | _________________- [INFO] [stdout] 154 | |/ if self.on_ground { [INFO] [stdout] 155 | || WALKING_ACCELERATION [INFO] [stdout] 156 | || } else { [INFO] [stdout] 157 | || AIR_ACCELERATION [INFO] [stdout] 158 | || } [INFO] [stdout] | ||_____________- expected because of this [INFO] [stdout] 159 | | } else { [INFO] [stdout] 160 | | 0.0 [INFO] [stdout] | | ^^^ expected `Acceleration`, found floating-point number [INFO] [stdout] 161 | | }; [INFO] [stdout] | |__________- `if` and `else` have incompatible types [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Acceleration` [INFO] [stdout] | [INFO] [stdout] 160 | units::physics::Acceleration(0.0) [INFO] [stdout] | +++++++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:164:52 [INFO] [stdout] | [INFO] [stdout] 164 | self.velocity_x = if self.acceleration_x < 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:164:52 [INFO] [stdout] | [INFO] [stdout] 164 | self.velocity_x = if self.acceleration_x < 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `max` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:165:29 [INFO] [stdout] | [INFO] [stdout] 165 | self.velocity_x.max(-MAX_SPEED_X) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `max` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `max` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:165:29 [INFO] [stdout] | [INFO] [stdout] 165 | self.velocity_x.max(-MAX_SPEED_X) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `max` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:166:41 [INFO] [stdout] | [INFO] [stdout] 166 | } else if self.acceleration_x > 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:167:29 [INFO] [stdout] | [INFO] [stdout] 167 | self.velocity_x.min(MAX_SPEED_X) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:166:41 [INFO] [stdout] | [INFO] [stdout] 166 | } else if self.acceleration_x > 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:169:32 [INFO] [stdout] | [INFO] [stdout] 169 | if self.velocity_x > 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:170:47 [INFO] [stdout] | [INFO] [stdout] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:167:29 [INFO] [stdout] | [INFO] [stdout] 167 | self.velocity_x.min(MAX_SPEED_X) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:169:32 [INFO] [stdout] | [INFO] [stdout] 169 | if self.velocity_x > 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:170:47 [INFO] [stdout] | [INFO] [stdout] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `max` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:170:64 [INFO] [stdout] | [INFO] [stdout] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `max` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:172:47 [INFO] [stdout] | [INFO] [stdout] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:172:64 [INFO] [stdout] | [INFO] [stdout] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `max` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:170:64 [INFO] [stdout] | [INFO] [stdout] 170 | (self.velocity_x - FRICTION * elapsed_time_ms).max(0.0) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `max` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:172:47 [INFO] [stdout] | [INFO] [stdout] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:179:40 [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:172:64 [INFO] [stdout] | [INFO] [stdout] 172 | (self.velocity_x + FRICTION * elapsed_time_ms).min(0.0) [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:179:40 [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `round` found for struct `drawing::Game` in the current scope [INFO] [stdout] --> src/player/mod.rs:179:57 [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^ method not found in `drawing::Game` [INFO] [stdout] | [INFO] [stdout] ::: src/units/drawing.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Game(pub f64); [INFO] [stdout] | --------------- method `round` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `num_traits::float::Float` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).0.round() as i32; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `round` found for struct `drawing::Game` in the current scope [INFO] [stdout] --> src/player/mod.rs:179:57 [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^ method not found in `drawing::Game` [INFO] [stdout] | [INFO] [stdout] ::: src/units/drawing.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Game(pub f64); [INFO] [stdout] | --------------- method `round` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `num_traits::float::Float` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 179 | let delta = (self.velocity_x * elapsed_time_ms).0.round() as i32; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:187:26 [INFO] [stdout] | [INFO] [stdout] 187 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | self.velocity_x = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 188 | self.velocity_x = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:196:26 [INFO] [stdout] | [INFO] [stdout] 196 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:203:26 [INFO] [stdout] | [INFO] [stdout] 203 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:204:35 [INFO] [stdout] | [INFO] [stdout] 204 | self.velocity_x = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 204 | self.velocity_x = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:212:26 [INFO] [stdout] | [INFO] [stdout] 212 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:187:26 [INFO] [stdout] | [INFO] [stdout] 187 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | self.velocity_x = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 188 | self.velocity_x = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:196:26 [INFO] [stdout] | [INFO] [stdout] 196 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:203:26 [INFO] [stdout] | [INFO] [stdout] 203 | self.x = info.col * TILE_SIZE as i32 + self.collision_x.right() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:204:35 [INFO] [stdout] | [INFO] [stdout] 204 | self.velocity_x = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 204 | self.velocity_x = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:212:26 [INFO] [stdout] | [INFO] [stdout] 212 | self.x = info.col * TILE_SIZE as i32 - self.collision_x.right(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:219:62 [INFO] [stdout] | [INFO] [stdout] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:219:62 [INFO] [stdout] | [INFO] [stdout] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/player/mod.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stdout] | _______________________- [INFO] [stdout] 220 | | JUMP_GRAVITY [INFO] [stdout] | | ------------ expected because of this [INFO] [stdout] 221 | | } else { [INFO] [stdout] 222 | | GRAVITY [INFO] [stdout] | | ^^^^^^^ expected `Acceleration`, found `f32` [INFO] [stdout] 223 | | }; [INFO] [stdout] | |_________- `if` and `else` have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:225:73 [INFO] [stdout] | [INFO] [stdout] 225 | self.velocity_y = (self.velocity_y + gravity * elapsed_time_ms).min(MAX_SPEED_Y); [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:228:40 [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `if` and `else` have incompatible types [INFO] [stdout] --> src/player/mod.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 219 | let gravity = if self.jump_active && self.velocity_y < 0.0 { [INFO] [stdout] | _______________________- [INFO] [stdout] 220 | | JUMP_GRAVITY [INFO] [stdout] | | ------------ expected because of this [INFO] [stdout] 221 | | } else { [INFO] [stdout] 222 | | GRAVITY [INFO] [stdout] | | ^^^^^^^ expected `Acceleration`, found `f32` [INFO] [stdout] 223 | | }; [INFO] [stdout] | |_________- `if` and `else` have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the method `min` exists for struct `Velocity`, but its trait bounds were not satisfied [INFO] [stdout] --> src/player/mod.rs:225:73 [INFO] [stdout] | [INFO] [stdout] 225 | self.velocity_y = (self.velocity_y + gravity * elapsed_time_ms).min(MAX_SPEED_Y); [INFO] [stdout] | ^^^ method cannot be called on `Velocity` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] ::: src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ------------------- method `min` not found for this struct because it doesn't satisfy `Velocity: Iterator` or `Velocity: Ord` [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&Velocity: Ord` [INFO] [stdout] `Velocity: Ord` [INFO] [stdout] which is required by `&mut Velocity: Ord` [INFO] [stdout] `Velocity: Iterator` [INFO] [stdout] which is required by `&mut Velocity: Iterator` [INFO] [stdout] note: the trait `Iterator` must be implemented [INFO] [stdout] --> /rustc/4949cf2f817beadb9a248d423b6d55d6d2398ffe/library/core/src/iter/traits/iterator.rs:39:1 [INFO] [stdout] help: consider annotating `Velocity` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 + #[derive(Eq, Ord, PartialEq, PartialOrd)] [INFO] [stdout] 29 | pub struct Velocity(pub f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:228:40 [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^ expected `Millis`, found `f32` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `round` found for struct `drawing::Game` in the current scope [INFO] [stdout] --> src/player/mod.rs:228:57 [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^ method not found in `drawing::Game` [INFO] [stdout] | [INFO] [stdout] ::: src/units/drawing.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Game(pub f64); [INFO] [stdout] | --------------- method `round` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `num_traits::float::Float` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).0.round() as i32; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `round` found for struct `drawing::Game` in the current scope [INFO] [stdout] --> src/player/mod.rs:228:57 [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).round() as i32; [INFO] [stdout] | ^^^^^ method not found in `drawing::Game` [INFO] [stdout] | [INFO] [stdout] ::: src/units/drawing.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Game(pub f64); [INFO] [stdout] | --------------- method `round` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `round`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `num_traits::float::Float` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 228 | let delta = (self.velocity_y * elapsed_time_ms).0.round() as i32; [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | self.y = info.row * (TILE_SIZE as i32) - self.collision_y.bottom(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:237:35 [INFO] [stdout] | [INFO] [stdout] 237 | self.velocity_y = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 237 | self.velocity_y = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:245:26 [INFO] [stdout] | [INFO] [stdout] 245 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:236:26 [INFO] [stdout] | [INFO] [stdout] 236 | self.y = info.row * (TILE_SIZE as i32) - self.collision_y.bottom(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:237:35 [INFO] [stdout] | [INFO] [stdout] 237 | self.velocity_y = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 237 | self.velocity_y = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:245:26 [INFO] [stdout] | [INFO] [stdout] 245 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:251:26 [INFO] [stdout] | [INFO] [stdout] 251 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:251:26 [INFO] [stdout] | [INFO] [stdout] 251 | self.y = info.row * TILE_SIZE as i32 + self.collision_y.height() as i32; [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:252:35 [INFO] [stdout] | [INFO] [stdout] 252 | self.velocity_y = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 252 | self.velocity_y = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:262:26 [INFO] [stdout] | [INFO] [stdout] 262 | self.y = info.row * TILE_SIZE as i32 - self.collision_y.bottom(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:310:39 [INFO] [stdout] | [INFO] [stdout] 310 | if self.acceleration_x == 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:316:32 [INFO] [stdout] | [INFO] [stdout] 316 | if self.velocity_y < 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:252:35 [INFO] [stdout] | [INFO] [stdout] 252 | self.velocity_y = 0.0; [INFO] [stdout] | --------------- ^^^ expected `Velocity`, found floating-point number [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] help: try wrapping the expression in `units::physics::Velocity` [INFO] [stdout] | [INFO] [stdout] 252 | self.velocity_y = units::physics::Velocity(0.0); [INFO] [stdout] | +++++++++++++++++++++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:327:26 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:262:26 [INFO] [stdout] | [INFO] [stdout] 262 | self.y = info.row * TILE_SIZE as i32 - self.collision_y.bottom(); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Game`, found `i32` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:327:52 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:328:26 [INFO] [stdout] | [INFO] [stdout] 328 | self.y + self.collision_x.top(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/player/mod.rs:310:39 [INFO] [stdout] | [INFO] [stdout] 310 | if self.acceleration_x == 0 { [INFO] [stdout] | ------------------- ^ expected `Acceleration`, found integer [INFO] [stdout] | | [INFO] [stdout] | expected because this is `Acceleration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^^^^^^^^^ ---------------------------------------- expected `i32`, found `Game` [INFO] [stdout] 328 | self.y + self.collision_x.top(), [INFO] [stdout] | ------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `<` cannot be applied to type `Velocity` [INFO] [stdout] --> src/player/mod.rs:316:32 [INFO] [stdout] | [INFO] [stdout] 316 | if self.velocity_y < 0.0 { [INFO] [stdout] | --------------- ^ --- {float} [INFO] [stdout] | | [INFO] [stdout] | Velocity [INFO] [stdout] | [INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Velocity` [INFO] [stdout] --> src/units/physics.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Velocity(pub f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:335:26 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:335:52 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:336:26 [INFO] [stdout] | [INFO] [stdout] 336 | self.y + self.collision_x.top(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:327:26 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:327:52 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^^^^^^^^^ ------------------------------------------------------------------------ expected `i32`, found `Game` [INFO] [stdout] 336 | self.y + self.collision_x.top(), [INFO] [stdout] | ------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:328:26 [INFO] [stdout] | [INFO] [stdout] 328 | self.y + self.collision_x.top(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:343:26 [INFO] [stdout] | [INFO] [stdout] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:344:26 [INFO] [stdout] | [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:344:51 [INFO] [stdout] | [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | Rect::new(self.x + self.collision_x.left() + delta, [INFO] [stdout] | ^^^^^^^^^ ---------------------------------------- expected `i32`, found `Game` [INFO] [stdout] 328 | self.y + self.collision_x.top(), [INFO] [stdout] | ------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:335:26 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:335:52 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:336:26 [INFO] [stdout] | [INFO] [stdout] 336 | self.y + self.collision_x.top(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^^^^^^^^^ -------------------------------- expected `i32`, found `Game` [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | --------------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:351:26 [INFO] [stdout] | [INFO] [stdout] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:352:26 [INFO] [stdout] | [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:352:51 [INFO] [stdout] | [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^^^^^^^^^ -------------------------------- expected `i32`, found `Game` [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ------------------------------------------------------------------------ expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | Rect::new(self.x + self.collision_x.left() + (self.collision_x.width() / 2) as i32, [INFO] [stdout] | ^^^^^^^^^ ------------------------------------------------------------------------ expected `i32`, found `Game` [INFO] [stdout] 336 | self.y + self.collision_x.top(), [INFO] [stdout] | ------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:343:26 [INFO] [stdout] | [INFO] [stdout] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:344:26 [INFO] [stdout] | [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:344:51 [INFO] [stdout] | [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^^^^^^^^^ -------------------------------- expected `i32`, found `Game` [INFO] [stdout] 344 | self.y + self.collision_y.top() + delta, [INFO] [stdout] | --------------------------------------- expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:351:26 [INFO] [stdout] | [INFO] [stdout] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:352:26 [INFO] [stdout] | [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `i32: AsGame` is not satisfied [INFO] [stdout] --> src/player/mod.rs:352:51 [INFO] [stdout] | [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ^ the trait `AsGame` is not implemented for `i32` [INFO] [stdout] | [INFO] [stdout] = help: the following other types implement trait `AsGame`: [INFO] [stdout] HalfTile [INFO] [stdout] drawing::Game [INFO] [stdout] drawing::Tile [INFO] [stdout] note: required for `drawing::Game` to implement `std::ops::Add` [INFO] [stdout] --> src/units/drawing.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | impl Add for Game { [INFO] [stdout] | ------ ^^^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this function are incorrect [INFO] [stdout] --> src/player/mod.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | Rect::new(self.x + self.collision_y.left(), [INFO] [stdout] | ^^^^^^^^^ -------------------------------- expected `i32`, found `Game` [INFO] [stdout] 352 | self.y + self.collision_y.top() + (self.collision_y.height() / 2) as i32, [INFO] [stdout] | ------------------------------------------------------------------------ expected `i32`, found `Game` [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sdl2-0.30.0/src/sdl2/rect.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn new(x: i32, y: i32, width: u32, height: u32) -> Rect { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elapsed_time` [INFO] [stdout] --> src/sprite.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | fn update(&mut self, elapsed_time: Duration) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed_time` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0369, E0599, E0605, E0635. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] warning: unused variable: `elapsed_time` [INFO] [stdout] --> src/sprite.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | fn update(&mut self, elapsed_time: Duration) {} [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed_time` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0369, E0599, E0605, E0635. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cave-story` (bin "cave-story" test) due to 62 previous errors; 10 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `cave-story` (bin "cave-story") due to 62 previous errors; 10 warnings emitted [INFO] running `Command { std: "docker" "inspect" "3350374e34981b070d049179cb362ee584a4fad53d51b028836290a700a859ad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3350374e34981b070d049179cb362ee584a4fad53d51b028836290a700a859ad", kill_on_drop: false }` [INFO] [stdout] 3350374e34981b070d049179cb362ee584a4fad53d51b028836290a700a859ad