[INFO] fetching crate llm-optimizer-cli 0.1.1... [INFO] testing llm-optimizer-cli-0.1.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate llm-optimizer-cli 0.1.1 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate llm-optimizer-cli 0.1.1 [INFO] finished tweaking crates.io crate llm-optimizer-cli 0.1.1 [INFO] tweaked toml for crates.io crate llm-optimizer-cli 0.1.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate llm-optimizer-cli 0.1.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate llm-optimizer-cli 0.1.1 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 293930921ed174855cd0f98bda5e47b933c2b97f80dcaf1520ea255c33bad6f6 [INFO] running `Command { std: "docker" "start" "-a" "293930921ed174855cd0f98bda5e47b933c2b97f80dcaf1520ea255c33bad6f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "293930921ed174855cd0f98bda5e47b933c2b97f80dcaf1520ea255c33bad6f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "293930921ed174855cd0f98bda5e47b933c2b97f80dcaf1520ea255c33bad6f6", kill_on_drop: false }` [INFO] [stdout] 293930921ed174855cd0f98bda5e47b933c2b97f80dcaf1520ea255c33bad6f6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 93484089b472d85ef132c5948f5b71a9292002b9290ab753861b91e3fa75722d [INFO] running `Command { std: "docker" "start" "-a" "93484089b472d85ef132c5948f5b71a9292002b9290ab753861b91e3fa75722d", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling cc v1.2.45 [INFO] [stderr] Compiling rustls v0.23.35 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling inlinable_string v0.1.15 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rustls-pki-types v1.13.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling inotify v0.9.6 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling iri-string v0.7.9 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling webpki-roots v1.0.4 [INFO] [stderr] Compiling rustls-pemfile v2.2.0 [INFO] [stderr] Compiling flate2 v1.1.5 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling csv-core v0.1.13 [INFO] [stderr] Compiling shell-words v1.1.0 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling notify v6.1.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling clap_builder v4.5.51 [INFO] [stderr] Compiling comfy-table v7.2.1 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling csv v1.4.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rustls-webpki v0.103.8 [INFO] [stderr] Compiling dialoguer v0.11.0 [INFO] [stderr] Compiling pear v0.2.9 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling prost v0.13.5 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling clap v4.5.51 [INFO] [stderr] Compiling clap_complete v4.5.60 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling uuid v1.18.1 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling tracing-subscriber v0.3.20 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.1 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling llm-optimizer-types v0.1.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling h2 v0.4.12 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling llm-optimizer-config v0.1.0 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-timeout v0.5.2 [INFO] [stderr] Compiling reqwest v0.12.24 [INFO] [stderr] Compiling tonic v0.12.3 [INFO] [stderr] Compiling llm-optimizer-cli v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RequestBuilder` [INFO] [stdout] --> src/client/rest.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use reqwest::{Client, RequestBuilder}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CliError` [INFO] [stdout] --> src/client/mod.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::{CliError, CliResult}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConstraintInput` [INFO] [stdout] --> src/commands/optimize.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | ApiClient, ConstraintInput, CreateOptimizationRequest, DeployOptimizationRequest, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `generate` [INFO] [stdout] --> src/commands/util.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use clap_complete::{generate, Shell}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/commands/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:70:17 [INFO] [stdout] | [INFO] [stdout] 70 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/output/mod.rs:61:51 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn get_formatter(format: OutputFormat) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/service.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 38 - formatter: &dyn OutputWriter, [INFO] [stdout] 38 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/service.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 94 - formatter: &dyn OutputWriter, [INFO] [stdout] 94 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 115 - formatter: &dyn OutputWriter, [INFO] [stdout] 115 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:157:21 [INFO] [stdout] | [INFO] [stdout] 157 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 157 - formatter: &dyn OutputWriter, [INFO] [stdout] 157 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:254:21 [INFO] [stdout] | [INFO] [stdout] 254 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 254 - formatter: &dyn OutputWriter, [INFO] [stdout] 254 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:291:21 [INFO] [stdout] | [INFO] [stdout] 291 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 291 - formatter: &dyn OutputWriter, [INFO] [stdout] 291 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:305:21 [INFO] [stdout] | [INFO] [stdout] 305 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 305 - formatter: &dyn OutputWriter, [INFO] [stdout] 305 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:358:21 [INFO] [stdout] | [INFO] [stdout] 358 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 358 - formatter: &dyn OutputWriter, [INFO] [stdout] 358 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:413:21 [INFO] [stdout] | [INFO] [stdout] 413 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 413 - formatter: &dyn OutputWriter, [INFO] [stdout] 413 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 49 - formatter: &dyn OutputWriter, [INFO] [stdout] 49 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 64 - formatter: &dyn OutputWriter, [INFO] [stdout] 64 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 76 - formatter: &dyn OutputWriter, [INFO] [stdout] 76 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:90:62 [INFO] [stdout] | [INFO] [stdout] 90 | async fn list(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 90 - async fn list(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] 90 + async fn list(&self, client: &dyn ApiClient, formatter: &Self) -> CliResult<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 102 - formatter: &dyn OutputWriter, [INFO] [stdout] 102 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 132 - formatter: &dyn OutputWriter, [INFO] [stdout] 132 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 156 - formatter: &dyn OutputWriter, [INFO] [stdout] 156 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 186 - formatter: &dyn OutputWriter, [INFO] [stdout] 186 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:220:21 [INFO] [stdout] | [INFO] [stdout] 220 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 220 - formatter: &dyn OutputWriter, [INFO] [stdout] 220 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 49 - formatter: &dyn OutputWriter, [INFO] [stdout] 49 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 66 - formatter: &dyn OutputWriter, [INFO] [stdout] 66 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:91:62 [INFO] [stdout] | [INFO] [stdout] 91 | async fn list(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 91 - async fn list(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] 91 + async fn list(&self, client: &dyn ApiClient, formatter: &Self) -> CliResult<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 110 - formatter: &dyn OutputWriter, [INFO] [stdout] 110 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 32 - formatter: &dyn OutputWriter, [INFO] [stdout] 32 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:42:63 [INFO] [stdout] | [INFO] [stdout] 42 | async fn stats(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 42 - async fn stats(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] 42 + async fn stats(&self, client: &dyn ApiClient, formatter: &Self) -> CliResult<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 63 - formatter: &dyn OutputWriter, [INFO] [stdout] 63 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:91:64 [INFO] [stdout] | [INFO] [stdout] 91 | async fn health(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 91 - async fn health(&self, client: &dyn ApiClient, formatter: &dyn OutputWriter) -> CliResult<()> { [INFO] [stdout] 91 + async fn health(&self, client: &dyn ApiClient, formatter: &Self) -> CliResult<()> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:120:21 [INFO] [stdout] | [INFO] [stdout] 120 | formatter: &dyn OutputWriter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type [INFO] [stdout] | [INFO] [stdout] 120 - formatter: &dyn OutputWriter, [INFO] [stdout] 120 + formatter: &Self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/service.rs:44:44 [INFO] [stdout] | [INFO] [stdout] 44 | ServiceCommand::Status => self.status(client, formatter).await, [INFO] [stdout] | ^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:124:22 [INFO] [stdout] | [INFO] [stdout] 124 | self.create(client, formatter, services, strategy, *dry_run, *interactive) [INFO] [stdout] | ^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:134:22 [INFO] [stdout] | [INFO] [stdout] 134 | self.list(client, formatter, status, strategy, service, from, to) [INFO] [stdout] | ^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:137:49 [INFO] [stdout] | [INFO] [stdout] 137 | OptimizeCommand::Get { id } => self.get(client, formatter, id).await, [INFO] [stdout] | ^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:144:22 [INFO] [stdout] | [INFO] [stdout] 144 | self.deploy(client, formatter, id, *gradual, *percentage, *yes) [INFO] [stdout] | ^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:148:22 [INFO] [stdout] | [INFO] [stdout] 148 | self.rollback(client, formatter, id, reason, *yes).await [INFO] [stdout] | ^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/optimize.rs:150:57 [INFO] [stdout] | [INFO] [stdout] 150 | OptimizeCommand::Cancel { id, yes } => self.cancel(client, formatter, id, *yes).await, [INFO] [stdout] | ^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:52:48 [INFO] [stdout] | [INFO] [stdout] 52 | ConfigCommand::Get { key } => self.get(client, formatter, key).await, [INFO] [stdout] | ^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:53:55 [INFO] [stdout] | [INFO] [stdout] 53 | ConfigCommand::Set { key, value } => self.set(client, formatter, key, value).await, [INFO] [stdout] | ^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/config.rs:54:41 [INFO] [stdout] | [INFO] [stdout] 54 | ConfigCommand::List => self.list(client, formatter).await, [INFO] [stdout] | ^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | } => self.query(client, formatter, metrics, from, to, aggregation).await, [INFO] [stdout] | ^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:112:22 [INFO] [stdout] | [INFO] [stdout] 112 | self.performance(client, formatter, service, from, to).await [INFO] [stdout] | ^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:115:22 [INFO] [stdout] | [INFO] [stdout] 115 | self.cost(client, formatter, service, from, to).await [INFO] [stdout] | ^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/metrics.rs:118:22 [INFO] [stdout] | [INFO] [stdout] 118 | self.quality(client, formatter, service, from, to).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:56:23 [INFO] [stdout] | [INFO] [stdout] 56 | } => self.add(client, formatter, integration_type, name, config).await, [INFO] [stdout] | ^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:57:46 [INFO] [stdout] | [INFO] [stdout] 57 | IntegrationCommand::List => self.list(client, formatter).await, [INFO] [stdout] | ^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/integration.rs:58:53 [INFO] [stdout] | [INFO] [stdout] 58 | IntegrationCommand::Test { id } => self.test(client, formatter, id).await, [INFO] [stdout] | ^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:35:41 [INFO] [stdout] | [INFO] [stdout] 35 | AdminCommand::Stats => self.stats(client, formatter).await, [INFO] [stdout] | ^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | AdminCommand::CacheFlush { yes } => self.cache_flush(client, formatter, *yes).await, [INFO] [stdout] | ^^^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:37:42 [INFO] [stdout] | [INFO] [stdout] 37 | AdminCommand::Health => self.health(client, formatter).await, [INFO] [stdout] | ^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/commands/admin.rs:38:43 [INFO] [stdout] | [INFO] [stdout] 38 | AdminCommand::Version => self.version(client, formatter).await, [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:33:58 [INFO] [stdout] | [INFO] [stdout] 33 | 0 => create_optimization_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:34:57 [INFO] [stdout] | [INFO] [stdout] 34 | 1 => list_optimizations_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:35:51 [INFO] [stdout] | [INFO] [stdout] 35 | 2 => view_metrics_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:36:58 [INFO] [stdout] | [INFO] [stdout] 36 | 3 => manage_integrations_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:37:52 [INFO] [stdout] | [INFO] [stdout] 37 | 4 => configuration_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:38:52 [INFO] [stdout] | [INFO] [stdout] 38 | 5 => system_status_interactive(client, formatter).await?, [INFO] [stdout] | ^^^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `OutputWriter` is not dyn compatible [INFO] [stdout] --> src/interactive.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | cmd.execute(client, formatter).await [INFO] [stdout] | ^^^^^^^ `OutputWriter` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/output/mod.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub trait OutputWriter { [INFO] [stdout] | ------------ this trait is not dyn compatible... [INFO] [stdout] 57 | fn write(&self, data: &T) -> CliResult; [INFO] [stdout] | ^^^^^ ...because method `write` has generic type parameters [INFO] [stdout] = help: consider moving `write` to another trait [INFO] [stdout] = help: the following types implement `OutputWriter`: [INFO] [stdout] output::table::TableFormatter [INFO] [stdout] output::json::JsonFormatter [INFO] [stdout] output::yaml::YamlFormatter [INFO] [stdout] output::CsvFormatter [INFO] [stdout] consider defining an enum where each variant holds one of these types, [INFO] [stdout] implementing `OutputWriter` for this new enum and using it instead [INFO] [stdout] = note: `OutputWriter` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CliError` [INFO] [stdout] --> src/output/mod.rs:114:58 [INFO] [stdout] | [INFO] [stdout] 114 | let data = String::from_utf8(wtr.into_inner()?)?; [INFO] [stdout] | ------------^ the trait `From>>>` is not implemented for `CliError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, csv::IntoInnerError>>>` [INFO] [stdout] | [INFO] [stdout] note: `CliError` needs to implement `From>>>` [INFO] [stdout] --> src/lib.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum CliError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following other types implement trait `From`: [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CliError` [INFO] [stdout] --> src/output/mod.rs:114:60 [INFO] [stdout] | [INFO] [stdout] 114 | let data = String::from_utf8(wtr.into_inner()?)?; [INFO] [stdout] | ------------------------------------^ the trait `From` is not implemented for `CliError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, std::string::FromUtf8Error>` [INFO] [stdout] | [INFO] [stdout] note: `CliError` needs to implement `From` [INFO] [stdout] --> src/lib.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum CliError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following other types implement trait `From`: [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CliError` [INFO] [stdout] --> src/output/mod.rs:132:58 [INFO] [stdout] | [INFO] [stdout] 132 | let data = String::from_utf8(wtr.into_inner()?)?; [INFO] [stdout] | ------------^ the trait `From>>>` is not implemented for `CliError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, csv::IntoInnerError>>>` [INFO] [stdout] | [INFO] [stdout] note: `CliError` needs to implement `From>>>` [INFO] [stdout] --> src/lib.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum CliError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following other types implement trait `From`: [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CliError` [INFO] [stdout] --> src/output/mod.rs:132:60 [INFO] [stdout] | [INFO] [stdout] 132 | let data = String::from_utf8(wtr.into_inner()?)?; [INFO] [stdout] | ------------------------------------^ the trait `From` is not implemented for `CliError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, std::string::FromUtf8Error>` [INFO] [stdout] | [INFO] [stdout] note: `CliError` needs to implement `From` [INFO] [stdout] --> src/lib.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum CliError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following other types implement trait `From`: [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] `CliError` implements `From` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `strategy` [INFO] [stdout] --> src/commands/optimize.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | strategy: &str, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategy` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0277. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `llm-optimizer-cli` (lib) due to 74 previous errors; 6 warnings emitted [INFO] running `Command { std: "docker" "inspect" "93484089b472d85ef132c5948f5b71a9292002b9290ab753861b91e3fa75722d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "93484089b472d85ef132c5948f5b71a9292002b9290ab753861b91e3fa75722d", kill_on_drop: false }` [INFO] [stdout] 93484089b472d85ef132c5948f5b71a9292002b9290ab753861b91e3fa75722d