[INFO] cloning repository https://github.com/Aloento/RustySpine [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Aloento/RustySpine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAloento%2FRustySpine", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAloento%2FRustySpine'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b2ca13b1b37628e4a951e17a6ab7a9fd511f492f [INFO] checking Aloento/RustySpine/b2ca13b1b37628e4a951e17a6ab7a9fd511f492f against master#ff1737bb00913444173658b4e0b274fd79aabf66 for pr-132712-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAloento%2FRustySpine" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Aloento/RustySpine on toolchain ff1737bb00913444173658b4e0b274fd79aabf66 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Aloento/RustySpine [INFO] finished tweaking git repo https://github.com/Aloento/RustySpine [INFO] tweaked toml for git repo https://github.com/Aloento/RustySpine written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Aloento/RustySpine 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" "+ff1737bb00913444173658b4e0b274fd79aabf66" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded object-pool v0.5.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a545aee2722e6ee6e368d295d795e7325ade9c3e7509a67ced6b65fda13e1574 [INFO] running `Command { std: "docker" "start" "-a" "a545aee2722e6ee6e368d295d795e7325ade9c3e7509a67ced6b65fda13e1574", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a545aee2722e6ee6e368d295d795e7325ade9c3e7509a67ced6b65fda13e1574", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a545aee2722e6ee6e368d295d795e7325ade9c3e7509a67ced6b65fda13e1574", kill_on_drop: false }` [INFO] [stdout] a545aee2722e6ee6e368d295d795e7325ade9c3e7509a67ced6b65fda13e1574 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=allow" "-e" "RUSTDOCFLAGS=--cap-lints=allow" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+ff1737bb00913444173658b4e0b274fd79aabf66" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 74f0b7623172f6f5bf8b714726824d160b1f6115411f2baeda9f49783b2e7b2a [INFO] running `Command { std: "docker" "start" "-a" "74f0b7623172f6f5bf8b714726824d160b1f6115411f2baeda9f49783b2e7b2a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.86 [INFO] [stderr] Checking smallvec v1.6.1 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking parking_lot_core v0.7.2 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Checking object-pool v0.5.3 [INFO] [stderr] Checking RustySpine v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `,` [INFO] [stdout] --> src/animation_state.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | self.next = None, [INFO] [stdout] | ^ expected one of 8 possible tokens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `,` [INFO] [stdout] --> src/animation_state.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | self.next = None, [INFO] [stdout] | ^ expected one of 8 possible tokens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/attachments/path_attachment.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl PathAttachment { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 12 | impl PathAttachment<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/attachments/path_attachment.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl PathAttachment { [INFO] [stdout] | ^^^^^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 12 | impl PathAttachment<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/attachments/vertex_attachment.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | impl VertexAttachment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 13 | impl VertexAttachment<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/attachments/vertex_attachment.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | impl VertexAttachment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 13 | impl VertexAttachment<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/animation_state.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | events: Vec, [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider using the `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 19 | events: Vec>, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/animation_state.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | events: Vec, [INFO] [stdout] | ^^^^^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: consider using the `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 19 | events: Vec>, [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/animation_state.rs:79:6 [INFO] [stdout] | [INFO] [stdout] 79 | impl TrackEntry { [INFO] [stdout] | ^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 79 | impl TrackEntry<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here [INFO] [stdout] --> src/animation_state.rs:79:6 [INFO] [stdout] | [INFO] [stdout] 79 | impl TrackEntry { [INFO] [stdout] | ^^^^^^^^^^ expected lifetime parameter [INFO] [stdout] | [INFO] [stdout] help: indicate the anonymous lifetime [INFO] [stdout] | [INFO] [stdout] 79 | impl TrackEntry<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Format` in this scope [INFO] [stdout] --> src/attachments/texture_atlas.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | format: Format, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `Format` in this scope [INFO] [stdout] --> src/attachments/texture_atlas.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | format: Format, [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | listeners: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | listeners: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | listener: dyn AnimationStateListener, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | listener: dyn AnimationStateListener, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn AnimationStateListener + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/animation_state.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | listener: dyn AnimationStateListener, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn AnimationStateListener + 'static)` [INFO] [stdout] = note: only the last field of a struct may have a dynamically sized type [INFO] [stdout] = help: change the field's type to have a statically known size [INFO] [stdout] help: borrowed types always have a statically known size [INFO] [stdout] | [INFO] [stdout] 54 | listener: &dyn AnimationStateListener, [INFO] [stdout] | + [INFO] [stdout] help: the `Box` type always has a statically known size and allocates its contents in the heap [INFO] [stdout] | [INFO] [stdout] 54 | listener: Box, [INFO] [stdout] | ++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `(dyn AnimationStateListener + 'static)` cannot be known at compilation time [INFO] [stdout] --> src/animation_state.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | listener: dyn AnimationStateListener, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stdout] | [INFO] [stdout] = help: the trait `Sized` is not implemented for `(dyn AnimationStateListener + 'static)` [INFO] [stdout] = note: only the last field of a struct may have a dynamically sized type [INFO] [stdout] = help: change the field's type to have a statically known size [INFO] [stdout] help: borrowed types always have a statically known size [INFO] [stdout] | [INFO] [stdout] 54 | listener: &dyn AnimationStateListener, [INFO] [stdout] | + [INFO] [stdout] help: the `Box` type always has a statically known size and allocates its contents in the heap [INFO] [stdout] | [INFO] [stdout] 54 | listener: Box, [INFO] [stdout] | ++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot construct `TextureRegion` with struct literal syntax due to private fields [INFO] [stdout] --> src/attachments/mesh_attachment.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | region: TextureRegion {}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: private fields that were not provided [INFO] [stdout] help: you might have meant to use the `new` associated function [INFO] [stdout] | [INFO] [stdout] 25 | region: TextureRegion::new(), [INFO] [stdout] | ~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot construct `TextureRegion` with struct literal syntax due to private fields [INFO] [stdout] --> src/attachments/mesh_attachment.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | region: TextureRegion {}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: private fields that were not provided [INFO] [stdout] help: you might have meant to use the `new` associated function [INFO] [stdout] | [INFO] [stdout] 25 | region: TextureRegion::new(), [INFO] [stdout] | ~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/ik_constraint.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | target: Some(skeleton.findBone(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/ik_constraint.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | target: Some(skeleton.findBone(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/ik_constraint.rs:39:35 [INFO] [stdout] | [INFO] [stdout] 39 | i.bones.push(skeleton.findBone(&boneData.name)); [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/ik_constraint.rs:39:35 [INFO] [stdout] | [INFO] [stdout] 39 | i.bones.push(skeleton.findBone(&boneData.name)); [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/transform_constraint.rs:27:35 [INFO] [stdout] | [INFO] [stdout] 27 | target: Some(skeleton.findBone(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/transform_constraint.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | i.bones.push(skeleton.findBone(&boneData.name)) [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/transform_constraint.rs:27:35 [INFO] [stdout] | [INFO] [stdout] 27 | target: Some(skeleton.findBone(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findSlot` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/path_constraint.rs:45:35 [INFO] [stdout] | [INFO] [stdout] 45 | target: Some(skeleton.findSlot(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findSlot(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn findSlot(slotName: &String) -> Option<&Slot> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/transform_constraint.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | i.bones.push(skeleton.findBone(&boneData.name)) [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/path_constraint.rs:55:35 [INFO] [stdout] | [INFO] [stdout] 55 | i.bones.push(skeleton.findBone(&boneData.name)); [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | listeners: vec![], [INFO] [stdout] | ^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | listeners: vec![], [INFO] [stdout] | ^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findSlot` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/path_constraint.rs:45:35 [INFO] [stdout] | [INFO] [stdout] 45 | target: Some(skeleton.findSlot(&data.target.unwrap().name)), [INFO] [stdout] | ---------^^^^^^^^---------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findSlot(&data.target.unwrap().name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn findSlot(slotName: &String) -> Option<&Slot> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `findBone` found for reference `&'a Skeleton<'a>` in the current scope [INFO] [stdout] --> src/path_constraint.rs:55:35 [INFO] [stdout] | [INFO] [stdout] 55 | i.bones.push(skeleton.findBone(&boneData.name)); [INFO] [stdout] | ---------^^^^^^^^---------------- [INFO] [stdout] | | | [INFO] [stdout] | | this is an associated function, not a method [INFO] [stdout] | help: use associated function syntax instead: `Skeleton::<'a>::findBone(&boneData.name)` [INFO] [stdout] | [INFO] [stdout] = note: found the following associated functions; to be used as methods, functions must have a `self` parameter [INFO] [stdout] note: the candidate is defined in an impl for the type `Skeleton<'a>` [INFO] [stdout] --> src/skeleton.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn findBone(boneName: &String) -> Option<&Bone> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | listeners: vec![], [INFO] [stdout] | ^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | listeners: vec![], [INFO] [stdout] | ^^^^^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/animation_state.rs:89:23 [INFO] [stdout] | [INFO] [stdout] 89 | listener: (), [INFO] [stdout] | ^^ expected `dyn AnimationStateListener`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected trait object `(dyn AnimationStateListener + 'static)` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:89:23 [INFO] [stdout] | [INFO] [stdout] 89 | listener: (), [INFO] [stdout] | ^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/animation_state.rs:89:23 [INFO] [stdout] | [INFO] [stdout] 89 | listener: (), [INFO] [stdout] | ^^ expected `dyn AnimationStateListener`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected trait object `(dyn AnimationStateListener + 'static)` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `AnimationStateListener` cannot be made into an object [INFO] [stdout] --> src/animation_state.rs:89:23 [INFO] [stdout] | [INFO] [stdout] 89 | listener: (), [INFO] [stdout] | ^^ `AnimationStateListener` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/animation_state.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub trait AnimationStateListener { [INFO] [stdout] | ---------------------- this trait cannot be made into an object... [INFO] [stdout] 128 | fn start(entry: TrackEntry); [INFO] [stdout] | ^^^^^ ...because associated function `start` has no `self` parameter [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^^ ...because associated function `interrupt` has no `self` parameter [INFO] [stdout] 130 | fn end(entry: TrackEntry); [INFO] [stdout] | ^^^ ...because associated function `end` has no `self` parameter [INFO] [stdout] 131 | fn dispose(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^ ...because associated function `dispose` has no `self` parameter [INFO] [stdout] 132 | fn complete(entry: TrackEntry); [INFO] [stdout] | ^^^^^^^^ ...because associated function `complete` has no `self` parameter [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event); [INFO] [stdout] | ^^^^^ ...because associated function `event` has no `self` parameter [INFO] [stdout] 134 | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event); [INFO] [stdout] | ^^^^^^^^ ...because associated function `eventInt` has no `self` parameter [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32); [INFO] [stdout] | ^^^^^^^^^^^ ...because associated function `completeInt` has no `self` parameter [INFO] [stdout] 137 | fn startInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^^^ ...because associated function `startInt` has no `self` parameter [INFO] [stdout] 138 | fn endInt(trackIndex: i32); [INFO] [stdout] | ^^^^^^ ...because associated function `endInt` has no `self` parameter [INFO] [stdout] help: consider turning `end` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 130 | fn end(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `end` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 130 | fn end(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `start` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 128 | fn start(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `start` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 128 | fn start(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `event` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 133 | fn event(&self, entry: TrackEntry, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `event` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 133 | fn event(entry: TrackEntry, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `interrupt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `interrupt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 129 | fn interrupt(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `dispose` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `dispose` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 131 | fn dispose(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `complete` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(&self, entry: TrackEntry); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `complete` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 132 | fn complete(entry: TrackEntry) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `eventInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(&self, trackIndex: i32, event: Event); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `eventInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 135 | fn eventInt(trackIndex: i32, event: Event) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `completeInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(&self, trackIndex: i32, loopCount: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `completeInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 136 | fn completeInt(trackIndex: i32, loopCount: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `startInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `startInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 137 | fn startInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] help: consider turning `endInt` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(&self, trackIndex: i32); [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `endInt` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 138 | fn endInt(trackIndex: i32) where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.timelines` which is behind a mutable reference [INFO] [stdout] --> src/animation.rs:27:25 [INFO] [stdout] | [INFO] [stdout] 27 | for timeline in self.timelines { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self.timelines` moved due to this implicit call to `.into_iter()` [INFO] [stdout] | move occurs because `self.timelines` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.timelines` [INFO] [stdout] --> /rustc/ff1737bb00913444173658b4e0b274fd79aabf66/library/core/src/iter/traits/collect.rs:346:18 [INFO] [stdout] help: consider iterating over a slice of the `Vec>`'s content to avoid moving into the `for` loop [INFO] [stdout] | [INFO] [stdout] 27 | for timeline in &self.timelines { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of `self.timelines` which is behind a mutable reference [INFO] [stdout] --> src/animation.rs:27:25 [INFO] [stdout] | [INFO] [stdout] 27 | for timeline in self.timelines { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self.timelines` moved due to this implicit call to `.into_iter()` [INFO] [stdout] | move occurs because `self.timelines` has type `Vec>`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.timelines` [INFO] [stdout] --> /rustc/ff1737bb00913444173658b4e0b274fd79aabf66/library/core/src/iter/traits/collect.rs:346:18 [INFO] [stdout] help: consider iterating over a slice of the `Vec>`'s content to avoid moving into the `for` loop [INFO] [stdout] | [INFO] [stdout] 27 | for timeline in &self.timelines { [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:61:44 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | ^^ immutable borrow occurs here [INFO] [stdout] 62 | } else { [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.bones` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:63:34 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] 62 | } else { [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ^^^^^^^ mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0381]: used binding `bone` is possibly-uninitialized [INFO] [stdout] --> src/skeleton.rs:64:47 [INFO] [stdout] | [INFO] [stdout] 59 | let bone; [INFO] [stdout] | ---- binding declared here but left uninitialized [INFO] [stdout] 60 | if boneData.parent.is_none() { [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | ---- binding initialized here in some conditions [INFO] [stdout] ... [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ^^^^^ `bone` used here but it is possibly-uninitialized [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0506]: cannot assign to `bone` because it is borrowed [INFO] [stdout] --> src/skeleton.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ----- `bone` is borrowed here [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^^^ `bone` is assigned to here but it was already borrowed [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `bone` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:65:44 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `parent` [INFO] [stdout] --> src/skeleton.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ---------- move occurs because `parent` has type `Option<&mut Bone<'_>>`, which does not implement the `Copy` trait [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ------ -------- `parent` moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `Option::::unwrap` takes ownership of the receiver `self`, which moves `parent` [INFO] [stdout] --> /rustc/ff1737bb00913444173658b4e0b274fd79aabf66/library/core/src/option.rs:969:25 [INFO] [stdout] help: you could `clone` the value and consume it, if the `&mut Bone<'_>: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 64 | parent.clone().unwrap().children.push(&bone); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `i.bones` as mutable more than once at a time [INFO] [stdout] --> src/skeleton.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 67 | i.bones.push(bone); [INFO] [stdout] | ^^^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.bones` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 71 | let bone = i.bones.get(slotData.boneData.index as usize); [INFO] [stdout] | ^^^^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.slots` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 73 | i.slots.push(slot); [INFO] [stdout] | ^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.drawOrder` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ^^^^^^^^^^^^----^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `slot` [INFO] [stdout] --> src/skeleton.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 72 | let slot = Slot::new(slotData, bone.unwrap()); [INFO] [stdout] | ---- move occurs because `slot` has type `Slot<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 73 | i.slots.push(slot); [INFO] [stdout] | ---- value moved here [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ^^^^^ value borrowed here after move [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.ikConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 78 | i.ikConstraints.push(IkConstraint::new(ikConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:78:70 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 78 | i.ikConstraints.push(IkConstraint::new(ikConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.transformConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 82 | i.transformConstraints.push(TransformConstraint::new(transformConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:61:44 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | ^^ immutable borrow occurs here [INFO] [stdout] 62 | } else { [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:82:91 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 82 | i.transformConstraints.push(TransformConstraint::new(transformConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.pathConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 86 | i.pathConstraints.push(PathConstraint::new(pathConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.bones` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:63:34 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] 62 | } else { [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ^^^^^^^ mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:86:76 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 86 | i.pathConstraints.push(PathConstraint::new(pathConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0381]: used binding `bone` is possibly-uninitialized [INFO] [stdout] --> src/skeleton.rs:64:47 [INFO] [stdout] | [INFO] [stdout] 59 | let bone; [INFO] [stdout] | ---- binding declared here but left uninitialized [INFO] [stdout] 60 | if boneData.parent.is_none() { [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | ---- binding initialized here in some conditions [INFO] [stdout] ... [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ^^^^^ `bone` used here but it is possibly-uninitialized [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `i` because it is borrowed [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 33 | pub fn new(data: SkeletonData<'a>) -> Self { [INFO] [stdout] 34 | let mut i = Self { [INFO] [stdout] | ----- binding `i` declared here [INFO] [stdout] ... [INFO] [stdout] 58 | for boneData in &i.data.bones { [INFO] [stdout] | ------------- borrow of `i.data.bones` occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | move out of `i` occurs here [INFO] [stdout] | returning this value requires that `i.data.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0506]: cannot assign to `bone` because it is borrowed [INFO] [stdout] --> src/skeleton.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ----- `bone` is borrowed here [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^^^ `bone` is assigned to here but it was already borrowed [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `bone` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 58 | for boneData in &i.data.bones { [INFO] [stdout] | ------------- `i.data.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `slot` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ----- `slot` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `parent` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ------ `parent` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:65:44 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `bone` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ----- `bone` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- `i.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `parent` [INFO] [stdout] --> src/skeleton.rs:65:48 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ---------- move occurs because `parent` has type `Option<&mut Bone<'_>>`, which does not implement the `Copy` trait [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ------ -------- `parent` moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: `Option::::unwrap` takes ownership of the receiver `self`, which moves `parent` [INFO] [stdout] --> /rustc/ff1737bb00913444173658b4e0b274fd79aabf66/library/core/src/option.rs:969:25 [INFO] [stdout] help: you could `clone` the value and consume it, if the `&mut Bone<'_>: Clone` trait bound could be satisfied [INFO] [stdout] | [INFO] [stdout] 64 | parent.clone().unwrap().children.push(&bone); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.slots` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 70 | for slotData in &i.data.slots { [INFO] [stdout] | ------------- `i.data.slots` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 71 | let bone = i.bones.get(slotData.boneData.index as usize); [INFO] [stdout] | ------- `i.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `i.bones` as mutable more than once at a time [INFO] [stdout] --> src/skeleton.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 67 | i.bones.push(bone); [INFO] [stdout] | ^^^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.ikConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 77 | for ikConstraintData in &i.data.ikConstraints { [INFO] [stdout] | --------------------- `i.data.ikConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.bones` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] ... [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 71 | let bone = i.bones.get(slotData.boneData.index as usize); [INFO] [stdout] | ^^^^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | - returning this value requires that `i.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.transformConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 81 | for transformConstraintData in &i.data.transformConstraints { [INFO] [stdout] | ---------------------------- `i.data.transformConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.pathConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 85 | for pathConstraintData in &i.data.pathConstraints { [INFO] [stdout] | ----------------------- `i.data.pathConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.slots` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 73 | i.slots.push(slot); [INFO] [stdout] | ^^^^^^^^----^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.drawOrder` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ^^^^^^^^^^^^----^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `slot` [INFO] [stdout] --> src/skeleton.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 72 | let slot = Slot::new(slotData, bone.unwrap()); [INFO] [stdout] | ---- move occurs because `slot` has type `Slot<'_>`, which does not implement the `Copy` trait [INFO] [stdout] 73 | i.slots.push(slot); [INFO] [stdout] | ---- value moved here [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ^^^^^ value borrowed here after move [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.ikConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 78 | i.ikConstraints.push(IkConstraint::new(ikConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:78:70 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 78 | i.ikConstraints.push(IkConstraint::new(ikConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.transformConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 82 | i.transformConstraints.push(TransformConstraint::new(transformConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:82:91 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 82 | i.transformConstraints.push(TransformConstraint::new(transformConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i.pathConstraints` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/skeleton.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 61 | bone = Bone::new(boneData, &i, None); [INFO] [stdout] | -- immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 86 | i.pathConstraints.push(PathConstraint::new(pathConstraintData, &i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `i` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/skeleton.rs:86:76 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 86 | i.pathConstraints.push(PathConstraint::new(pathConstraintData, &i)); [INFO] [stdout] | ---- mutable borrow later used by call ^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `i` because it is borrowed [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 32 | impl<'a> Skeleton<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 33 | pub fn new(data: SkeletonData<'a>) -> Self { [INFO] [stdout] 34 | let mut i = Self { [INFO] [stdout] | ----- binding `i` declared here [INFO] [stdout] ... [INFO] [stdout] 58 | for boneData in &i.data.bones { [INFO] [stdout] | ------------- borrow of `i.data.bones` occurs here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | move out of `i` occurs here [INFO] [stdout] | returning this value requires that `i.data.bones` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 58 | for boneData in &i.data.bones { [INFO] [stdout] | ------------- `i.data.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `slot` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 74 | i.drawOrder.push(&slot); [INFO] [stdout] | ----- `slot` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `parent` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 65 | bone = Bone::new(boneData, &i, parent.as_deref()); [INFO] [stdout] | ------ `parent` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `bone` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 64 | parent.unwrap().children.push(&bone); [INFO] [stdout] | ----- `bone` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 63 | let mut parent = i.bones.get_mut(boneData.parent.unwrap().index as usize); [INFO] [stdout] | ------- `i.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.slots` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 70 | for slotData in &i.data.slots { [INFO] [stdout] | ------------- `i.data.slots` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.bones` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 71 | let bone = i.bones.get(slotData.boneData.index as usize); [INFO] [stdout] | ------- `i.bones` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.ikConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 77 | for ikConstraintData in &i.data.ikConstraints { [INFO] [stdout] | --------------------- `i.data.ikConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.transformConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 81 | for transformConstraintData in &i.data.transformConstraints { [INFO] [stdout] | ---------------------------- `i.data.transformConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `i.data.pathConstraints` [INFO] [stdout] --> src/skeleton.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 85 | for pathConstraintData in &i.data.pathConstraints { [INFO] [stdout] | ----------------------- `i.data.pathConstraints` is borrowed here [INFO] [stdout] ... [INFO] [stdout] 89 | return i; [INFO] [stdout] | ^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0106, E0277, E0308, E0381, E0382, E0412, E0499, E0502... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0106, E0277, E0308, E0381, E0382, E0412, E0499, E0502... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `RustySpine` (lib) due to 49 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `RustySpine` (lib test) due to 49 previous errors [INFO] running `Command { std: "docker" "inspect" "74f0b7623172f6f5bf8b714726824d160b1f6115411f2baeda9f49783b2e7b2a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "74f0b7623172f6f5bf8b714726824d160b1f6115411f2baeda9f49783b2e7b2a", kill_on_drop: false }` [INFO] [stdout] 74f0b7623172f6f5bf8b714726824d160b1f6115411f2baeda9f49783b2e7b2a