[INFO] cloning repository https://github.com/itto0/cdc-pipeline
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/itto0/cdc-pipeline" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitto0%2Fcdc-pipeline", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitto0%2Fcdc-pipeline'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5e2ca61ed4c1e42f7f1ea0949467afc4eec50c77
[INFO] checking itto0/cdc-pipeline against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitto0%2Fcdc-pipeline" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/itto0/cdc-pipeline
[INFO] finished tweaking git repo https://github.com/itto0/cdc-pipeline
[INFO] tweaked toml for git repo https://github.com/itto0/cdc-pipeline written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/itto0/cdc-pipeline on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/itto0/cdc-pipeline 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rdkafka v0.36.2
[INFO] [stderr]   Downloaded postgres-protocol v0.6.12
[INFO] [stderr]   Downloaded postgres-types v0.2.14
[INFO] [stderr]   Downloaded tokio-postgres v0.7.18
[INFO] [stderr]   Downloaded pgwire-replication v0.4.0
[INFO] [stderr]   Downloaded rdkafka-sys v4.10.0+2.12.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3
[INFO] running `Command { std: "docker" "start" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking hybrid-array v0.4.15
[INFO] [stderr]     Checking cmov v0.5.4
[INFO] [stderr]    Compiling cc v1.4.6
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]     Checking mio v1.2.3
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking ctutils v0.4.2
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking tinyvec v1.13.3
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking futures-task v0.3.34
[INFO] [stderr]     Checking smallvec v1.16.1
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]    Compiling toml_edit v0.25.15+spec-1.1.0
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking stringprep v0.1.5
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking hmac v0.13.0
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libz-sys v1.1.29
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling rdkafka-sys v4.10.0+2.12.1
[INFO] [stderr]     Checking md-5 v0.11.0
[INFO] [stderr]     Checking postgres-protocol v0.6.12
[INFO] [stderr]    Compiling num_enum_derive v0.7.6
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]     Checking postgres-types v0.2.14
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking num_enum v0.7.6
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking whoami v2.1.3
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.5
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-postgres v0.7.18
[INFO] [stderr]     Checking rdkafka v0.36.2
[INFO] [stderr]     Checking rustls-webpki v0.103.15
[INFO] [stderr]     Checking tokio-rustls v0.26.5
[INFO] [stderr]     Checking pgwire-replication v0.4.0
[INFO] [stderr]     Checking cdc-pipeline v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `tokio_postgres::SslMode`
[INFO] [stdout]  --> src/config.rs:5:58
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio_postgres::{Config as PostgresConnectionConfig, SslMode};
[INFO] [stdout]   |                                                          ^^^^^^^ no `SslMode` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these enums instead:
[INFO] [stdout]           pgwire_replication::SslMode
[INFO] [stdout]           tokio_postgres::config::SslMode
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_postgres::SslMode`
[INFO] [stdout]  --> src/config.rs:5:58
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio_postgres::{Config as PostgresConnectionConfig, SslMode};
[INFO] [stdout]   |                                                          ^^^^^^^ no `SslMode` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these enums instead:
[INFO] [stdout]           pgwire_replication::SslMode
[INFO] [stdout]           tokio_postgres::config::SslMode
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RDKafkaErrorCode`
[INFO] [stdout]  --> src/kafka.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 |     error::{KafkaError, RDKafkaErrorCode},
[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: `RDKafkaErrorCode`
[INFO] [stdout]  --> src/kafka.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 |     error::{KafkaError, RDKafkaErrorCode},
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_u64` found for struct `checkpoint::Lsn` in the current scope
[INFO] [stdout]    --> src/postgres_transport.rs:265:69
[INFO] [stdout]     |
[INFO] [stdout] 265 |         .with_start_lsn(pgwire_replication::Lsn::from_u64(start_lsn.as_u64()));
[INFO] [stdout]     |                                                                     ^^^^^^ method not found in `checkpoint::Lsn`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/checkpoint.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lsn(u64);
[INFO] [stdout]     | -------------- method `as_u64` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pgwire_replication::Lsn: From<checkpoint::Lsn>` is not satisfied
[INFO] [stdout]    --> src/postgres_transport.rs:279:43
[INFO] [stdout]     |
[INFO] [stdout] 279 |             client.update_applied_lsn(lsn.into());
[INFO] [stdout]     |                                           ^^^^ the trait `From<checkpoint::Lsn>` is not implemented for `pgwire_replication::Lsn`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<checkpoint::Lsn>` is not implemented for `pgwire_replication::Lsn`
[INFO] [stdout]       but trait `From<u64>` is implemented for it
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/lsn.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl From<u64> for Lsn {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `u64`, found `checkpoint::Lsn`
[INFO] [stdout]     = note: required for `checkpoint::Lsn` to implement `Into<pgwire_replication::Lsn>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_u64` found for struct `checkpoint::Lsn` in the current scope
[INFO] [stdout]    --> src/postgres_transport.rs:265:69
[INFO] [stdout]     |
[INFO] [stdout] 265 |         .with_start_lsn(pgwire_replication::Lsn::from_u64(start_lsn.as_u64()));
[INFO] [stdout]     |                                                                     ^^^^^^ method not found in `checkpoint::Lsn`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/checkpoint.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lsn(u64);
[INFO] [stdout]     | -------------- method `as_u64` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pgwire_replication::Lsn: From<checkpoint::Lsn>` is not satisfied
[INFO] [stdout]    --> src/postgres_transport.rs:279:43
[INFO] [stdout]     |
[INFO] [stdout] 279 |             client.update_applied_lsn(lsn.into());
[INFO] [stdout]     |                                           ^^^^ the trait `From<checkpoint::Lsn>` is not implemented for `pgwire_replication::Lsn`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<checkpoint::Lsn>` is not implemented for `pgwire_replication::Lsn`
[INFO] [stdout]       but trait `From<u64>` is implemented for it
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/lsn.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl From<u64> for Lsn {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `u64`, found `checkpoint::Lsn`
[INFO] [stdout]     = note: required for `checkpoint::Lsn` to implement `Into<pgwire_replication::Lsn>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `starts_with` found for reference `&Host` in the current scope
[INFO] [stdout]   --> src/config.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |         if host.starts_with('/') {
[INFO] [stdout]    |                 ^^^^^^^^^^^ method not found in `&Host`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::string::String: From<&Host>` is not satisfied
[INFO] [stdout]    --> src/config.rs:60:13
[INFO] [stdout]     |
[INFO] [stdout]  59 |         Ok(ReplicationConfig::new(
[INFO] [stdout]     |            ---------------------- required by a bound introduced by this call
[INFO] [stdout]  60 |             host,
[INFO] [stdout]     |             ^^^^ the trait `From<&Host>` is not implemented for `std::string::String`
[INFO] [stdout]     |
[INFO] [stdout]     = help: `std::string::String` implements trait `From<T>`:
[INFO] [stdout]               From<&mut str>
[INFO] [stdout]               From<&std::string::String>
[INFO] [stdout]               From<&str>
[INFO] [stdout]               From<Box<str>>
[INFO] [stdout]               From<Cow<'_, str>>
[INFO] [stdout]               From<char>
[INFO] [stdout]     = note: required for `&Host` to implement `Into<std::string::String>`
[INFO] [stdout] note: required by a bound in `ReplicationConfig::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/config.rs:459:20
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl ReplicationConfig {
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn new(
[INFO] [stdout] 459 |         host: impl Into<String>,
[INFO] [stdout]     |                    ^^^^^^^^^^^^ required by this bound in `ReplicationConfig::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Publication: From<&std::string::String>` is not satisfied
[INFO] [stdout]    --> src/config.rs:65:13
[INFO] [stdout]     |
[INFO] [stdout]  59 |         Ok(ReplicationConfig::new(
[INFO] [stdout]     |            ---------------------- required by a bound introduced by this call
[INFO] [stdout] ...
[INFO] [stdout]  65 |             &self.publication,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ the trait `From<&std::string::String>` is not implemented for `Publication`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider casting the `&std::string::String` value to `&str`
[INFO] [stdout]     = note: required for `&std::string::String` to implement `Into<Publication>`
[INFO] [stdout] note: required by a bound in `ReplicationConfig::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/config.rs:464:27
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl ReplicationConfig {
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn new(
[INFO] [stdout] ...
[INFO] [stdout] 464 |         publication: impl Into<Publication>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^ required by this bound in `ReplicationConfig::new`
[INFO] [stdout] help: consider dereferencing here
[INFO] [stdout]     |
[INFO] [stdout]  65 |             &*self.publication,
[INFO] [stdout]     |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]   --> src/kafka.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             FutureProducer::flush(&producer, DELIVERY_TIMEOUT)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^            ---------------- unexpected argument #2 of type `Duration`
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/kafka.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn flush(&self) -> BoxFuture;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 47 -             FutureProducer::flush(&producer, DELIVERY_TIMEOUT)
[INFO] [stdout] 47 +             FutureProducer::flush(&producer)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `DeliveryFailure` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/kafka.rs:50:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct DeliveryFailure {
[INFO] [stdout]    | ---------------------- method `to_string` not found for this struct because it doesn't satisfy `DeliveryFailure: ToString` or `DeliveryFailure: std::fmt::Display`
[INFO] [stdout] ...
[INFO] [stdout] 50 |                     message: error.to_string(),
[INFO] [stdout]    |                                    ^^^^^^^^^ method cannot be called on `DeliveryFailure` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `DeliveryFailure: std::fmt::Display`
[INFO] [stdout]            which is required by `DeliveryFailure: ToString`
[INFO] [stdout] note: the trait `std::fmt::Display` must be implemented
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/fmt/mod.rs:1187:0
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `to_string`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `ToString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `starts_with` found for reference `&Host` in the current scope
[INFO] [stdout]   --> src/config.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |         if host.starts_with('/') {
[INFO] [stdout]    |                 ^^^^^^^^^^^ method not found in `&Host`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: kafka::Producer` is not satisfied
[INFO] [stdout]   --> src/kafka.rs:74:23
[INFO] [stdout]    |
[INFO] [stdout] 74 |             producer: Arc::new(producer),
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^ the trait `kafka::Producer` is not implemented for `!`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `kafka::Producer` is implemented for `FutureProducer`
[INFO] [stdout]   --> src/kafka.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Producer for FutureProducer {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for the cast from `Arc<!>` to `Arc<(dyn kafka::Producer + 'static)>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::string::String: From<&Host>` is not satisfied
[INFO] [stdout]    --> src/config.rs:60:13
[INFO] [stdout]     |
[INFO] [stdout]  59 |         Ok(ReplicationConfig::new(
[INFO] [stdout]     |            ---------------------- required by a bound introduced by this call
[INFO] [stdout]  60 |             host,
[INFO] [stdout]     |             ^^^^ the trait `From<&Host>` is not implemented for `std::string::String`
[INFO] [stdout]     |
[INFO] [stdout]     = help: `std::string::String` implements trait `From<T>`:
[INFO] [stdout]               From<&mut str>
[INFO] [stdout]               From<&std::string::String>
[INFO] [stdout]               From<&str>
[INFO] [stdout]               From<Box<str>>
[INFO] [stdout]               From<Cow<'_, str>>
[INFO] [stdout]               From<char>
[INFO] [stdout]     = note: required for `&Host` to implement `Into<std::string::String>`
[INFO] [stdout] note: required by a bound in `ReplicationConfig::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/config.rs:459:20
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl ReplicationConfig {
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn new(
[INFO] [stdout] 459 |         host: impl Into<String>,
[INFO] [stdout]     |                    ^^^^^^^^^^^^ required by this bound in `ReplicationConfig::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: FromClientConfig` is not satisfied
[INFO] [stdout]    --> src/kafka.rs:71:14
[INFO] [stdout]     |
[INFO] [stdout]  71 |             .create()
[INFO] [stdout]     |              ^^^^^^ the trait `FromClientConfig` is not implemented for `!`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromClientConfig`:
[INFO] [stdout]               AdminClient<DefaultClientContext>
[INFO] [stdout]               BaseConsumer
[INFO] [stdout]               BaseProducer
[INFO] [stdout]               FutureProducer<DefaultClientContext, R>
[INFO] [stdout]               StreamConsumer<DefaultConsumerContext, R>
[INFO] [stdout]               ThreadedProducer<DefaultProducerContext>
[INFO] [stdout] note: required by a bound in `rdkafka::ClientConfig::create`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rdkafka-0.36.2/src/config.rs:257:22
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl ClientConfig {
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn create<T: FromClientConfig>(&self) -> KafkaResult<T> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ required by this bound in `ClientConfig::create`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Publication: From<&std::string::String>` is not satisfied
[INFO] [stdout]    --> src/config.rs:65:13
[INFO] [stdout]     |
[INFO] [stdout]  59 |         Ok(ReplicationConfig::new(
[INFO] [stdout]     |            ---------------------- required by a bound introduced by this call
[INFO] [stdout] ...
[INFO] [stdout]  65 |             &self.publication,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ the trait `From<&std::string::String>` is not implemented for `Publication`
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider casting the `&std::string::String` value to `&str`
[INFO] [stdout]     = note: required for `&std::string::String` to implement `Into<Publication>`
[INFO] [stdout] note: required by a bound in `ReplicationConfig::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pgwire-replication-0.4.0/src/config.rs:464:27
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl ReplicationConfig {
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn new(
[INFO] [stdout] ...
[INFO] [stdout] 464 |         publication: impl Into<Publication>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^ required by this bound in `ReplicationConfig::new`
[INFO] [stdout] help: consider dereferencing here
[INFO] [stdout]     |
[INFO] [stdout]  65 |             &*self.publication,
[INFO] [stdout]     |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `code` found for reference `&RDKafkaErrorCode` in the current scope
[INFO] [stdout]    --> src/kafka.rs:151:55
[INFO] [stdout]     |
[INFO] [stdout] 151 |         KafkaError::MessageProduction(error) => error.code().is_retriable(),
[INFO] [stdout]     |                                                       ^^^^ method not found in `&RDKafkaErrorCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `code` found for reference `&RDKafkaErrorCode` in the current scope
[INFO] [stdout]    --> src/kafka.rs:152:44
[INFO] [stdout]     |
[INFO] [stdout] 152 |         KafkaError::Global(error) => error.code().is_retriable(),
[INFO] [stdout]     |                                            ^^^^ method not found in `&RDKafkaErrorCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]   --> src/kafka.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             FutureProducer::flush(&producer, DELIVERY_TIMEOUT)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^            ---------------- unexpected argument #2 of type `Duration`
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/kafka.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn flush(&self) -> BoxFuture;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 47 -             FutureProducer::flush(&producer, DELIVERY_TIMEOUT)
[INFO] [stdout] 47 +             FutureProducer::flush(&producer)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `kafka::DeliveryFailure` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/kafka.rs:50:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct DeliveryFailure {
[INFO] [stdout]    | ---------------------- method `to_string` not found for this struct because it doesn't satisfy `kafka::DeliveryFailure: ToString` or `kafka::DeliveryFailure: std::fmt::Display`
[INFO] [stdout] ...
[INFO] [stdout] 50 |                     message: error.to_string(),
[INFO] [stdout]    |                                    ^^^^^^^^^ method cannot be called on `kafka::DeliveryFailure` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `kafka::DeliveryFailure: std::fmt::Display`
[INFO] [stdout]            which is required by `kafka::DeliveryFailure: ToString`
[INFO] [stdout] note: the trait `std::fmt::Display` must be implemented
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/fmt/mod.rs:1187:0
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `to_string`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `ToString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: kafka::Producer` is not satisfied
[INFO] [stdout]   --> src/kafka.rs:74:23
[INFO] [stdout]    |
[INFO] [stdout] 74 |             producer: Arc::new(producer),
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^ the trait `kafka::Producer` is not implemented for `!`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `kafka::Producer` is implemented for `FutureProducer`
[INFO] [stdout]   --> src/kafka.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Producer for FutureProducer {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for the cast from `Arc<!>` to `Arc<(dyn kafka::Producer + 'static)>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: FromClientConfig` is not satisfied
[INFO] [stdout]    --> src/kafka.rs:71:14
[INFO] [stdout]     |
[INFO] [stdout]  71 |             .create()
[INFO] [stdout]     |              ^^^^^^ the trait `FromClientConfig` is not implemented for `!`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromClientConfig`:
[INFO] [stdout]               AdminClient<DefaultClientContext>
[INFO] [stdout]               BaseConsumer
[INFO] [stdout]               BaseProducer
[INFO] [stdout]               FutureProducer<DefaultClientContext, R>
[INFO] [stdout]               StreamConsumer<DefaultConsumerContext, R>
[INFO] [stdout]               ThreadedProducer<DefaultProducerContext>
[INFO] [stdout] note: required by a bound in `rdkafka::ClientConfig::create`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rdkafka-0.36.2/src/config.rs:257:22
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl ClientConfig {
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn create<T: FromClientConfig>(&self) -> KafkaResult<T> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ required by this bound in `ClientConfig::create`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/postgres.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 216 |       let result = match *column.type_() {
[INFO] [stdout]     |                    --------------------- `match` arms have incompatible types
[INFO] [stdout] 217 |           Type::BOOL => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 218 | |             .try_get::<_, Option<bool>>(index)
[INFO] [stdout] 219 | |             .map(|v| v.map(Value::Bool)),
[INFO] [stdout]     | |________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 220 |           Type::CHAR => return Err(unsupported_type(column.type_())),
[INFO] [stdout] 221 |           Type::INT2 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 222 | |             .try_get::<_, Option<i16>>(index)
[INFO] [stdout] 223 | |             .map(|v| v.map(Value::from)),
[INFO] [stdout]     | |________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 224 |           Type::INT4 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 225 | |             .try_get::<_, Option<i32>>(index)
[INFO] [stdout] 226 | |             .map(|v| v.map(|n| Value::from(n))),
[INFO] [stdout]     | |_______________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 227 |           Type::INT8 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 228 | |             .try_get::<_, Option<i64>>(index)
[INFO] [stdout] 229 | |             .map(|v| v.map(|n| Value::from(n))),
[INFO] [stdout]     | |_______________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 230 |           Type::FLOAT4 => row
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 231 | |             .try_get::<_, Option<f32>>(index)
[INFO] [stdout] 232 | |             .map_err(|_| conversion_error(column.type_()))
[INFO] [stdout] 233 | |             .and_then(|value| value.map(finite_float).transpose()),
[INFO] [stdout]     | |__________________________________________________________________^ expected `Result<Option<Value>, Error>`, found `Result<Option<Value>, AppError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<_, tokio_postgres::Error>`
[INFO] [stdout]                found enum `Result<_, AppError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `serde_json::Value: FromSql<'_>` is not satisfied
[INFO] [stdout]    --> src/postgres.rs:241:54
[INFO] [stdout]     |
[INFO] [stdout] 241 |         Type::JSON | Type::JSONB => row.try_get::<_, Option<Value>>(index),
[INFO] [stdout]     |                                         -------      ^^^^^^^^^^^^^ the trait `FromSql<'_>` is not implemented for `serde_json::Value`
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromSql<'a>`:
[INFO] [stdout]               &'a [u8]
[INFO] [stdout]               &'a str
[INFO] [stdout]               Box<T>
[INFO] [stdout]               Box<[T]>
[INFO] [stdout]               Box<str>
[INFO] [stdout]               Cow<'a, str>
[INFO] [stdout]               HashMap<std::string::String, std::option::Option<std::string::String>, S>
[INFO] [stdout]               IpAddr
[INFO] [stdout]             and 16 others
[INFO] [stdout]     = note: required for `std::option::Option<serde_json::Value>` to implement `FromSql<'_>`
[INFO] [stdout] note: required by a bound in `tokio_postgres::Row::try_get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-postgres-0.7.18/src/row.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Row {
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn try_get<'a, I, T>(&'a self, idx: I) -> Result<T, Error>
[INFO] [stdout] ...
[INFO] [stdout] 172 |         T: FromSql<'a>,
[INFO] [stdout]     |            ^^^^^^^^^^^ required by this bound in `Row::try_get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `code` found for reference `&RDKafkaErrorCode` in the current scope
[INFO] [stdout]    --> src/kafka.rs:151:55
[INFO] [stdout]     |
[INFO] [stdout] 151 |         KafkaError::MessageProduction(error) => error.code().is_retriable(),
[INFO] [stdout]     |                                                       ^^^^ method not found in `&RDKafkaErrorCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_u64` found for struct `checkpoint::Lsn` in the current scope
[INFO] [stdout]   --> src/postgres_transport.rs:71:48
[INFO] [stdout]    |
[INFO] [stdout] 71 |                         commit_lsn: commit_lsn.as_u64(),
[INFO] [stdout]    |                                                ^^^^^^ method not found in `checkpoint::Lsn`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/checkpoint.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Lsn(u64);
[INFO] [stdout]    | -------------- method `as_u64` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commit_time`
[INFO] [stdout]   --> src/assembler.rs:45:41
[INFO] [stdout]    |
[INFO] [stdout] 45 |             ReplicationMessage::Begin { commit_time, .. } => {
[INFO] [stdout]    |                                         ^^^^^^^^^^^ help: try ignoring the field: `commit_time: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `code` found for reference `&RDKafkaErrorCode` in the current scope
[INFO] [stdout]    --> src/kafka.rs:152:44
[INFO] [stdout]     |
[INFO] [stdout] 152 |         KafkaError::Global(error) => error.code().is_retriable(),
[INFO] [stdout]     |                                            ^^^^ method not found in `&RDKafkaErrorCode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/postgres.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 216 |       let result = match *column.type_() {
[INFO] [stdout]     |                    --------------------- `match` arms have incompatible types
[INFO] [stdout] 217 |           Type::BOOL => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 218 | |             .try_get::<_, Option<bool>>(index)
[INFO] [stdout] 219 | |             .map(|v| v.map(Value::Bool)),
[INFO] [stdout]     | |________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 220 |           Type::CHAR => return Err(unsupported_type(column.type_())),
[INFO] [stdout] 221 |           Type::INT2 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 222 | |             .try_get::<_, Option<i16>>(index)
[INFO] [stdout] 223 | |             .map(|v| v.map(Value::from)),
[INFO] [stdout]     | |________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 224 |           Type::INT4 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 225 | |             .try_get::<_, Option<i32>>(index)
[INFO] [stdout] 226 | |             .map(|v| v.map(|n| Value::from(n))),
[INFO] [stdout]     | |_______________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 227 |           Type::INT8 => row
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 228 | |             .try_get::<_, Option<i64>>(index)
[INFO] [stdout] 229 | |             .map(|v| v.map(|n| Value::from(n))),
[INFO] [stdout]     | |_______________________________________________- this is found to be of type `Result<std::option::Option<serde_json::Value>, tokio_postgres::Error>`
[INFO] [stdout] 230 |           Type::FLOAT4 => row
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 231 | |             .try_get::<_, Option<f32>>(index)
[INFO] [stdout] 232 | |             .map_err(|_| conversion_error(column.type_()))
[INFO] [stdout] 233 | |             .and_then(|value| value.map(finite_float).transpose()),
[INFO] [stdout]     | |__________________________________________________________________^ expected `Result<Option<Value>, Error>`, found `Result<Option<Value>, AppError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<_, tokio_postgres::Error>`
[INFO] [stdout]                found enum `Result<_, AppError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `serde_json::Value: FromSql<'_>` is not satisfied
[INFO] [stdout]    --> src/postgres.rs:241:54
[INFO] [stdout]     |
[INFO] [stdout] 241 |         Type::JSON | Type::JSONB => row.try_get::<_, Option<Value>>(index),
[INFO] [stdout]     |                                         -------      ^^^^^^^^^^^^^ the trait `FromSql<'_>` is not implemented for `serde_json::Value`
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromSql<'a>`:
[INFO] [stdout]               &'a [u8]
[INFO] [stdout]               &'a str
[INFO] [stdout]               Box<T>
[INFO] [stdout]               Box<[T]>
[INFO] [stdout]               Box<str>
[INFO] [stdout]               Cow<'a, str>
[INFO] [stdout]               HashMap<std::string::String, std::option::Option<std::string::String>, S>
[INFO] [stdout]               IpAddr
[INFO] [stdout]             and 16 others
[INFO] [stdout]     = note: required for `std::option::Option<serde_json::Value>` to implement `FromSql<'_>`
[INFO] [stdout] note: required by a bound in `tokio_postgres::Row::try_get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-postgres-0.7.18/src/row.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Row {
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn try_get<'a, I, T>(&'a self, idx: I) -> Result<T, Error>
[INFO] [stdout] ...
[INFO] [stdout] 172 |         T: FromSql<'a>,
[INFO] [stdout]     |            ^^^^^^^^^^^ required by this bound in `Row::try_get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `as_u64` found for struct `checkpoint::Lsn` in the current scope
[INFO] [stdout]   --> src/postgres_transport.rs:71:48
[INFO] [stdout]    |
[INFO] [stdout] 71 |                         commit_lsn: commit_lsn.as_u64(),
[INFO] [stdout]    |                                                ^^^^^^ method not found in `checkpoint::Lsn`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/checkpoint.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Lsn(u64);
[INFO] [stdout]    | -------------- method `as_u64` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commit_time`
[INFO] [stdout]   --> src/assembler.rs:45:41
[INFO] [stdout]    |
[INFO] [stdout] 45 |             ReplicationMessage::Begin { commit_time, .. } => {
[INFO] [stdout]    |                                         ^^^^^^^^^^^ help: try ignoring the field: `commit_time: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:95:23
[INFO] [stdout]    |
[INFO] [stdout] 95 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/postgres.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |       pub fn snapshot_and_rows(&self) -> Result<Vec<ChangeEvent>, AppError> {
[INFO] [stdout]     |                                -----
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `self` is only valid in the method body
[INFO] [stdout]     |                                let's call the lifetime of this reference `'1`
[INFO] [stdout] 107 | /         run(async {
[INFO] [stdout] 108 | |             let mut session = self.prepare_slot_and_snapshot_async().await?;
[INFO] [stdout] 109 | |             self.snapshot_rows_async(&mut session).await
[INFO] [stdout] 110 | |         })
[INFO] [stdout]     | |          ^
[INFO] [stdout]     | |          |
[INFO] [stdout]     | |__________`self` escapes the method body here
[INFO] [stdout]     |            argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: `'static` lifetime requirement from `run` introduced here
[INFO] [stdout]    --> src/postgres.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 276 | fn run<F, T>(future: F) -> Result<T, AppError>
[INFO] [stdout] 277 | where
[INFO] [stdout] 278 |     F: std::future::Future<Output = Result<T, AppError>> + Send + 'static,
[INFO] [stdout]     |                                                                   ^^^^^^^ lifetime requirement introduced here
[INFO] [stdout] 279 |     T: Send + 'static,
[INFO] [stdout]     |               ^^^^^^^ lifetime requirement introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:156:27
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:134:27
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:131:27
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:196:23
[INFO] [stdout]     |
[INFO] [stdout] 196 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:282:19
[INFO] [stdout]     |
[INFO] [stdout] 282 |         .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0432, E0521, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cdc-pipeline` (lib) due to 16 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0597]: `mock` does not live long enough
[INFO] [stdout]    --> src/kafka.rs:204:31
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mock = Mock::default();
[INFO] [stdout]     |             ---- binding `mock` declared here
[INFO] [stdout] 204 |         run_sync(publish_with(&mock, "changes", &[event("a"), event("b")])).unwrap();
[INFO] [stdout]     |         ----------------------^^^^^----------------------------------------
[INFO] [stdout]     |         |                     |
[INFO] [stdout]     |         |                     borrowed value does not live long enough
[INFO] [stdout]     |         argument requires that `mock` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 211 |     }
[INFO] [stdout]     |     - `mock` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/kafka.rs:204:50
[INFO] [stdout]     |
[INFO] [stdout] 204 |         run_sync(publish_with(&mock, "changes", &[event("a"), event("b")])).unwrap();
[INFO] [stdout]     |         -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^--         - temporary value is freed at the end of this statement
[INFO] [stdout]     |         |                                        |
[INFO] [stdout]     |         |                                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |         argument requires that borrow lasts for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `mock.calls` because it is borrowed
[INFO] [stdout]    --> src/kafka.rs:205:21
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mock = Mock::default();
[INFO] [stdout]     |             ---- binding `mock` declared here
[INFO] [stdout] 204 |         run_sync(publish_with(&mock, "changes", &[event("a"), event("b")])).unwrap();
[INFO] [stdout]     |         -------------------------------------------------------------------
[INFO] [stdout]     |         |                     |
[INFO] [stdout]     |         |                     borrow of `mock` occurs here
[INFO] [stdout]     |         argument requires that `mock` is borrowed for `'static`
[INFO] [stdout] 205 |         let calls = mock.calls.into_inner().unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^ move out of `mock.calls` occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] note: if `Mock` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/kafka.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 169 |     struct Mock {
[INFO] [stdout]     |     ^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 204 |         run_sync(publish_with(&mock, "changes", &[event("a"), event("b")])).unwrap();
[INFO] [stdout]     |                                ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `mock` does not live long enough
[INFO] [stdout]    --> src/kafka.rs:226:39
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mock = Mock {
[INFO] [stdout]     |             ---- binding `mock` declared here
[INFO] [stdout] ...
[INFO] [stdout] 226 |         assert!(run_sync(publish_with(&mock, "changes", &[event("a")])).is_err());
[INFO] [stdout]     |                 ----------------------^^^^^----------------------------
[INFO] [stdout]     |                 |                     |
[INFO] [stdout]     |                 |                     borrowed value does not live long enough
[INFO] [stdout]     |                 argument requires that `mock` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 230 |     }
[INFO] [stdout]     |     - `mock` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/kafka.rs:226:58
[INFO] [stdout]     |
[INFO] [stdout] 226 |         assert!(run_sync(publish_with(&mock, "changes", &[event("a")])).is_err());
[INFO] [stdout]     |         -------------------------------------------------^^^^^^^^^^^^------------
[INFO] [stdout]     |         |       |                                        |
[INFO] [stdout]     |         |       |                                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |         |       argument requires that borrow lasts for `'static`
[INFO] [stdout]     |         temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `mock` does not live long enough
[INFO] [stdout]    --> src/kafka.rs:241:39
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let mock = Mock {
[INFO] [stdout]     |             ---- binding `mock` declared here
[INFO] [stdout] ...
[INFO] [stdout] 241 |         assert!(run_sync(publish_with(&mock, "changes", &[event("a")])).is_err());
[INFO] [stdout]     |                 ----------------------^^^^^----------------------------
[INFO] [stdout]     |                 |                     |
[INFO] [stdout]     |                 |                     borrowed value does not live long enough
[INFO] [stdout]     |                 argument requires that `mock` is borrowed for `'static`
[INFO] [stdout] 242 |         assert_eq!(mock.calls.lock().unwrap().len(), 1);
[INFO] [stdout] 243 |     }
[INFO] [stdout]     |     - `mock` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/kafka.rs:241:58
[INFO] [stdout]     |
[INFO] [stdout] 241 |         assert!(run_sync(publish_with(&mock, "changes", &[event("a")])).is_err());
[INFO] [stdout]     |         -------------------------------------------------^^^^^^^^^^^^------------
[INFO] [stdout]     |         |       |                                        |
[INFO] [stdout]     |         |       |                                        creates a temporary value which is freed while still in use
[INFO] [stdout]     |         |       argument requires that borrow lasts for `'static`
[INFO] [stdout]     |         temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]    --> src/kafka.rs:124:55
[INFO] [stdout]     |
[INFO] [stdout] 124 |     F: Future<Output = Result<(), AppError>> + Send + 'static,
[INFO] [stdout]     |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:95:23
[INFO] [stdout]    |
[INFO] [stdout] 95 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/postgres.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of method
[INFO] [stdout]    --> src/postgres.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |       pub fn snapshot_and_rows(&self) -> Result<Vec<ChangeEvent>, AppError> {
[INFO] [stdout]     |                                -----
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `self` is only valid in the method body
[INFO] [stdout]     |                                let's call the lifetime of this reference `'1`
[INFO] [stdout] 107 | /         run(async {
[INFO] [stdout] 108 | |             let mut session = self.prepare_slot_and_snapshot_async().await?;
[INFO] [stdout] 109 | |             self.snapshot_rows_async(&mut session).await
[INFO] [stdout] 110 | |         })
[INFO] [stdout]     | |          ^
[INFO] [stdout]     | |          |
[INFO] [stdout]     | |__________`self` escapes the method body here
[INFO] [stdout]     |            argument requires that `'1` must outlive `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: `'static` lifetime requirement from `run` introduced here
[INFO] [stdout]    --> src/postgres.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 276 | fn run<F, T>(future: F) -> Result<T, AppError>
[INFO] [stdout] 277 | where
[INFO] [stdout] 278 |     F: std::future::Future<Output = Result<T, AppError>> + Send + 'static,
[INFO] [stdout]     |                                                                   ^^^^^^^ lifetime requirement introduced here
[INFO] [stdout] 279 |     T: Send + 'static,
[INFO] [stdout]     |               ^^^^^^^ lifetime requirement introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:156:27
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:134:27
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:131:27
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 .map_err(|e| AppError::Postgres("postgres operation failed".into()))?;
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:196:23
[INFO] [stdout]     |
[INFO] [stdout] 196 |             .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/postgres.rs:282:19
[INFO] [stdout]     |
[INFO] [stdout] 282 |         .map_err(|e| AppError::Postgres("postgres operation failed".into()))?
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `feedback` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/postgres_transport.rs:212:21
[INFO] [stdout]     |
[INFO] [stdout] 197 |             let mut processor = processor(&mut assembler, &mut feedback);
[INFO] [stdout]     |                                                           ------------- mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 212 |             assert!(feedback.is_empty());
[INFO] [stdout]     |                     ^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 213 |             assert_eq!(handler.publishes, 0);
[INFO] [stdout] 214 |             processor.process(commit(), &mut handler).unwrap();
[INFO] [stdout]     |             --------- mutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `feedback` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/postgres_transport.rs:225:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |             let mut processor = processor(&mut assembler, &mut feedback);
[INFO] [stdout]     |                                                           ------------- mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 225 |             assert_eq!(feedback, vec![Lsn::new(42)]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 226 |         }
[INFO] [stdout]     |         - mutable borrow might be used here, when `processor` is dropped and runs the destructor for type `postgres_transport::ReplicationEventProcessor<'_, impl FnMut(checkpoint::Lsn) + '_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `feedback` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/postgres_transport.rs:246:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut processor = processor(&mut assembler, &mut feedback);
[INFO] [stdout]     |                                                       ------------- mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 246 |         assert!(feedback.is_empty());
[INFO] [stdout]     |                 ^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 250 |         processor.process(commit(), &mut handler).unwrap();
[INFO] [stdout]     |         --------- mutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `feedback` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/postgres_transport.rs:253:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut processor = processor(&mut assembler, &mut feedback);
[INFO] [stdout]     |                                                       ------------- mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 253 |         assert_eq!(feedback, vec![Lsn::new(42)]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout] 254 |     }
[INFO] [stdout]     |     - mutable borrow might be used here, when `processor` is dropped and runs the destructor for type `postgres_transport::ReplicationEventProcessor<'_, impl FnMut(checkpoint::Lsn) + '_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0432, E0502, E0505, E0521, E0597, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cdc-pipeline` (lib test) due to 27 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3", kill_on_drop: false }`
[INFO] [stdout] 1bc78d4355b26fd081126597cfe5bd87912404b52798b3aa28b5dcb98376d8b3
