Remaining warnings from the `tail-expr-drop-order` and `if-let-rescope` lints:
warning: relative drop order changing in Rust 2024
   --> crates/schema/src/def.rs:674:9
    |
674 |         self.columns().iter().find(|col_id| col_id.idx() == pos)
    |         ^^^^^^^^^^^^^^-------
    |         |
    |         this temporary value will be dropped at the end of the block
    |         a temporary with access to the borrow is created here ...
675 |     }
    |     - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator<Item = spacetimedb_primitives::ColId> + '_`
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: the temporary is part of an expression at the end of a block;
            consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
    = note: requested on the command line with `-W tail-expr-drop-order`
help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
    |
674 |         let x = self.columns().iter().find(|col_id| col_id.idx() == pos); x
    |         +++++++                                                         +++

warning: `spacetimedb-schema` (lib) generated 1 warning
warning: relative drop order changing in Rust 2024
   --> crates/durability/src/imp/local.rs:201:23
    |
189 |         while let Some(txdata) = self.rx.recv().await {
    |                                  --------------------
    |                                  |              |
    |                                  |              this value will be stored in a temporary; let us call it `#1`
    |                                  |              `#1` will be dropped later as of Edition 2024
    |                                  `__awaitee` calls a custom destructor
    |                                  `__awaitee` will be dropped later as of Edition 2024
...
199 |                 self.flush_append(txdata, true).await;
    |                 -------------------------------------
    |                 |
    |                 this value will be stored in a temporary; let us call it `#2`
    |                 `#2` will be dropped later as of Edition 2024
200 |             } else {
201 |                 match self.clog.append(txdata) {
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^
    |                       |
    |                       this value will be stored in a temporary; let us call it `#4`
    |                       up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
202 |                     Err(retry) => self.flush_append(retry, false).await,
    |                                   -------------------------------------
    |                                   |
    |                                   this value will be stored in a temporary; let us call it `#3`
    |                                   `#3` will be dropped later as of Edition 2024
...
205 |             }
    |             - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
   --> crates/durability/src/imp/local.rs:189:34
    |
189 |         while let Some(txdata) = self.rx.recv().await {
    |                                  ^^^^^^^^^^^^^^^-----
    |                                  |              |
    |                                  |              this value will be stored in a temporary; let us call it `#5`
    |                                  |              up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
    |                                  |              this value will be stored in a temporary; let us call it `#1`
    |                                  |              `#1` will be dropped later as of Edition 2024
    |                                  this value will be stored in a temporary; let us call it `#4`
    |                                  up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
    |                                  `__awaitee` calls a custom destructor
    |                                  `__awaitee` will be dropped later as of Edition 2024
...
199 |                 self.flush_append(txdata, true).await;
    |                 -------------------------------------
    |                 |
    |                 this value will be stored in a temporary; let us call it `#2`
    |                 `#2` will be dropped later as of Edition 2024
...
202 |                     Err(retry) => self.flush_append(retry, false).await,
    |                                   -------------------------------------
    |                                   |
    |                                   this value will be stored in a temporary; let us call it `#3`
    |                                   `#3` will be dropped later as of Edition 2024
...
208 |         }
    |         - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/durability/src/imp/local.rs:219:64
    |
217 |             let mut retry = Some(txdata);
    |                 ---------
    |                 |
    |                 `retry` calls a custom destructor
    |                 `retry` will be dropped later as of Edition 2024
218 |             while let Some(txdata) = retry.take() {
219 |                 if let Err(error::Append { txdata, source }) = clog.append_maybe_flush(txdata) {
    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                                                                |
    |                                                                this value will be stored in a temporary; let us call it `#1`
    |                                                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
223 |             }
    |             - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/durability/src/imp/local.rs:218:38
    |
217 |             let mut retry = Some(txdata);
    |                 ---------
    |                 |
    |                 `retry` calls a custom destructor
    |                 `retry` will be dropped later as of Edition 2024
218 |             while let Some(txdata) = retry.take() {
    |                                      ^^^^^^^^^^^^
    |                                      |
    |                                      this value will be stored in a temporary; let us call it `#1`
    |                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
223 |             }
    |             - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-durability` (lib) generated 4 warnings
warning: relative drop order changing in Rust 2024
   --> crates/snapshot/src/remote.rs:417:30
    |
408 |                 let mut buf = self.buf_pool.get();
    |                     -------
    |                     |
    |                     `buf` calls a custom destructor
    |                     `buf` will be dropped later as of Edition 2024
409 |                 let mut src = InspectReader::new(src, |chunk| {
    |                     -------
    |                     |
    |                     `src` calls a custom destructor
    |                     `src` will be dropped later as of Edition 2024
...
417 |                 decompressor.await.unwrap()?
    |                              ^^^^^
    |                              |
    |                              this value will be stored in a temporary; let us call it `#1`
    |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
418 |             };
    |             - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1
    |
354 | impl<T> Drop for JoinHandle<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `buf` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1
    |
465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S>
466 | | where
467 | |     F: FnOnce(T),
468 | |     S: Strategy,
    | |________________^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
   --> crates/snapshot/src/remote.rs:480:30
    |
471 |                 let mut buf = self.buf_pool.get();
    |                     -------
    |                     |
    |                     `buf` calls a custom destructor
    |                     `buf` will be dropped later as of Edition 2024
...
480 |                 decompressor.await.unwrap()?
    |                              ^^^^^
    |                              |
    |                              this value will be stored in a temporary; let us call it `#1`
    |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
481 |             };
    |             - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1
    |
354 | impl<T> Drop for JoinHandle<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `buf` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1
    |
465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S>
466 | | where
467 | |     F: FnOnce(T),
468 | |     S: Strategy,
    | |________________^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-snapshot` (lib) generated 2 warnings
    Checking spacetimedb-datastore v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/datastore)
warning: relative drop order changing in Rust 2024
    --> crates/codegen/src/unrealcpp.rs:2482:17
     |
2391 |                     let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string();
     |                                    -------------------------------------------------------
     |                                    |
     |                                    this value will be stored in a temporary; let us call it `#1`
     |                                    `#1` will be dropped later as of Edition 2024
...
2417 |                 let type_str = cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string();
     |                                ----------------------------------------------------------------
     |                                |
     |                                this value will be stored in a temporary; let us call it `#2`
     |                                `#2` will be dropped later as of Edition 2024
...
2482 |                 cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string()
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                 |
     |                 this value will be stored in a temporary; let us call it `#3`
     |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
2483 |             } else {
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
     = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
    --> crates/codegen/src/unrealcpp.rs:2484:17
     |
2391 |                     let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string();
     |                                    -------------------------------------------------------
     |                                    |
     |                                    this value will be stored in a temporary; let us call it `#1`
     |                                    `#1` will be dropped later as of Edition 2024
...
2417 |                 let type_str = cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string();
     |                                ----------------------------------------------------------------
     |                                |
     |                                this value will be stored in a temporary; let us call it `#2`
     |                                `#2` will be dropped later as of Edition 2024
...
2484 |                 cpp_ty_fmt_with_module(module, param_type, module_name).to_string()
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                 |
     |                 this value will be stored in a temporary; let us call it `#3`
     |                 up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
2485 |             };
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/codegen/src/unrealcpp.rs:2629:17
     |
2598 |                 let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string();
     |                                -------------------------------------------------------
     |                                |
     |                                this value will be stored in a temporary; let us call it `#1`
     |                                `#1` will be dropped later as of Edition 2024
...
2629 |                 cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string()
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                 |
     |                 this value will be stored in a temporary; let us call it `#2`
     |                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
2630 |             } else {
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/codegen/src/unrealcpp.rs:2631:17
     |
2598 |                 let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string();
     |                                -------------------------------------------------------
     |                                |
     |                                this value will be stored in a temporary; let us call it `#1`
     |                                `#1` will be dropped later as of Edition 2024
...
2631 |                 cpp_ty_fmt_with_module(module, param_type, module_name).to_string()
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                 |
     |                 this value will be stored in a temporary; let us call it `#2`
     |                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
2632 |             };
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-codegen` (lib) generated 4 warnings
warning: relative drop order changing in Rust 2024
  --> crates/cli/src/subcommands/build.rs:74:40
   |
73 |     let arg_matches = cli().get_matches_from(arg_string.split_whitespace());
   |         -----------
   |         |
   |         `arg_matches` calls a custom destructor
   |         `arg_matches` will be dropped later as of Edition 2024
74 |     exec(config.clone(), &arg_matches).await
   |                                        ^^^^^
   |                                        |
   |                                        this value will be stored in a temporary; let us call it `#1`
   |                                        up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
75 | }
   | - now the temporary value is dropped here, before the local variables in the block or statement
   |
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
   = note: `arg_matches` may invoke a custom destructor because it contains a trait object
   = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
   = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
   --> crates/cli/src/subcommands/dev.rs:286:19
    |
286 |               match generate_build_and_publish(
    |  ___________________-
287 | |                 &config,
288 | |                 &project_dir,
289 | |                 &spacetimedb_dir,
...   |
296 | |             .await
    | |              ----^
    | |              |   |
    | |              |   this value will be stored in a temporary; let us call it `#2`
    | |              |   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
    | |______________|___`__awaitee` calls a custom destructor
    |                |   `__awaitee` will be dropped later as of Edition 2024
    |                this value will be stored in a temporary; let us call it `#3`
    |                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    |                this value will be stored in a temporary; let us call it `#1`
    |                `#1` will be dropped later as of Edition 2024
...
299 |                   Err(e) => {
    |                       -
    |                       |
    |                       `e` calls a custom destructor
    |                       `e` will be dropped later as of Edition 2024
...
304 |           }
    |           - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `e` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/cli/src/subcommands/dev.rs:559:29
    |
559 |             if let Err(e) = stream_logs(&host_url, &database_identity, &auth_header).await {
    |                        -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
    |                        |    |                                                        |
    |                        |    |                                                        this value will be stored in a temporary; let us call it `#4`
    |                        |    |                                                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
    |                        |    |                                                        this value will be stored in a temporary; let us call it `#1`
    |                        |    |                                                        `#1` will be dropped later as of Edition 2024
    |                        |    this value will be stored in a temporary; let us call it `#3`
    |                        |    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    |                        |    `__awaitee` calls a custom destructor
    |                        |    `__awaitee` will be dropped later as of Edition 2024
    |                        `e` calls a custom destructor
    |                        `e` will be dropped later as of Edition 2024
...
562 |                 tokio::time::sleep(Duration::from_secs(10)).await;
    |                 -------------------------------------------------
    |                 |
    |                 this value will be stored in a temporary; let us call it `#2`
    |                 `#2` will be dropped later as of Edition 2024
563 |             }
564 |         }
    |         - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `e` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/time/entry.rs:280:1
    |
280 | / pin_project! {
...   |
310 | | }
    | |_^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: relative drop order changing in Rust 2024
   --> crates/cli/src/subcommands/logs.rs:153:33
    |
153 |         while let Some(chunk) = res.chunk().await? {
    |                        -----    -----------------^
    |                        |        |           |
    |                        |        |           this value will be stored in a temporary; let us call it `#4`
    |                        |        |           up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
    |                        |        |           this value will be stored in a temporary; let us call it `#1`
    |                        |        |           `#1` will be dropped later as of Edition 2024
    |                        |        this value will be stored in a temporary; let us call it `#2`
    |                        |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
    |                        |        this value will be stored in a temporary; let us call it `#3`
    |                        |        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    |                        |        `__awaitee` calls a custom destructor
    |                        |        `__awaitee` will be dropped later as of Edition 2024
    |                        `chunk` calls a custom destructor
    |                        `chunk` will be dropped later as of Edition 2024
154 |             stdout.write_all(&chunk).await?;
155 |         }
    |         - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: `#3` may invoke a custom destructor because it contains a trait object
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `chunk` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/cli/src/subcommands/repl.rs:74:39
    |
 74 |                     if let Err(err) = run_sql(api.sql(), sql, true).await {
    |                                ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
    |                                |      |                             |
    |                                |      |                             this value will be stored in a temporary; let us call it `#3`
    |                                |      |                             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    |                                |      |                             this value will be stored in a temporary; let us call it `#1`
    |                                |      |                             `#1` will be dropped later as of Edition 2024
    |                                |      this value will be stored in a temporary; let us call it `#2`
    |                                |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
    |                                |      `__awaitee` calls a custom destructor
    |                                |      `__awaitee` will be dropped later as of Edition 2024
    |                                `err` calls a custom destructor
    |                                `err` will be dropped later as of Edition 2024
...
 77 |                 }
    |                 - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `err` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/cli/src/subcommands/subscribe.rs:262:27
     |
 262 |     while let Some(msg) = ws.try_next().await.map_err(|source| Error::Websocket { source })? {
     |                    ---    ^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                    |      |             |
     |                    |      |             this value will be stored in a temporary; let us call it `#1`
     |                    |      |             `#1` will be dropped later as of Edition 2024
     |                    |      this value will be stored in a temporary; let us call it `#5`
     |                    |      up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
     |                    |      this value will be stored in a temporary; let us call it `#6`
     |                    |      up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
     |                    `msg` calls a custom destructor
     |                    `msg` will be dropped later as of Edition 2024
 263 |         let Some(msg) = parse_msg_json(&msg) else { continue };
     |                  ---    --------------------
     |                  |      |
     |                  |      this value will be stored in a temporary; let us call it `#3`
     |                  |      `#3` will be dropped later as of Edition 2024
     |                  this value will be stored in a temporary; let us call it `#2`
     |                  `#2` will be dropped later as of Edition 2024
 264 |         match msg {
 265 |             ws::ServerMessage::InitialSubscription(sub) => {
     |                                                    ---
     |                                                    |
     |                                                    `sub` calls a custom destructor
     |                                                    `sub` will be dropped later as of Edition 2024
 266 |                 if let Some(module_def) = module_def {
 267 |                     let output = format_output_json(&sub.database_update, module_def)?;
     |                                  -----------------------------------------------------
     |                                  |
     |                                  this value will be stored in a temporary; let us call it `#4`
     |                                  `#4` will be dropped later as of Edition 2024
...
 272 |             ws::ServerMessage::TransactionUpdate(ws::TransactionUpdate { status, .. }) => {
     |                                                                          ------
     |                                                                          |
     |                                                                          `status` calls a custom destructor
     |                                                                          `status` will be dropped later as of Edition 2024
...
 287 |     }
     |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#5` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
     = note: `#6` may invoke a custom destructor because it contains a trait object
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
     = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `sub` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
     = note: `#4` may invoke a custom destructor because it contains a trait object
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `status` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/cli/src/util.rs:141:51
     |
 139 |     let client = reqwest::Client::new();
     |         ------
     |         |
     |         `client` calls a custom destructor
     |         `client` will be dropped later as of Edition 2024
 140 |     let url = format!("{}/v1/database/{}/names", config.get_host_url(server)?, identity);
 141 |     client.get(url).send().await?.json_or_error().await
     |     -----------------------------                 ^^^^^
     |     |                      |                      |
     |     |                      |                      this value will be stored in a temporary; let us call it `#1`
     |     |                      |                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
     |     |                      this value will be stored in a temporary; let us call it `#3`
     |     |                      up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
     |     this value will be stored in a temporary; let us call it `#2`
     |     up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
 142 | }
     | - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: `#2` may invoke a custom destructor because it contains a trait object
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
     = note: `client` may invoke a custom destructor because it contains a trait object
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1
     |
 387 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1
     |
 387 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.74/src/ssl/mod.rs:1778:1
     |
1778 | / foreign_type_and_impl_send_sync! {
1779 | |     type CType = ffi::SSL_CTX;
1780 | |     fn drop = ffi::SSL_CTX_free;
...    |
1791 | |     pub struct SslContextRef;
1792 | | }
     | |_^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
     = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: relative drop order changing in Rust 2024
    --> crates/cli/src/util.rs:141:28
     |
 139 |     let client = reqwest::Client::new();
     |         ------
     |         |
     |         `client` calls a custom destructor
     |         `client` will be dropped later as of Edition 2024
 140 |     let url = format!("{}/v1/database/{}/names", config.get_host_url(server)?, identity);
 141 |     client.get(url).send().await?.json_or_error().await
     |                            ^^^^^
     |                            |
     |                            this value will be stored in a temporary; let us call it `#1`
     |                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 142 | }
     | - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
     = note: `client` may invoke a custom destructor because it contains a trait object
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1
     |
 387 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1
     |
 387 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `client` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.74/src/ssl/mod.rs:1778:1
     |
1778 | / foreign_type_and_impl_send_sync! {
1779 | |     type CType = ffi::SSL_CTX;
1780 | |     fn drop = ffi::SSL_CTX_free;
...    |
1791 | |     pub struct SslContextRef;
1792 | | }
     | |_^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
     = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: `spacetimedb-cli` (lib) generated 8 warnings
warning: relative drop order changing in Rust 2024
  --> crates/cli/src/main.rs:46:69
   |
32 |     let matches = get_command().get_matches();
   |         -------
   |         |
   |         `matches` calls a custom destructor
   |         `matches` will be dropped later as of Edition 2024
...
46 |     exec_subcommand(config, &paths, root_dir, cmd, subcommand_args).await
   |                                                                     ^^^^^
   |                                                                     |
   |                                                                     this value will be stored in a temporary; let us call it `#1`
   |                                                                     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
47 | }
   | - now the temporary value is dropped here, before the local variables in the block or statement
   |
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
   = note: `matches` may invoke a custom destructor because it contains a trait object
   = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
   = note: requested on the command line with `-W tail-expr-drop-order`

warning: `spacetimedb-cli` (bin "spacetimedb-cli") generated 1 warning
    Checking spacetimedb-core v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/core)
warning: relative drop order changing in Rust 2024
    --> crates/core/src/db/snapshot.rs:190:31
     |
 189 |           let mut database_state: Option<WeakDatabaseState> = None;
     |               ------------------
     |               |
     |               `database_state` calls a custom destructor
     |               `database_state` will be dropped later as of Edition 2024
 190 |           while let Some(req) = self.snapshot_requests.next().await {
     |                          ---    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
     |                          |      |                             |
     |                          |      |                             this value will be stored in a temporary; let us call it `#1`
     |                          |      |                             `#1` will be dropped later as of Edition 2024
     |                          |      this value will be stored in a temporary; let us call it `#4`
     |                          |      up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
     |                          `req` calls a custom destructor
     |                          `req` will be dropped later as of Edition 2024
...
 193 |                       let res = self
     |  _________________________---___-
     | |                         |
     | |                         `res` calls a custom destructor
     | |                         `res` will be dropped later as of Edition 2024
 194 | |                         .maybe_take_snapshot(database_state.as_ref())
 195 | |                         .await
     | |                          -----
     | |                          |   |
     | |__________________________|___`__awaitee` calls a custom destructor
     |                            |   `__awaitee` will be dropped later as of Edition 2024
     |                            this value will be stored in a temporary; let us call it `#2`
     |                            `#2` will be dropped later as of Edition 2024
...
 198 |                           self.maybe_compress_snapshots(snapshot_offset).await;
     |                           ----------------------------------------------------
     |                           |
     |                           this value will be stored in a temporary; let us call it `#3`
     |                           `#3` will be dropped later as of Edition 2024
...
 202 |                   Request::ReplaceState(new_state) => {
     |                                         ---------
     |                                         |
     |                                         `new_state` calls a custom destructor
     |                                         `new_state` will be dropped later as of Edition 2024
...
 206 |           }
     |           - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `database_state` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1
     |
3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `req` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `req` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `req` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `req` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `req` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `res` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `new_state` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `new_state` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `new_state` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `new_state` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `new_state` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
     = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
   --> crates/core/src/client/client_connection.rs:723:17
    |
715 |               let _gauge_guard = module_info.metrics.connected_clients.inc_scope();
    |                   ------------
    |                   |
    |                   `_gauge_guard` calls a custom destructor
    |                   `_gauge_guard` will be dropped later as of Edition 2024
716 |               module_info.metrics.ws_clients_spawned.inc();
717 | /             scopeguard::defer! {
718 | |                 let database_identity = module_info.database_identity;
719 | |                 log::warn!("websocket connection aborted for client identity `{client_identity}` and database identity `{database_identity}`");
720 | |                 module_info.metrics.ws_clients_aborted.inc();
721 | |             };
    | |             -
    | |             |
    | |_____________`_guard` calls a custom destructor
    |               `_guard` will be dropped later as of Edition 2024
722 |
723 |               fut.await
    |                   ^^^^^
    |                   |
    |                   this value will be stored in a temporary; let us call it `#1`
    |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
724 |           })
    |           - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `_gauge_guard` invokes this custom destructor
   --> crates/core/src/util/prometheus_handle.rs:9:1
    |
  9 | impl Drop for GaugeInc {
    | ^^^^^^^^^^^^^^^^^^^^^^
note: `_guard` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1
    |
465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S>
466 | | where
467 | |     F: FnOnce(T),
468 | |     S: Strategy,
    | |________________^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/client/client_connection.rs:870:9
     |
 857 |         let CallProcedureReturn { result, tx_offset } = self
     |                                   ------
     |                                   |
     |                                   `result` calls a custom destructor
     |                                   `result` will be dropped later as of Edition 2024
...
 870 |         self.module()
     |         ^^^^^^^^^^^^^
     |         |
     |         this value will be stored in a temporary; let us call it `#1`
     |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
 873 |     }
     |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
    --> crates/core/src/util/jobs.rs:351:1
     |
 351 | impl Drop for LoadBalanceOnDropGuard {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1
     |
1013 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> crates/core/src/host/module_host.rs:743:1
     |
 743 | impl Drop for CreateInstanceTimeMetric {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1
     |
1016 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1
     |
 822 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1
     |
 239 | impl Drop for RegisteredType {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1
     |
2687 | impl<T> Drop for Store<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1
     |
 933 | impl<T> Drop for UnboundedSenderInner<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1
     |
1458 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1
     |
1067 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1
     |
  31 | impl<T: ?Sized> Drop for StoreBox<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1
     |
1083 | impl Drop for ModuleInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `result` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/client/client_connection.rs:886:22
     |
 883 |                 let host = me.module();
     |                     ----
     |                     |
     |                     `host` calls a custom destructor
     |                     `host` will be dropped later as of Edition 2024
...
 886 |                     .await
     |                      ^^^^^
     |                      |
     |                      this value will be stored in a temporary; let us call it `#1`
     |                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 887 |             })
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `host` invokes this custom destructor
    --> crates/core/src/util/jobs.rs:351:1
     |
 351 | impl Drop for LoadBalanceOnDropGuard {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1
     |
1013 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> crates/core/src/host/module_host.rs:743:1
     |
 743 | impl Drop for CreateInstanceTimeMetric {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1
     |
1016 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1
     |
 822 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `host` may invoke a custom destructor because it contains a trait object
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1
     |
 239 | impl Drop for RegisteredType {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1
     |
2687 | impl<T> Drop for Store<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1
     |
 933 | impl<T> Drop for UnboundedSenderInner<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1
     |
1458 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1
     |
1067 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1
     |
  31 | impl<T: ?Sized> Drop for StoreBox<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1
     |
1083 | impl Drop for ModuleInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/util/jobs.rs:322:15
     |
 320 |         let handle = runtime::Handle::clone(&*self.inner.runtime.borrow());
     |             ------
     |             |
     |             `handle` calls a custom destructor
     |             `handle` will be dropped later as of Edition 2024
 321 |
 322 |         match handle.spawn(f).await {
     |               ^^^^^^^^^^^^^^^^-----
     |               |               |
     |               |               this value will be stored in a temporary; let us call it `#2`
     |               |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
     |               this value will be stored in a temporary; let us call it `#1`
     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
 326 |     }
     |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1
     |
 354 | impl<T> Drop for JoinHandle<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `handle` may invoke a custom destructor because it contains a trait object
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1
     |
1726 | impl<'scope, T> Drop for Packet<'scope, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1
     |
 394 | impl Drop for Thread {
     | ^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1
     |
 844 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1
     |
 566 | impl<S: 'static> Drop for UnownedTask<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1
     |
3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1
     |
 373 | impl Drop for ScheduledIo {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1
     |
 568 | impl<T> Drop for Local<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1
     |
 556 | impl<S: 'static> Drop for Task<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/util/jobs.rs:322:31
     |
 320 |         let handle = runtime::Handle::clone(&*self.inner.runtime.borrow());
     |             ------
     |             |
     |             `handle` calls a custom destructor
     |             `handle` will be dropped later as of Edition 2024
 321 |
 322 |         match handle.spawn(f).await {
     |                               ^^^^^
     |                               |
     |                               this value will be stored in a temporary; let us call it `#1`
     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
 326 |     }
     |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1
     |
 354 | impl<T> Drop for JoinHandle<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `handle` may invoke a custom destructor because it contains a trait object
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1
     |
1726 | impl<'scope, T> Drop for Packet<'scope, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1
     |
 394 | impl Drop for Thread {
     | ^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1
     |
 844 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1
     |
 566 | impl<S: 'static> Drop for UnownedTask<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1
     |
3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1
     |
 373 | impl Drop for ScheduledIo {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1
     |
 568 | impl<T> Drop for Local<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `handle` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1
     |
 556 | impl<S: 'static> Drop for Task<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/client/client_connection.rs:912:22
     |
 909 |                 let host = me.module();
     |                     ----
     |                     |
     |                     `host` calls a custom destructor
     |                     `host` will be dropped later as of Edition 2024
...
 912 |                     .await
     |                      ^^^^^
     |                      |
     |                      this value will be stored in a temporary; let us call it `#1`
     |                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 913 |             })
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `host` invokes this custom destructor
    --> crates/core/src/util/jobs.rs:351:1
     |
 351 | impl Drop for LoadBalanceOnDropGuard {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1
     |
1013 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> crates/core/src/host/module_host.rs:743:1
     |
 743 | impl Drop for CreateInstanceTimeMetric {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1
     |
1016 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1
     |
 822 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `host` may invoke a custom destructor because it contains a trait object
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1
     |
 239 | impl Drop for RegisteredType {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1
     |
2687 | impl<T> Drop for Store<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1
     |
 933 | impl<T> Drop for UnboundedSenderInner<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1
     |
1458 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1
     |
1067 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1
     |
  31 | impl<T: ?Sized> Drop for StoreBox<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1
     |
1083 | impl Drop for ModuleInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/client/client_connection.rs:939:22
     |
 936 |                 let host = me.module();
     |                     ----
     |                     |
     |                     `host` calls a custom destructor
     |                     `host` will be dropped later as of Edition 2024
...
 939 |                     .await
     |                      ^^^^^
     |                      |
     |                      this value will be stored in a temporary; let us call it `#1`
     |                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 940 |             })
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `host` invokes this custom destructor
    --> crates/core/src/util/jobs.rs:351:1
     |
 351 | impl Drop for LoadBalanceOnDropGuard {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1
     |
1013 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> crates/core/src/host/module_host.rs:743:1
     |
 743 | impl Drop for CreateInstanceTimeMetric {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1
     |
1016 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1
     |
 822 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: `host` may invoke a custom destructor because it contains a trait object
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1
     |
 239 | impl Drop for RegisteredType {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1
     |
2687 | impl<T> Drop for Store<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1
     |
 933 | impl<T> Drop for UnboundedSenderInner<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1
     |
1458 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1
     |
1067 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1
     |
  31 | impl<T: ?Sized> Drop for StoreBox<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1
     |
1083 | impl Drop for ModuleInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/util/mod.rs:29:35
     |
  27 |         let _entered = span.entered();
     |             --------
     |             |
     |             `_entered` calls a custom destructor
     |             `_entered` will be dropped later as of Edition 2024
  28 |         let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(f));
  29 |         if let Err(Err(_panic)) = tx.send(result) {
     |                                   ^^^^^^^^^^^^^^^
     |                                   |
     |                                   this value will be stored in a temporary; let us call it `#1`
     |                                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
  32 |     });
     |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: `#1` may invoke a custom destructor because it contains a trait object
note: `_entered` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/span.rs:1566:1
     |
1566 | impl Drop for EnteredSpan {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/core/src/host/host_controller.rs:459:54
    |
456 |         let guard = self.acquire_read_lock(replica_id).await;
    |             -----
    |             |
    |             `guard` calls a custom destructor
    |             `guard` will be dropped later as of Edition 2024
...
459 |         host.migrate_plan(host_type, program, style).await
    |                                                      ^^^^^
    |                                                      |
    |                                                      this value will be stored in a temporary; let us call it `#1`
    |                                                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
460 |     }
    |     - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `guard` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/rwlock/owned_read_guard.rs:195:1
    |
195 | impl<T: ?Sized, U: ?Sized> Drop for OwnedRwLockReadGuard<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/subscription/module_subscription_manager.rs:1461:35
     |
1461 |           while let Some(message) = self.rx.recv().await {
     |                          -------    ^^^^^^^^^^^^^^^-----
     |                          |          |              |
     |                          |          |              this value will be stored in a temporary; let us call it `#8`
     |                          |          |              up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
     |                          |          |              this value will be stored in a temporary; let us call it `#1`
     |                          |          |              `#1` will be dropped later as of Edition 2024
     |                          |          this value will be stored in a temporary; let us call it `#7`
     |                          |          up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
     |                          |          `__awaitee` calls a custom destructor
     |                          |          `__awaitee` will be dropped later as of Edition 2024
     |                          `message` calls a custom destructor
     |                          `message` will be dropped later as of Edition 2024
...
1472 | /                     self.clients
1473 | |                         .insert(client_id, SendWorkerClient { dropped, outbound_ref });
     | |                                                                                      -
     | |                                                                                      |
     | |______________________________________________________________________________________this value will be stored in a temporary; let us call it `#2`
     |                                                                                        `#2` will be dropped later as of Edition 2024
...
1476 |                       recipient,
     |                       ---------
     |                       |
     |                       `recipient` calls a custom destructor
     |                       `recipient` will be dropped later as of Edition 2024
1477 |                       tx_offset,
     |                       ---------
     |                       |
     |                       `tx_offset` calls a custom destructor
     |                       `tx_offset` will be dropped later as of Edition 2024
1478 |                       message,
     |                       -------
     |                       |
     |                       this value will be stored in a temporary; let us call it `#3`
     |                       `#3` will be dropped later as of Edition 2024
...
1482 |                           let Ok(tx_offset) = tx_offset.await else {
     |                                               ---------------
     |                                               |
     |                                               this value will be stored in a temporary; let us call it `#4`
     |                                               `#4` will be dropped later as of Edition 2024
...
1490 |                       self.clients.remove(&client_id);
     |                       -------------------------------
     |                       |
     |                       this value will be stored in a temporary; let us call it `#5`
     |                       `#5` will be dropped later as of Edition 2024
1491 |                   }
1492 |                   SendWorkerMessage::Broadcast { tx_offset, queries } => {
     |                                                             -------
     |                                                             |
     |                                                             `queries` calls a custom destructor
     |                                                             `queries` will be dropped later as of Edition 2024
1493 |                       let Ok(tx_offset) = tx_offset.await else {
     |                                           ---------------
     |                                           |
     |                                           this value will be stored in a temporary; let us call it `#6`
     |                                           `#6` will be dropped later as of Edition 2024
...
1500 |           }
     |           - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#7` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `recipient` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `recipient` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx_offset` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#5` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#5` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `queries` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `queries` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `queries` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1
     |
1218 | impl<T> Drop for Receiver<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/core/src/sql/ast.rs:518:17
    |
514 | /         self.tx
515 | |             .iter_by_col_eq(
516 | |                 ST_ROW_LEVEL_SECURITY_ID,
517 | |                 StRowLevelSecurityFields::TableId,
518 | |                 &AlgebraicValue::from(table_id),
    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
519 | |             )?
    | |______________- a temporary with access to the borrow is created here ...
...
538 |       }
    |       - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<std::result::Result<Infallible, DatastoreError>, <T as StateView>::IterByColEq<'_, '_>>`
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: the temporary is part of an expression at the end of a block;
            consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
    |
514 ~         let x = self.tx
515 |             .iter_by_col_eq(
...
536 |             })
537 ~             .collect::<anyhow::Result<_>>(); x
    |

warning: relative drop order changing in Rust 2024
   --> crates/core/src/auth/token_validation.rs:117:51
    |
 93 | #[async_trait]
    |              - now the temporary value is dropped here, before the local variables in the block or statement
...
 99 |         let local_key_error = {
    |             ---------------
    |             |
    |             `local_key_error` calls a custom destructor
    |             `local_key_error` will be dropped later as of Edition 2024
...
117 |         self.oidc_validator.validate_token(token).await
    |                                                   ^^^^^
    |                                                   |
    |                                                   this value will be stored in a temporary; let us call it `#1`
    |                                                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `local_key_error` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
    = note: `local_key_error` may invoke a custom destructor because it contains a trait object
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/db/relational_db.rs:553:23
     |
 553 |                   match try_load_snapshot(&database_identity, snapshot_repo, snapshot_offset, &page_pool) {
     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                         |
     |                         this value will be stored in a temporary; let us call it `#2`
     |                         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
 554 |                       Ok(snapshot) if snapshot.database_identity != database_identity => {
     |                          --------
     |                          |
     |                          `snapshot` calls a custom destructor
     |                          `snapshot` will be dropped later as of Edition 2024
...
 570 | /                             path.rename_invalid().map_err(|e| RestoreSnapshotError::Invalidate {
 571 | |                                 offset: snapshot_offset,
 572 | |                                 source: Box::new(e.into()),
 573 | |                             })?;
     | |                               -
     | |                               |
     | |_______________________________this value will be stored in a temporary; let us call it `#1`
     |                                 `#1` will be dropped later as of Edition 2024
...
 586 |               }
     |               - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#2` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `snapshot` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
     |
 150 | impl<T: ?Sized> Drop for Arc<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/db/relational_db.rs:1589:40
     |
1589 |                 ty: fmt_algebraic_type(&name.type_of()).to_string(),
     |                     -------------------^^^^^^^^^^^^^^^-
     |                     |                  |
     |                     |                  this temporary value will be dropped at the end of the block
     |                     a temporary with access to the borrow is created here ...
...
1593 |         })
     |         - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `impl std::fmt::Display + '_`
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: the temporary is part of an expression at the end of a block;
             consider forcing this temporary to be dropped sooner, before the block's local variables are dropped
help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block
     |
1587 ~             let x = ErrorVm::Type(ErrorType::Parse {
1588 |                 value: literal.to_string(),
 ...
1591 |             })
1592 ~             .into(); x
     |

warning: relative drop order changing in Rust 2024
    --> crates/core/src/host/module_host.rs:630:11
     |
 628 |     let mut tx = db.begin_mut_tx(IsolationLevel::Serializable, Workload::Internal);
     |         ------
     |         |
     |         `tx` calls a custom destructor
     |         `tx` will be dropped later as of Edition 2024
 629 |
 630 |     match handle_queued_call_reducer_params(&tx, module, db, item) {
     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |           |
     |           this value will be stored in a temporary; let us call it `#1`
     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
 662 | }
     | - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1
     |
  93 | impl Drop for AbortHandle {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1
     |
 225 | impl<T, S> Drop for Tx<T, S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:858:1
     |
 858 | impl<R: RawMutex, T: ?Sized> Drop for ArcMutexGuard<R, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2019:1
     |
2019 | impl<R: RawRwLock, T: ?Sized> Drop for ArcRwLockWriteGuard<R, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thin-vec-0.2.14/src/lib.rs:1677:1
     |
1677 | impl<T> Drop for ThinVec<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5
     |
  92 |     impl<B> Drop for FixedBitSet<B> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tx` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5
     |
 299 |     impl<T> Drop for SlimSliceBox<T> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/subscription/module_subscription_actor.rs:598:17
     |
 589 |             let _compile_timer = subscription_metrics.compilation_time.start_timer();
     |                 --------------
     |                 |
     |                 `_compile_timer` calls a custom destructor
     |                 `_compile_timer` will be dropped later as of Edition 2024
 590 |             let mut subscriptions = {
     |                 -----------------
     |                 |
     |                 `subscriptions` calls a custom destructor
     |                 `subscriptions` will be dropped later as of Edition 2024
...
 598 |                 subscriptions.remove_subscription((sender.id.identity, sender.id.connection_id), request.query_id),
     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |                 |
     |                 this value will be stored in a temporary; let us call it `#1`
     |                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
...
 602 |         };
     |          - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
     |
 150 | impl<T: ?Sized> Drop for Arc<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `_compile_timer` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/prometheus-0.13.4/src/histogram.rs:644:1
     |
 644 | impl Drop for HistogramTimer {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `subscriptions` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1
     |
1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/core/src/subscription/module_subscription_actor.rs:709:19
     |
 709 |               match guard.query(&hash) {
     |                     ^^^^^^^^^^^^^^^^^^
     |                     |
     |                     this value will be stored in a temporary; let us call it `#3`
     |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
...
 713 |                   _ => match guard.query(&hash_with_param) {
     |                              -----------------------------
     |                              |
     |                              this value will be stored in a temporary; let us call it `#1`
     |                              `#1` will be dropped later as of Edition 2024
...
 719 | /                             compile_query_with_hashes(&auth, &*mut_tx, sql, hash, hash_with_param).map_err(|err| {
 720 | |                                 DBError::WithSql {
 721 | |                                     error: Box::new(DBError::Other(err.into())),
 722 | |                                     sql: sql.into(),
 723 | |                                 }
 724 | |                             })?,
     | |                               -
     | |                               |
     | |_______________________________this value will be stored in a temporary; let us call it `#2`
     |                                 `#2` will be dropped later as of Edition 2024
...
 730 |           }
     |           - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#3` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1
     |
 291 | impl Drop for ColList {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
     |
 150 | impl<T: ?Sized> Drop for Arc<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-core` (lib) generated 18 warnings
    Checking spacetimedb-client-api v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/client-api)
warning: relative drop order changing in Rust 2024
    --> crates/client-api/src/routes/database.rs:557:51
     |
 551 |     let (host, database) = find_leader_and_database(&worker_ctx, name_or_identity).await?;
     |          ----
     |          |
     |          `host` calls a custom destructor
     |          `host` will be dropped later as of Edition 2024
...
 557 |     host.exec_sql(auth, database, confirmed, sql).await
     |                                                   ^^^^^
     |                                                   |
     |                                                   this value will be stored in a temporary; let us call it `#1`
     |                                                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 558 | }
     | - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: `host` may invoke a custom destructor because it contains a trait object
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1
     |
1726 | impl<'scope, T> Drop for Packet<'scope, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1
     |
 394 | impl Drop for Thread {
     | ^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1
     |
 844 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1
     |
 566 | impl<S: 'static> Drop for UnownedTask<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1
     |
3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1
     |
 373 | impl Drop for ScheduledIo {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1
     |
 568 | impl<T> Drop for Local<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1
     |
 556 | impl<S: 'static> Drop for Task<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:495:1
     |
 495 | impl Drop for Runtime {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/core/src/host/host_controller.rs:1060:1
     |
1060 | impl Drop for Host {
     | ^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
     = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
    --> crates/client-api/src/routes/subscribe.rs:1087:41
     |
1054 | /                 tokio::select! {
1055 | |                     // `biased` towards the unordered queue,
1056 | |                     // which may initiate a connection shutdown.
1057 | |                     biased;
1058 | |
1059 | |                     maybe_msg = unordered.recv() => {
     | |                     ---------
     | |                     |
     | |                     `maybe_msg` calls a custom destructor
     | |                     `maybe_msg` will be dropped later as of Edition 2024
1060 | |                         let Some(msg) = maybe_msg else {
     | |                                  ---
     | |                                  |
     | |                                  `msg` calls a custom destructor
     | |                                  `msg` will be dropped later as of Edition 2024
...    |
1073 | |                                 if let Err(e) = ws.send(WsMessage::Close(Some(close_frame))).await {
     | |                                                 --------------------------------------------------
     | |                                                 |                                            |
     | |                                                 |                                            this value will be stored in a temporary; let us call it `#3`
     | |                                                 |                                            `#3` will be dropped later as of Edition 2024
     | |                                                 this value will be stored in a temporary; let us call it `#2`
     | |                                                 `#2` will be dropped later as of Edition 2024
     | |                                                 `__awaitee` calls a custom destructor
     | |                                                 `__awaitee` will be dropped later as of Edition 2024
...    |
1087 | |                                 if let Err(e) = ws.feed(WsMessage::Ping(bytes)).await {
     | |                                            -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
     | |                                            |    |                               |
     | |                                            |    |                               this value will be stored in a temporary; let us call it `#18`
     | |                                            |    |                               up until Edition 2021 `#18` is dropped last but will be dropped earlier in Edition 2024
     | |                                            |    |                               this value will be stored in a temporary; let us call it `#5`
     | |                                            |    |                               `#5` will be dropped later as of Edition 2024
     | |                                            |    this value will be stored in a temporary; let us call it `#17`
     | |                                            |    up until Edition 2021 `#17` is dropped last but will be dropped earlier in Edition 2024
     | |                                            |    this value will be stored in a temporary; let us call it `#4`
     | |                                            |    `#4` will be dropped later as of Edition 2024
     | |                                            `e` calls a custom destructor
     | |                                            `e` will be dropped later as of Edition 2024
...    |
1091 | |                             },
     | |                             - now the temporary value is dropped here, before the local variables in the block or statement
...    |
1094 | |                                 let (msg_alloc, res) = send_message(
     | |        _________________________________________---____-
     | |       |                                         |
     | |       |                                         `res` calls a custom destructor
     | |       |                                         `res` will be dropped later as of Edition 2024
1095 | |       |                             &state.database,
1096 | |       |                             config,
1097 | |       |                             serialize_buf,
...    |       |
1100 | |       |                             err
1101 | |       |                         ).await;
     | |       |                           -----
     | |       |                           |   |
     | |       |                           |   this value will be stored in a temporary; let us call it `#6`
     | |       |                           |   `#6` will be dropped later as of Edition 2024
     | |       |___________________________|___this value will be stored in a temporary; let us call it `#7`
     | |                                   |   `#7` will be dropped later as of Edition 2024
     | |                                   this value will be stored in a temporary; let us call it `#8`
     | |                                   `#8` will be dropped later as of Edition 2024
...    |
1112 | |                     maybe_message = messages.recv(), if !closed => {
     | |                     -------------
     | |                     |
     | |                     `maybe_message` calls a custom destructor
     | |                     `maybe_message` will be dropped later as of Edition 2024
...    |
1118 | |                             if let Err(e) = ws.send(WsMessage::Close(None)).await {
     | |                                             -------------------------------------
     | |                                             |                               |
     | |                                             |                               this value will be stored in a temporary; let us call it `#11`
     | |                                             |                               `#11` will be dropped later as of Edition 2024
     | |                                             this value will be stored in a temporary; let us call it `#9`
     | |                                             `#9` will be dropped later as of Edition 2024
     | |                                             this value will be stored in a temporary; let us call it `#10`
     | |                                             `#10` will be dropped later as of Edition 2024
...    |
1128 | |                         let (msg_alloc, res) = send_message(
     | |        _________________________________---____-
     | |        _________________________________|______|
     | |        _________________________________|______|
     | |        _________________________________|______|
     | |       |                                 |
     | |       |                                 this value will be stored in a temporary; let us call it `#12`
     | |       |                                 `#12` will be dropped later as of Edition 2024
1129 | |       |                     &state.database,
1130 | |       |                     config,
1131 | |       |                     serialize_buf,
...    |       |
1134 | |       |                     message
1135 | |       |                 ).await;
     | |       |                   -----
     | |       |___________________|___|
     | |       |___________________|___this value will be stored in a temporary; let us call it `#13`
     | |       |___________________|___`#13` will be dropped later as of Edition 2024
     | |       |___________________|___this value will be stored in a temporary; let us call it `#14`
     | |                           |   `#14` will be dropped later as of Edition 2024
     | |                           this value will be stored in a temporary; let us call it `#15`
     | |                           `#15` will be dropped later as of Edition 2024
...    |
1142 | |       |             },
1143 | |       |         }
     | |       |         -
     | |       |         |
     | |       |         `output` calls a custom destructor
     | |       |         `output` will be dropped later as of Edition 2024
     | |       |         `futures_init` calls a custom destructor
     | |       |         `futures_init` will be dropped later as of Edition 2024
     | |       |         `futures` calls a custom destructor
     | |       |         `futures` will be dropped later as of Edition 2024
     | |_______|_________this value will be stored in a temporary; let us call it `#1`
     |         |         `#1` will be dropped later as of Edition 2024
1144 |         |
1145 |         |         if let Err(e) = ws.flush().await {
     |         |                                    -----
     |         |                                    |
     |         |                                    this value will be stored in a temporary; let us call it `#16`
     |         |                                    `#16` will be dropped later as of Edition 2024
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#18` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `__awaitee` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `#8` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#10` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#13` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `#15` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/client-api/src/routes/subscribe.rs:1145:25
     |
1054 | /                 tokio::select! {
1055 | |                     // `biased` towards the unordered queue,
1056 | |                     // which may initiate a connection shutdown.
1057 | |                     biased;
1058 | |
1059 | |                     maybe_msg = unordered.recv() => {
     | |                     ---------
     | |                     |
     | |                     `maybe_msg` calls a custom destructor
     | |                     `maybe_msg` will be dropped later as of Edition 2024
1060 | |                         let Some(msg) = maybe_msg else {
     | |                                  ---
     | |                                  |
     | |                                  `msg` calls a custom destructor
     | |                                  `msg` will be dropped later as of Edition 2024
...    |
1073 | |                                 if let Err(e) = ws.send(WsMessage::Close(Some(close_frame))).await {
     | |                                                 --------------------------------------------------
     | |                                                 |                                            |
     | |                                                 |                                            this value will be stored in a temporary; let us call it `#3`
     | |                                                 |                                            `#3` will be dropped later as of Edition 2024
     | |                                                 this value will be stored in a temporary; let us call it `#2`
     | |                                                 `#2` will be dropped later as of Edition 2024
     | |                                                 `__awaitee` calls a custom destructor
     | |                                                 `__awaitee` will be dropped later as of Edition 2024
...    |
1087 | |                                 if let Err(e) = ws.feed(WsMessage::Ping(bytes)).await {
     | |                                                 -------------------------------------
     | |                                                 |                               |
     | |                                                 |                               this value will be stored in a temporary; let us call it `#5`
     | |                                                 |                               `#5` will be dropped later as of Edition 2024
     | |                                                 this value will be stored in a temporary; let us call it `#4`
     | |                                                 `#4` will be dropped later as of Edition 2024
...    |
1094 | |                                 let (msg_alloc, res) = send_message(
     | |        _________________________________________---____-
     | |       |                                         |
     | |       |                                         `res` calls a custom destructor
     | |       |                                         `res` will be dropped later as of Edition 2024
1095 | |       |                             &state.database,
1096 | |       |                             config,
1097 | |       |                             serialize_buf,
...    |       |
1100 | |       |                             err
1101 | |       |                         ).await;
     | |       |                           -----
     | |       |                           |   |
     | |       |                           |   this value will be stored in a temporary; let us call it `#6`
     | |       |                           |   `#6` will be dropped later as of Edition 2024
     | |       |___________________________|___this value will be stored in a temporary; let us call it `#7`
     | |                                   |   `#7` will be dropped later as of Edition 2024
     | |                                   this value will be stored in a temporary; let us call it `#8`
     | |                                   `#8` will be dropped later as of Edition 2024
...    |
1112 | |                     maybe_message = messages.recv(), if !closed => {
     | |                     -------------
     | |                     |
     | |                     `maybe_message` calls a custom destructor
     | |                     `maybe_message` will be dropped later as of Edition 2024
...    |
1118 | |                             if let Err(e) = ws.send(WsMessage::Close(None)).await {
     | |                                             -------------------------------------
     | |                                             |                               |
     | |                                             |                               this value will be stored in a temporary; let us call it `#11`
     | |                                             |                               `#11` will be dropped later as of Edition 2024
     | |                                             this value will be stored in a temporary; let us call it `#9`
     | |                                             `#9` will be dropped later as of Edition 2024
     | |                                             this value will be stored in a temporary; let us call it `#10`
     | |                                             `#10` will be dropped later as of Edition 2024
...    |
1128 | |                         let (msg_alloc, res) = send_message(
     | |        _________________________________---____-
     | |        _________________________________|______|
     | |        _________________________________|______|
     | |        _________________________________|______|
     | |       |                                 |
     | |       |                                 this value will be stored in a temporary; let us call it `#12`
     | |       |                                 `#12` will be dropped later as of Edition 2024
1129 | |       |                     &state.database,
1130 | |       |                     config,
1131 | |       |                     serialize_buf,
...    |       |
1134 | |       |                     message
1135 | |       |                 ).await;
     | |       |                   -----
     | |       |___________________|___|
     | |       |___________________|___this value will be stored in a temporary; let us call it `#13`
     | |       |___________________|___`#13` will be dropped later as of Edition 2024
     | |       |___________________|___this value will be stored in a temporary; let us call it `#14`
     | |                           |   `#14` will be dropped later as of Edition 2024
     | |                           this value will be stored in a temporary; let us call it `#15`
     | |                           `#15` will be dropped later as of Edition 2024
...    |
1142 | |       |             },
1143 | |       |         }
     | |       |         -
     | |       |         |
     | |       |         `output` calls a custom destructor
     | |       |         `output` will be dropped later as of Edition 2024
     | |       |         `futures_init` calls a custom destructor
     | |       |         `futures_init` will be dropped later as of Edition 2024
     | |       |         `futures` calls a custom destructor
     | |       |         `futures` will be dropped later as of Edition 2024
     | |_______|_________this value will be stored in a temporary; let us call it `#1`
     |         |         `#1` will be dropped later as of Edition 2024
1144 |         |
1145 |         |         if let Err(e) = ws.flush().await {
     |         |                    -    ^^^^^^^^^^^-----
     |         |                    |    |          |
     |         |                    |    |          this value will be stored in a temporary; let us call it `#16`
     |         |                    |    |          `#16` will be dropped later as of Edition 2024
     |         |                    |    this value will be stored in a temporary; let us call it `#17`
     |         |                    |    up until Edition 2021 `#17` is dropped last but will be dropped earlier in Edition 2024
     |         |                    `e` calls a custom destructor
     |         |                    `e` will be dropped later as of Edition 2024
...            |
1149 |         |     }
     |         |     - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `output` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
     |
 773 | impl Drop for Error {
     | ^^^^^^^^^^^^^^^^^^^
note: `msg` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `__awaitee` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#6` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `#8` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `maybe_message` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#10` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
     |
 684 | impl Drop for Bytes {
     | ^^^^^^^^^^^^^^^^^^^
note: `#13` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `#15` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1
     |
1123 | impl Drop for BytesMut {
     | ^^^^^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:869:29
    |
868 |         while let Some(item) = ws.next().await {
    |                                          -----
    |                                          |
    |                                          this value will be stored in a temporary; let us call it `#1`
    |                                          `#1` will be dropped later as of Edition 2024
869 |             if let Err(e) = tx.try_send(item) {
    |                        -    ^^^^^^^^^^^^^^^^^
    |                        |    |
    |                        |    this value will be stored in a temporary; let us call it `#5`
    |                        |    up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
    |                        `e` calls a custom destructor
    |                        `e` will be dropped later as of Edition 2024
...
872 |                     mpsc::error::TrySendError::Full(item) => {
    |                                                     ----
    |                                                     |
    |                                                     `item` calls a custom destructor
    |                                                     `item` will be dropped later as of Edition 2024
...
883 |                         if unordered_tx.send(CLOSE).is_err() {
    |                            ------------------------
    |                            |
    |                            this value will be stored in a temporary; let us call it `#2`
    |                            `#2` will be dropped later as of Edition 2024
...
897 |                         if tx.send(item).await.is_err() {
    |                            -------------------
    |                            |             |
    |                            |             this value will be stored in a temporary; let us call it `#4`
    |                            |             `#4` will be dropped later as of Edition 2024
    |                            this value will be stored in a temporary; let us call it `#3`
    |                            `#3` will be dropped later as of Edition 2024
    |                            `__awaitee` calls a custom destructor
    |                            `__awaitee` will be dropped later as of Edition 2024
...
910 |                     mpsc::error::TrySendError::Closed(_item) => {
    |                                                       -----
    |                                                       |
    |                                                       `_item` calls a custom destructor
    |                                                       `_item` will be dropped later as of Edition 2024
...
916 |         }
    |         - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `#5` may invoke a custom destructor because it contains a trait object
note: `#5` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#5` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `e` may invoke a custom destructor because it contains a trait object
note: `e` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `e` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `item` may invoke a custom destructor because it contains a trait object
note: `item` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `item` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: `#3` may invoke a custom destructor because it contains a trait object
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#4` may invoke a custom destructor because it contains a trait object
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `_item` may invoke a custom destructor because it contains a trait object
note: `_item` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `_item` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:868:32
    |
868 |         while let Some(item) = ws.next().await {
    |                                ^^^^^^^^^^-----
    |                                |         |
    |                                |         this value will be stored in a temporary; let us call it `#1`
    |                                |         `#1` will be dropped later as of Edition 2024
    |                                this value will be stored in a temporary; let us call it `#5`
    |                                up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
869 |             if let Err(e) = tx.try_send(item) {
    |                        -
    |                        |
    |                        `e` calls a custom destructor
    |                        `e` will be dropped later as of Edition 2024
...
872 |                     mpsc::error::TrySendError::Full(item) => {
    |                                                     ----
    |                                                     |
    |                                                     `item` calls a custom destructor
    |                                                     `item` will be dropped later as of Edition 2024
...
883 |                         if unordered_tx.send(CLOSE).is_err() {
    |                            ------------------------
    |                            |
    |                            this value will be stored in a temporary; let us call it `#2`
    |                            `#2` will be dropped later as of Edition 2024
...
897 |                         if tx.send(item).await.is_err() {
    |                            -------------------
    |                            |             |
    |                            |             this value will be stored in a temporary; let us call it `#4`
    |                            |             `#4` will be dropped later as of Edition 2024
    |                            this value will be stored in a temporary; let us call it `#3`
    |                            `#3` will be dropped later as of Edition 2024
    |                            `__awaitee` calls a custom destructor
    |                            `__awaitee` will be dropped later as of Edition 2024
...
910 |                     mpsc::error::TrySendError::Closed(_item) => {
    |                                                       -----
    |                                                       |
    |                                                       `_item` calls a custom destructor
    |                                                       `_item` will be dropped later as of Edition 2024
...
916 |         }
    |         - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `#5` may invoke a custom destructor because it contains a trait object
note: `#5` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#5` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `e` may invoke a custom destructor because it contains a trait object
note: `e` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `e` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `item` may invoke a custom destructor because it contains a trait object
note: `item` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `item` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: `#3` may invoke a custom destructor because it contains a trait object
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#4` may invoke a custom destructor because it contains a trait object
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `_item` may invoke a custom destructor because it contains a trait object
note: `_item` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `_item` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:713:37
    |
713 |     while let Some((data, timer)) = recv_handler.next().await {
    |                                     ^^^^^^^^^^^^^^^^^^^^-----
    |                                     |                   |
    |                                     |                   this value will be stored in a temporary; let us call it `#1`
    |                                     |                   `#1` will be dropped later as of Edition 2024
    |                                     this value will be stored in a temporary; let us call it `#5`
    |                                     up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
714 |         let result = message_handler(data, timer).await;
    |             ------   ----------------------------------
    |             |        |                            |
    |             |        |                            this value will be stored in a temporary; let us call it `#2`
    |             |        |                            `#2` will be dropped later as of Edition 2024
    |             |        `__awaitee` calls a custom destructor
    |             |        `__awaitee` will be dropped later as of Edition 2024
    |             `result` calls a custom destructor
    |             `result` will be dropped later as of Edition 2024
715 |         if let Err(e) = result {
    |                    -
    |                    |
    |                    `e` calls a custom destructor
    |                    `e` will be dropped later as of Edition 2024
...
719 |                 if unordered_tx.send(err.into()).is_err() {
    |                    -----------------------------
    |                    |
    |                    this value will be stored in a temporary; let us call it `#3`
    |                    `#3` will be dropped later as of Edition 2024
...
731 |             if unordered_tx.send(close.into()).is_err() {
    |                -------------------------------
    |                |
    |                this value will be stored in a temporary; let us call it `#4`
    |                `#4` will be dropped later as of Edition 2024
...
735 |     }
    |     - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#5` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `result` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `e` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1
    |
773 | impl Drop for Error {
    | ^^^^^^^^^^^^^^^^^^^
note: `#4` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:787:5
    |
787 | /     stream! {
788 | |         loop {
789 | |             let Some(res) = next_message(&state, &mut ws).await else {
    | |                      ---    -----------------------------------
    | |                      |      |                             |
    | |                      |      |                             this value will be stored in a temporary; let us call it `#2`
    | |                      |      |                             `#2` will be dropped later as of Edition 2024
    | |                      |      this value will be stored in a temporary; let us call it `#1`
    | |                      |      `#1` will be dropped later as of Edition 2024
    | |                      |      `__awaitee` calls a custom destructor
    | |                      |      `__awaitee` will be dropped later as of Edition 2024
    | |                      `res` calls a custom destructor
    | |                      `res` will be dropped later as of Edition 2024
790 | |                 log::trace!("recv stream exhausted");
...   |
794 | |                 Ok(m) => {
    | |                    -
    | |                    |
    | |                    `m` calls a custom destructor
    | |                    `m` will be dropped later as of Edition 2024
...   |
829 | |     }
    | |     ^
    | |     |
    | |     this value will be stored in a temporary; let us call it `#4`
    | |     up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
    | |     this value will be stored in a temporary; let us call it `#3`
    | |_____`#3` will be dropped later as of Edition 2024
    |       now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `res` may invoke a custom destructor because it contains a trait object
note: `res` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `res` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#2` may invoke a custom destructor because it contains a trait object
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
note: `m` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: this warning originates in the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:765:44
    |
765 |                     while let Some(item) = ws.next().await {
    |                                    ----    ^^^^^^^^^^-----
    |                                    |       |         |
    |                                    |       |         this value will be stored in a temporary; let us call it `#1`
    |                                    |       |         `#1` will be dropped later as of Edition 2024
    |                                    |       this value will be stored in a temporary; let us call it `#2`
    |                                    |       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
    |                                    `item` calls a custom destructor
    |                                    `item` will be dropped later as of Edition 2024
...
770 |                     }
    |                     - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `#2` may invoke a custom destructor because it contains a trait object
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `#1` may invoke a custom destructor because it contains a trait object
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: `item` may invoke a custom destructor because it contains a trait object
note: `item` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `item` invokes this custom destructor
   --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
    |
698 | impl Drop for CString {
    | ^^^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:950:5
    |
950 | /     stream! {
951 | |         while let Some(message) = messages.next().await {
    | |                        -------                    -----
    | |                        |                          |
    | |                        |                          this value will be stored in a temporary; let us call it `#1`
    | |                        |                          `#1` will be dropped later as of Edition 2024
    | |                        `message` calls a custom destructor
    | |                        `message` will be dropped later as of Edition 2024
952 | |             match message {
953 | |                 ClientMessage::Message(message) => {
...   |
957 | |                 ClientMessage::Ping(_bytes) => {
    | |                                     ------
    | |                                     |
    | |                                     `_bytes` calls a custom destructor
    | |                                     `_bytes` will be dropped later as of Edition 2024
...   |
962 | |                 ClientMessage::Pong(_bytes) => {
    | |                                     ------
    | |                                     |
    | |                                     this value will be stored in a temporary; let us call it `#2`
    | |                                     `#2` will be dropped later as of Edition 2024
...   |
966 | |                 ClientMessage::Close(close_frame) => {
    | |                                      -----------
    | |                                      |
    | |                                      `close_frame` calls a custom destructor
    | |                                      `close_frame` will be dropped later as of Edition 2024
...   |
976 | |         log::trace!("client message handler done");
977 | |     }
    | |     ^
    | |     |
    | |     this value will be stored in a temporary; let us call it `#3`
    | |     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    | |     `__awaitee` calls a custom destructor
    | |_____`__awaitee` will be dropped later as of Edition 2024
    |       now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `_bytes` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `close_frame` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: this warning originates in the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: relative drop order changing in Rust 2024
   --> crates/client-api/src/routes/subscribe.rs:951:35
    |
950 | /     stream! {
951 | |         while let Some(message) = messages.next().await {
    | |                        -------    ^^^^^^^^^^^^^^^^-----
    | |                        |          |               |
    | |                        |          |               this value will be stored in a temporary; let us call it `#1`
    | |                        |          |               `#1` will be dropped later as of Edition 2024
    | |                        |          this value will be stored in a temporary; let us call it `#3`
    | |                        |          up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
    | |                        `message` calls a custom destructor
    | |                        `message` will be dropped later as of Edition 2024
952 | |             match message {
953 | |                 ClientMessage::Message(message) => {
...   |
957 | |                 ClientMessage::Ping(_bytes) => {
    | |                                     ------
    | |                                     |
    | |                                     `_bytes` calls a custom destructor
    | |                                     `_bytes` will be dropped later as of Edition 2024
...   |
962 | |                 ClientMessage::Pong(_bytes) => {
    | |                                     ------
    | |                                     |
    | |                                     this value will be stored in a temporary; let us call it `#2`
    | |                                     `#2` will be dropped later as of Edition 2024
...   |
966 | |                 ClientMessage::Close(close_frame) => {
    | |                                      -----------
    | |                                      |
    | |                                      `close_frame` calls a custom destructor
    | |                                      `close_frame` will be dropped later as of Edition 2024
...   |
975 | |         }
    | |         - now the temporary value is dropped here, before the local variables in the block or statement
976 | |         log::trace!("client message handler done");
977 | |     }
    | |     -
    | |     |
    | |_____`__awaitee` calls a custom destructor
    |       `__awaitee` will be dropped later as of Edition 2024
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#3` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `message` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `_bytes` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
note: `close_frame` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1
    |
684 | impl Drop for Bytes {
    | ^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-client-api` (lib) generated 10 warnings
    Checking spacetimedb-pg v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/pg)
    Checking spacetimedb-standalone v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/standalone)
warning: relative drop order changing in Rust 2024
   --> crates/standalone/src/lib.rs:566:91
    |
565 |     let args = start::cli().try_get_matches_from(args)?;
    |         ----
    |         |
    |         `args` calls a custom destructor
    |         `args` will be dropped later as of Edition 2024
566 |     start::exec(&args, JobCores::without_pinned_cores(tokio::runtime::Handle::current())).await
    |                                                                                           ^^^^^
    |                                                                                           |
    |                                                                                           this value will be stored in a temporary; let us call it `#1`
    |                                                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
567 | }
    | - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
    = note: `args` may invoke a custom destructor because it contains a trait object
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
    = note: requested on the command line with `-W tail-expr-drop-order`

warning: relative drop order changing in Rust 2024
   --> crates/standalone/src/control_db.rs:323:15
    |
322 |         let tree = self.db.open_tree("top_level_domains")?;
    |             ----
    |             |
    |             `tree` calls a custom destructor
    |             `tree` will be dropped later as of Edition 2024
323 |         match tree.get(domain.as_ref().to_lowercase().as_bytes())? {
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |               |
    |               this value will be stored in a temporary; let us call it `#1`
    |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
    |               this value will be stored in a temporary; let us call it `#2`
    |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
...
327 |     }
    |     - now the temporary value is dropped here, before the local variables in the block or statement
    |
    = warning: this changes meaning in Rust 2024
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#1` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
    |
150 | impl<T: ?Sized> Drop for Arc<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `#2` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
    |
150 | impl<T: ?Sized> Drop for Arc<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `tree` invokes this custom destructor
   --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1
    |
150 | impl<T: ?Sized> Drop for Arc<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: relative drop order changing in Rust 2024
    --> crates/standalone/src/lib.rs:341:22
     |
 329 |                 let host = self
     |                     ----
     |                     |
     |                     `host` calls a custom destructor
     |                     `host` will be dropped later as of Edition 2024
...
 341 |                     .await
     |                      ^^^^^
     |                      |
     |                      this value will be stored in a temporary; let us call it `#1`
     |                      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
 342 |             }
     |             - now the temporary value is dropped here, before the local variables in the block or statement
     |
     = warning: this changes meaning in Rust 2024
     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
     = note: `host` may invoke a custom destructor because it contains a trait object
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1
     |
1726 | impl<'scope, T> Drop for Packet<'scope, T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1
     |
 698 | impl Drop for CString {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1
     |
 394 | impl Drop for Thread {
     | ^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1
     |
 844 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1
     |
 566 | impl<S: 'static> Drop for UnownedTask<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1
     |
3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1
     |
 170 | impl Drop for OwnedFd {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1
     |
 373 | impl Drop for ScheduledIo {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1
     |
 568 | impl<T> Drop for Local<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1
     |
 556 | impl<S: 'static> Drop for Task<S> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:495:1
     |
 495 | impl Drop for Runtime {
     | ^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
     |
2147 | impl<A: Array> Drop for SmallVec<A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1
     |
1080 | impl Drop for TypeRegistryInner {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1
     |
 628 | impl<T> Drop for Sender<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1
     |
3679 | impl<T, A: Allocator> Drop for RawTable<T, A> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1
     |
 448 | impl<T> Drop for ArrayQueue<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `host` invokes this custom destructor
    --> /home/coolreader18/clockwork/spacetimedb/crates/core/src/host/host_controller.rs:1060:1
     |
1060 | impl Drop for Host {
     | ^^^^^^^^^^^^^^^^^^
     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages

warning: `spacetimedb-standalone` (lib) generated 3 warnings
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.83s