[INFO] cloning repository https://github.com/Indeximal/asteria-data-ideas
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Indeximal/asteria-data-ideas" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIndeximal%2Fasteria-data-ideas", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIndeximal%2Fasteria-data-ideas'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 68f6e48a83f5483ffadc1ef8b3dbc854222325f5
[INFO] checking Indeximal/asteria-data-ideas against 36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6 for pr-160581
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIndeximal%2Fasteria-data-ideas" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Indeximal/asteria-data-ideas
[INFO] finished tweaking git repo https://github.com/Indeximal/asteria-data-ideas
[INFO] tweaked toml for git repo https://github.com/Indeximal/asteria-data-ideas written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Indeximal/asteria-data-ideas on toolchain 36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Indeximal/asteria-data-ideas 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" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d
[INFO] running `Command { std: "docker" "start" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d" "/opt/rustwide/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d" "/opt/rustwide/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking datatypes v0.1.0 (/opt/rustwide/workdir/datatypes)
[INFO] [stderr]     Checking ex-client v0.1.0 (/opt/rustwide/workdir/ex-client)
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 Info(m) => self.info.replace(m);
[INFO] [stdout]     |                         -- ^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 107 -                 Info(m) => self.info.replace(m);
[INFO] [stdout] 107 +                 Info(m) => self.info.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 State(m) => self.state.replace(m);
[INFO] [stdout]     |                          -- ^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 108 -                 State(m) => self.state.replace(m);
[INFO] [stdout] 108 +                 State(m) => self.state.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 Location(m) => self.location.replace(m);
[INFO] [stdout]     |                             -- ^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 109 -                 Location(m) => self.location.replace(m);
[INFO] [stdout] 109 +                 Location(m) => self.location.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout]     |                             -- ^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout] 110 +                 Velocity(m) => self.velocity.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:111:34
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout]     |                               -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 111 -                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout] 111 +                 PurgeValve(m) => self.purge_valve.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:112:33
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout]     |                              -- ^^^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout] 112 +                 MainValve(m) => self.main_valve.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-item in item list
[INFO] [stdout]    --> ex-client/src/main.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     impl BroadcastBackEnd<_IOViewMessage> for _IOViewRaw {
[INFO] [stdout]     |                                                          - item list starts here
[INFO] [stdout] ...
[INFO] [stdout] 126 |         };
[INFO] [stdout]     |          ^ non-item starts here
[INFO] [stdout] 127 |     }
[INFO] [stdout]     |     - item list ends here
[INFO] [stdout]     |
[INFO] [stdout] help: consider removing this semicolon
[INFO] [stdout]     |
[INFO] [stdout] 126 -         };
[INFO] [stdout] 126 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 Info(m) => self.info.replace(m);
[INFO] [stdout]     |                         -- ^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 107 -                 Info(m) => self.info.replace(m);
[INFO] [stdout] 107 +                 Info(m) => self.info.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 State(m) => self.state.replace(m);
[INFO] [stdout]     |                          -- ^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 108 -                 State(m) => self.state.replace(m);
[INFO] [stdout] 108 +                 State(m) => self.state.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 Location(m) => self.location.replace(m);
[INFO] [stdout]     |                             -- ^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 109 -                 Location(m) => self.location.replace(m);
[INFO] [stdout] 109 +                 Location(m) => self.location.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout]     |                             -- ^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout] 110 +                 Velocity(m) => self.velocity.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:111:34
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout]     |                               -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 111 -                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout] 111 +                 PurgeValve(m) => self.purge_valve.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `match` arm body without braces
[INFO] [stdout]    --> ex-client/src/main.rs:112:33
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout]     |                              -- ^^^^^^^^^^^^^^^^^^^^^^^^^^ this statement is not surrounded by a body
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              while parsing the `match` arm starting here
[INFO] [stdout]     |
[INFO] [stdout] help: replace `;` with `,` to end a `match` arm expression
[INFO] [stdout]     |
[INFO] [stdout] 112 -                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout] 112 +                 MainValve(m) => self.main_valve.replace(m),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-item in item list
[INFO] [stdout]    --> ex-client/src/main.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     impl BroadcastBackEnd<_IOViewMessage> for _IOViewRaw {
[INFO] [stdout]     |                                                          - item list starts here
[INFO] [stdout] ...
[INFO] [stdout] 126 |         };
[INFO] [stdout]     |          ^ non-item starts here
[INFO] [stdout] 127 |     }
[INFO] [stdout]     |     - item list ends here
[INFO] [stdout]     |
[INFO] [stdout] help: consider removing this semicolon
[INFO] [stdout]     |
[INFO] [stdout] 126 -         };
[INFO] [stdout] 126 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `data_view_macros`
[INFO] [stdout]  --> ex-client/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use data_view_macros::view;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `data_view_macros`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `data_view_macros`, use `cargo add data_view_macros` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `datatypes`
[INFO] [stdout]  --> ex-client/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use datatypes::{Location, NormallyClosedValve, FCInfo};
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `data_backends`
[INFO] [stdout]  --> ex-client/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use data_backends::{Telemetry, Can, Csv};
[INFO] [stdout]   |     ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `data_backends`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `data_backends`, use `cargo add data_backends` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `tokio` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:130:3
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[tokio::main]
[INFO] [stdout]     |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `data_view_macros`
[INFO] [stdout]  --> ex-client/src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use data_view_macros::view;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `data_view_macros`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `data_view_macros`, use `cargo add data_view_macros` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `datatypes`
[INFO] [stdout]  --> ex-client/src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use datatypes::{Location, NormallyClosedValve, FCInfo};
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `data_backends`
[INFO] [stdout]  --> ex-client/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use data_backends::{Telemetry, Can, Csv};
[INFO] [stdout]   |     ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `data_backends`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `data_backends`, use `cargo add data_backends` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `tokio` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:130:3
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[tokio::main]
[INFO] [stdout]     |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `select` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             select! {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking dp-sensor-carrier v0.1.0 (/opt/rustwide/workdir/datapoints/dp-sensor-carrier)
[INFO] [stderr] error: could not compile `dp-sensor-carrier` (lib test) due to 6 previous errors
[INFO] [stdout] error: cannot find macro `select` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             select! {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `datapoint_macros`
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use datapoint_macros::DataPoints;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `datapoint_macros`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `datapoint_macros`, use `cargo add datapoint_macros` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `datapoint_macros`
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use datapoint_macros::DataPoints;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `datapoint_macros`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `datapoint_macros`, use `cargo add datapoint_macros` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `point` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 |     #[point()]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 |     #[can(id = 0x401)]
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 |     #[can(id = 0x402)]
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `point` in this scope
[INFO] [stdout]   --> datapoints/dp-sensor-carrier/src/lib.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 |     #[point(writeable)]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `point` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 |     #[point()]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]   --> datapoints/dp-sensor-carrier/src/lib.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |     #[can(write_id = 0x101)]
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 |     #[can(id = 0x401)]
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]  --> datapoints/dp-sensor-carrier/src/lib.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 |     #[can(id = 0x402)]
[INFO] [stdout]   |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `point` in this scope
[INFO] [stdout]   --> datapoints/dp-sensor-carrier/src/lib.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 |     #[point(writeable)]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `can` in this scope
[INFO] [stdout]   --> datapoints/dp-sensor-carrier/src/lib.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |     #[can(write_id = 0x101)]
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dp-sensor-carrier` (lib) due to 6 previous errors
[INFO] [stdout] error[E0405]: cannot find trait `BroadcastBackEnd` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]    |
[INFO] [stdout] 62 +     use crate::BroadcastBackEnd;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:64:27
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |                           ^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl<M> BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 |         where M: AsColumnar
[INFO] [stdout]    |               ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `AsColumnar` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         where M: AsColumnar
[INFO] [stdout]    |                  ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |         Info(Timestamp, datatypes::FCInfo),
[INFO] [stdout]    |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |         State(Timestamp, datatypes::FCState),
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |         Location(Timestamp, datatypes::Location),
[INFO] [stdout]    |                  ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |         Velocity(Timestamp, datatypes::Velocity),
[INFO] [stdout]    |                  ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:82:20
[INFO] [stdout]    |
[INFO] [stdout] 82 |         PurgeValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                    ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:83:19
[INFO] [stdout]    |
[INFO] [stdout] 83 |         MainValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                              ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:20
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                    ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                                  ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:23
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:34
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                                  ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:26
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                          ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:37
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                     ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:25
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:36
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                    ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OwnedDataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 |         pub info: OwnedDataPoint<datatypes::FCInfo>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OwnedDataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:97:20
[INFO] [stdout]    |
[INFO] [stdout] 97 |         pub state: OwnedDataPoint<datatypes::FCState>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `DataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:98:23
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub location: DataPoint<datatypes::Location>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `DataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |         pub velocity: DataPoint<datatypes::Velocity>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `WritableDataPoint` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:100:26
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub purge_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `WritableDataPoint` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:101:25
[INFO] [stdout]     |
[INFO] [stdout] 101 |         pub main_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `BroadcastBackEnd` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:104:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     impl BroadcastBackEnd<_IOViewMessage> for _IOViewRaw {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::BroadcastBackEnd;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:105:44
[INFO] [stdout]     |
[INFO] [stdout] 105 |         fn broadcast(&mut self, datapoint: M) {
[INFO] [stdout]     |                                            ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Info` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 Info(m) => self.info.replace(m);
[INFO] [stdout]     |                 ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Info;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `State` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 State(m) => self.state.replace(m);
[INFO] [stdout]     |                 ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::State;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Location` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 Location(m) => self.location.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Location;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Velocity` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Velocity;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `PurgeValve` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::PurgeValve;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `MainValve` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::MainValve;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:116:46
[INFO] [stdout]     |
[INFO] [stdout] 116 |         async fn next_incoming(&mut self) -> M {
[INFO] [stdout]     |                                              ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `IOView` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let io_view = IOView::builder()
[INFO] [stdout]     |                   ^^^^^^ use of undeclared type `IOView`
[INFO] [stdout]     |
[INFO] [stdout] note: struct `crate::derived::IOView` exists but is inaccessible
[INFO] [stdout]    --> ex-client/src/main.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  95 |     struct IOView {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CsvConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |         .csv(CsvConfig {
[INFO] [stdout]     |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `TelemetryConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:136:20
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .telemetry(TelemetryConfig {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CanConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:139:14
[INFO] [stdout]     |
[INFO] [stdout] 139 |         .can(CanConfig {
[INFO] [stdout]     |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FCState` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:144:16
[INFO] [stdout]     |
[INFO] [stdout] 144 |         .state(FCState { .. })
[INFO] [stdout]     |                ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FCState` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 |     io_view.state.set(FCState { .. });
[INFO] [stdout]     |                       ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ex-client` (bin "ex-client" test) due to 73 previous errors
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |         Info(Timestamp, datatypes::FCInfo),
[INFO] [stdout]    |                         ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:79:26
[INFO] [stdout]    |
[INFO] [stdout] 79 |         State(Timestamp, datatypes::FCState),
[INFO] [stdout]    |                          ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         Location(Timestamp, datatypes::Location),
[INFO] [stdout]    |                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:81:29
[INFO] [stdout]    |
[INFO] [stdout] 81 |         Velocity(Timestamp, datatypes::Velocity),
[INFO] [stdout]    |                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:82:31
[INFO] [stdout]    |
[INFO] [stdout] 82 |         PurgeValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                               ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:83:30
[INFO] [stdout]    |
[INFO] [stdout] 83 |         MainValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                              ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:41
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                                         ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                                          ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:45
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:48
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                                ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:47
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                               ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |         pub info: OwnedDataPoint<datatypes::FCInfo>,
[INFO] [stdout]    |                                  ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |         pub state: OwnedDataPoint<datatypes::FCState>,
[INFO] [stdout]    |                                   ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:98:33
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub location: DataPoint<datatypes::Location>,
[INFO] [stdout]    |                                 ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:99:33
[INFO] [stdout]    |
[INFO] [stdout] 99 |         pub velocity: DataPoint<datatypes::Velocity>,
[INFO] [stdout]    |                                 ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub purge_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                                            ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:101:43
[INFO] [stdout]     |
[INFO] [stdout] 101 |         pub main_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                                           ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0422, E0425, E0432, E0433, E0531.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `BroadcastBackEnd` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]    |
[INFO] [stdout] 62 +     use crate::BroadcastBackEnd;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:64:27
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |                           ^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 64 |     impl<M> BroadcastBackEnd<M> for CSV
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 |         where M: AsColumnar
[INFO] [stdout]    |               ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `AsColumnar` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         where M: AsColumnar
[INFO] [stdout]    |                  ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |         Info(Timestamp, datatypes::FCInfo),
[INFO] [stdout]    |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |         State(Timestamp, datatypes::FCState),
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |         Location(Timestamp, datatypes::Location),
[INFO] [stdout]    |                  ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |         Velocity(Timestamp, datatypes::Velocity),
[INFO] [stdout]    |                  ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:82:20
[INFO] [stdout]    |
[INFO] [stdout] 82 |         PurgeValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                    ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:83:19
[INFO] [stdout]    |
[INFO] [stdout] 83 |         MainValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                              ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:20
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                    ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                               ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                                  ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:23
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:34
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                                  ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:26
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                          ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:37
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                     ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Watchable` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:25
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                         ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Timestamp` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:36
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                    ^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 86 |     struct _IOViewRaw<Timestamp> {
[INFO] [stdout]    |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OwnedDataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 |         pub info: OwnedDataPoint<datatypes::FCInfo>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OwnedDataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:97:20
[INFO] [stdout]    |
[INFO] [stdout] 97 |         pub state: OwnedDataPoint<datatypes::FCState>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `DataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:98:23
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub location: DataPoint<datatypes::Location>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `DataPoint` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |         pub velocity: DataPoint<datatypes::Velocity>,
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `WritableDataPoint` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:100:26
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub purge_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `WritableDataPoint` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:101:25
[INFO] [stdout]     |
[INFO] [stdout] 101 |         pub main_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `BroadcastBackEnd` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:104:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     impl BroadcastBackEnd<_IOViewMessage> for _IOViewRaw {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::BroadcastBackEnd;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:105:44
[INFO] [stdout]     |
[INFO] [stdout] 105 |         fn broadcast(&mut self, datapoint: M) {
[INFO] [stdout]     |                                            ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Info` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 Info(m) => self.info.replace(m);
[INFO] [stdout]     |                 ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Info;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `State` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 State(m) => self.state.replace(m);
[INFO] [stdout]     |                 ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::State;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Location` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 Location(m) => self.location.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Location;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Velocity` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 Velocity(m) => self.velocity.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::Velocity;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `PurgeValve` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 PurgeValve(m) => self.purge_valve.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::PurgeValve;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `MainValve` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 MainValve(m) => self.main_valve.replace(m);
[INFO] [stdout]     |                 ^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this tuple variant
[INFO] [stdout]     |
[INFO] [stdout]  77 +     use crate::derived::_IOViewMessage::MainValve;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `M` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:116:46
[INFO] [stdout]     |
[INFO] [stdout] 116 |         async fn next_incoming(&mut self) -> M {
[INFO] [stdout]     |                                              ^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `IOView` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let io_view = IOView::builder()
[INFO] [stdout]     |                   ^^^^^^ use of undeclared type `IOView`
[INFO] [stdout]     |
[INFO] [stdout] note: struct `crate::derived::IOView` exists but is inaccessible
[INFO] [stdout]    --> ex-client/src/main.rs:95:5
[INFO] [stdout]     |
[INFO] [stdout]  95 |     struct IOView {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CsvConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |         .csv(CsvConfig {
[INFO] [stdout]     |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `TelemetryConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:136:20
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .telemetry(TelemetryConfig {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CanConfig` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:139:14
[INFO] [stdout]     |
[INFO] [stdout] 139 |         .can(CanConfig {
[INFO] [stdout]     |              ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FCState` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:144:16
[INFO] [stdout]     |
[INFO] [stdout] 144 |         .state(FCState { .. })
[INFO] [stdout]     |                ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `FCState` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 |     io_view.state.set(FCState { .. });
[INFO] [stdout]     |                       ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |         Info(Timestamp, datatypes::FCInfo),
[INFO] [stdout]    |                         ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:79:26
[INFO] [stdout]    |
[INFO] [stdout] 79 |         State(Timestamp, datatypes::FCState),
[INFO] [stdout]    |                          ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         Location(Timestamp, datatypes::Location),
[INFO] [stdout]    |                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:81:29
[INFO] [stdout]    |
[INFO] [stdout] 81 |         Velocity(Timestamp, datatypes::Velocity),
[INFO] [stdout]    |                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:82:31
[INFO] [stdout]    |
[INFO] [stdout] 82 |         PurgeValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                               ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:83:30
[INFO] [stdout]    |
[INFO] [stdout] 83 |         MainValve(Timestamp, datatypes::NormallyClosedValve),
[INFO] [stdout]    |                              ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:87:41
[INFO] [stdout]    |
[INFO] [stdout] 87 |         pub info: Watchable<(Timestamp, datatypes::FCInfo)>,
[INFO] [stdout]    |                                         ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 |         pub state: Watchable<(Timestamp, datatypes::FCState)>,
[INFO] [stdout]    |                                          ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |         pub location: Watchable<(Timestamp, datatypes::Location)>,
[INFO] [stdout]    |                                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:90:45
[INFO] [stdout]    |
[INFO] [stdout] 90 |         pub velocity: Watchable<(Timestamp, datatypes::Velocity)>,
[INFO] [stdout]    |                                             ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:91:48
[INFO] [stdout]    |
[INFO] [stdout] 91 |         pub purge_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                                ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:92:47
[INFO] [stdout]    |
[INFO] [stdout] 92 |         pub main_valve: Watchable<(Timestamp, datatypes::NormallyClosedValve)>,
[INFO] [stdout]    |                                               ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |         pub info: OwnedDataPoint<datatypes::FCInfo>,
[INFO] [stdout]    |                                  ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |         pub state: OwnedDataPoint<datatypes::FCState>,
[INFO] [stdout]    |                                   ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:98:33
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub location: DataPoint<datatypes::Location>,
[INFO] [stdout]    |                                 ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]   --> ex-client/src/main.rs:99:33
[INFO] [stdout]    |
[INFO] [stdout] 99 |         pub velocity: DataPoint<datatypes::Velocity>,
[INFO] [stdout]    |                                 ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |         pub purge_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                                            ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `datatypes` in this scope
[INFO] [stdout]    --> ex-client/src/main.rs:101:43
[INFO] [stdout]     |
[INFO] [stdout] 101 |         pub main_valve: WritableDataPoint<datatypes::NormallyClosedValve>,
[INFO] [stdout]     |                                           ^^^^^^^^^ use of unresolved module or unlinked crate `datatypes`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `datatypes`, use `cargo add datatypes` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0422, E0425, E0432, E0433, E0531.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ex-client` (bin "ex-client") due to 73 previous errors
[INFO] running `Command { std: "docker" "inspect" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d", kill_on_drop: false }`
[INFO] [stdout] 71ef9dd20836326d20d65bce8ead078e6c7ad200125635b411e89fddda4f858d
