[INFO] fetching crate dnssd 0.1.0...
[INFO] testing dnssd-0.1.0 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate dnssd 0.1.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate dnssd 0.1.0
[INFO] finished tweaking crates.io crate dnssd 0.1.0
[INFO] tweaked toml for crates.io crate dnssd 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate dnssd 0.1.0 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] [stderr]       Adding libc v0.1.12 (available: v0.2.177)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2fe5de7ed4b1fc7b31b511f2eebc152af93922987ea0c821d77f456487692acd
[INFO] running `Command { std: "docker" "start" "-a" "2fe5de7ed4b1fc7b31b511f2eebc152af93922987ea0c821d77f456487692acd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2fe5de7ed4b1fc7b31b511f2eebc152af93922987ea0c821d77f456487692acd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2fe5de7ed4b1fc7b31b511f2eebc152af93922987ea0c821d77f456487692acd", kill_on_drop: false }`
[INFO] [stdout] 2fe5de7ed4b1fc7b31b511f2eebc152af93922987ea0c821d77f456487692acd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e4c9d823be96c1cf874f13861cb60d0ae13cbeb3f6fac63437b4012df1c5ff2e
[INFO] running `Command { std: "docker" "start" "-a" "e4c9d823be96c1cf874f13861cb60d0ae13cbeb3f6fac63437b4012df1c5ff2e", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.1.12
[INFO] [stderr]    Compiling dnssd v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:147:45
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub type DNSServiceDomainEnumReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:154:43
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub type DNSServiceRegisterReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                           ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:162:41
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub type DNSServiceBrowseReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:171:42
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub type DNSServiceResolveReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                          ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:182:49
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub type DNSServiceRegisterRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                                 ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:188:46
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub type DNSServiceQueryRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:201:1
[INFO] [stdout]     |
[INFO] [stdout] 201 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/ffi.rs:336:56
[INFO] [stdout]     |
[INFO] [stdout] 336 | ...                   value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout]     |                                          ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 336 -                                     value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout] 336 +                                     value     : *const *const c_void ) -> DNSServiceErrorType;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/callback.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]    |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/service.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/txtrecord.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:7:44
[INFO] [stdout]    |
[INFO] [stdout]  7 |   pub type SafeDomainEnumReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout]  8 | |                                               DNSServiceFlags,
[INFO] [stdout]  9 | |                                               u32,
[INFO] [stdout] 10 | |                                               DNSServiceErrorType,
[INFO] [stdout] 11 | |                                               &str) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub type SafeDomainEnumReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:13:42
[INFO] [stdout]    |
[INFO] [stdout] 13 |   pub type SafeRegisterReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 14 | |                                             DNSServiceFlags,
[INFO] [stdout] 15 | |                                             DNSServiceErrorType,
[INFO] [stdout] 16 | |                                             &str,
[INFO] [stdout] 17 | |                                             &str,
[INFO] [stdout] 18 | |                                             &str) + 'static>;
[INFO] [stdout]    | |___________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type SafeRegisterReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |   pub type SafeBrowseReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 21 | |                                           DNSServiceFlags,
[INFO] [stdout] 22 | |                                           u32,
[INFO] [stdout] 23 | |                                           DNSServiceErrorType,
[INFO] [stdout] 24 | |                                           &str,
[INFO] [stdout] 25 | |                                           &str,
[INFO] [stdout] 26 | |                                           &str) + 'static>;
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SafeBrowseReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:28:41
[INFO] [stdout]    |
[INFO] [stdout] 28 |   pub type SafeResolveReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _________________________________________^
[INFO] [stdout] 29 | |                                            DNSServiceFlags,
[INFO] [stdout] 30 | |                                            u32,
[INFO] [stdout] 31 | |                                            DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |                                            u16,
[INFO] [stdout] 35 | |                                            TXTRecordData) + 'static>;
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SafeResolveReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub type SafeRegisterRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________________^
[INFO] [stdout] 38 | |                                                   DNSRecord,
[INFO] [stdout] 39 | |                                                   DNSServiceFlags,
[INFO] [stdout] 40 | |                                                   DNSServiceErrorType) + 'static>;
[INFO] [stdout]    | |________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type SafeRegisterRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:42:45
[INFO] [stdout]    |
[INFO] [stdout] 42 |   pub type SafeQueryRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _____________________________________________^
[INFO] [stdout] 43 | |                                                DNSServiceFlags,
[INFO] [stdout] 44 | |                                                u32,
[INFO] [stdout] 45 | |                                                DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |                                                Vec<u8>,
[INFO] [stdout] 50 | |                                                u32) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub type SafeQueryRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `CString` will be dropped
[INFO] [stdout]   --> src/utils.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CString::new (new_string).unwrap ().as_ptr ()
[INFO] [stdout]    |     ----------------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]    |     |
[INFO] [stdout]    |     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: you must make sure that the variable you bind the `CString` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]    = help: in particular, if this pointer is returned from the current function, binding the `CString` inside the function will not suffice
[INFO] [stdout]    = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]    = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/utils.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let new_string = value.clone();
[INFO] [stdout]    |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSServiceRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this code causes undefined behavior when executed
[INFO] [stdout]    |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSRecordRef` does not permit being left uninitialized
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this code causes undefined behavior when executed
[INFO] [stdout]     |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/txtrecord.rs:98:61
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn get_value_ptr <'a, T> (&'a self,
[INFO] [stdout]    |                                    -- the lifetime is named here
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<T>> {
[INFO] [stdout]    |                                          --                 ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<'a, T>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/txtrecord.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn get_item_at_index <T> (&self,
[INFO] [stdout]     |                                   ^^^^^ the lifetime is elided here
[INFO] [stdout] 122 |                                   index          : u16,
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<'_, T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*const *const libc::c_void` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this code causes undefined behavior when executed
[INFO] [stdout]     |                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "e4c9d823be96c1cf874f13861cb60d0ae13cbeb3f6fac63437b4012df1c5ff2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e4c9d823be96c1cf874f13861cb60d0ae13cbeb3f6fac63437b4012df1c5ff2e", kill_on_drop: false }`
[INFO] [stdout] e4c9d823be96c1cf874f13861cb60d0ae13cbeb3f6fac63437b4012df1c5ff2e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c0321f93124061ac24c32a1716b6d58fc24dc6203ecb9823d947c9d8bce59a61
[INFO] running `Command { std: "docker" "start" "-a" "c0321f93124061ac24c32a1716b6d58fc24dc6203ecb9823d947c9d8bce59a61", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:147:45
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub type DNSServiceDomainEnumReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:154:43
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub type DNSServiceRegisterReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                           ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:162:41
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub type DNSServiceBrowseReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:171:42
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub type DNSServiceResolveReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                          ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:182:49
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub type DNSServiceRegisterRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                                 ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:188:46
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub type DNSServiceQueryRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:201:1
[INFO] [stdout]     |
[INFO] [stdout] 201 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/ffi.rs:336:56
[INFO] [stdout]     |
[INFO] [stdout] 336 | ...                   value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout]     |                                          ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 336 -                                     value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout] 336 +                                     value     : *const *const c_void ) -> DNSServiceErrorType;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/callback.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]    |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/service.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/txtrecord.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:7:44
[INFO] [stdout]    |
[INFO] [stdout]  7 |   pub type SafeDomainEnumReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout]  8 | |                                               DNSServiceFlags,
[INFO] [stdout]  9 | |                                               u32,
[INFO] [stdout] 10 | |                                               DNSServiceErrorType,
[INFO] [stdout] 11 | |                                               &str) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub type SafeDomainEnumReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:13:42
[INFO] [stdout]    |
[INFO] [stdout] 13 |   pub type SafeRegisterReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 14 | |                                             DNSServiceFlags,
[INFO] [stdout] 15 | |                                             DNSServiceErrorType,
[INFO] [stdout] 16 | |                                             &str,
[INFO] [stdout] 17 | |                                             &str,
[INFO] [stdout] 18 | |                                             &str) + 'static>;
[INFO] [stdout]    | |___________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type SafeRegisterReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |   pub type SafeBrowseReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 21 | |                                           DNSServiceFlags,
[INFO] [stdout] 22 | |                                           u32,
[INFO] [stdout] 23 | |                                           DNSServiceErrorType,
[INFO] [stdout] 24 | |                                           &str,
[INFO] [stdout] 25 | |                                           &str,
[INFO] [stdout] 26 | |                                           &str) + 'static>;
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SafeBrowseReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:28:41
[INFO] [stdout]    |
[INFO] [stdout] 28 |   pub type SafeResolveReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _________________________________________^
[INFO] [stdout] 29 | |                                            DNSServiceFlags,
[INFO] [stdout] 30 | |                                            u32,
[INFO] [stdout] 31 | |                                            DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |                                            u16,
[INFO] [stdout] 35 | |                                            TXTRecordData) + 'static>;
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SafeResolveReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub type SafeRegisterRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________________^
[INFO] [stdout] 38 | |                                                   DNSRecord,
[INFO] [stdout] 39 | |                                                   DNSServiceFlags,
[INFO] [stdout] 40 | |                                                   DNSServiceErrorType) + 'static>;
[INFO] [stdout]    | |________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type SafeRegisterRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:42:45
[INFO] [stdout]    |
[INFO] [stdout] 42 |   pub type SafeQueryRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _____________________________________________^
[INFO] [stdout] 43 | |                                                DNSServiceFlags,
[INFO] [stdout] 44 | |                                                u32,
[INFO] [stdout] 45 | |                                                DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |                                                Vec<u8>,
[INFO] [stdout] 50 | |                                                u32) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub type SafeQueryRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `CString` will be dropped
[INFO] [stdout]   --> src/utils.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CString::new (new_string).unwrap ().as_ptr ()
[INFO] [stdout]    |     ----------------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]    |     |
[INFO] [stdout]    |     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: you must make sure that the variable you bind the `CString` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]    = help: in particular, if this pointer is returned from the current function, binding the `CString` inside the function will not suffice
[INFO] [stdout]    = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]    = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/utils.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let new_string = value.clone();
[INFO] [stdout]    |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSServiceRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this code causes undefined behavior when executed
[INFO] [stdout]    |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSRecordRef` does not permit being left uninitialized
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this code causes undefined behavior when executed
[INFO] [stdout]     |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/txtrecord.rs:98:61
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn get_value_ptr <'a, T> (&'a self,
[INFO] [stdout]    |                                    -- the lifetime is named here
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<T>> {
[INFO] [stdout]    |                                          --                 ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<'a, T>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/txtrecord.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn get_item_at_index <T> (&self,
[INFO] [stdout]     |                                   ^^^^^ the lifetime is elided here
[INFO] [stdout] 122 |                                   index          : u16,
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<'_, T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling dnssd v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*const *const libc::c_void` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this code causes undefined behavior when executed
[INFO] [stdout]     |                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:147:45
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub type DNSServiceDomainEnumReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:154:43
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub type DNSServiceRegisterReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                           ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:162:41
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub type DNSServiceBrowseReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:171:42
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub type DNSServiceResolveReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                          ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:182:49
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub type DNSServiceRegisterRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                                 ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:188:46
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub type DNSServiceQueryRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stdout]     |                                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi.rs:201:1
[INFO] [stdout]     |
[INFO] [stdout] 201 | extern {
[INFO] [stdout]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/ffi.rs:336:56
[INFO] [stdout]     |
[INFO] [stdout] 336 | ...                   value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout]     |                                          ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 336 -                                     value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stdout] 336 +                                     value     : *const *const c_void ) -> DNSServiceErrorType;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/callback.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]    |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/callback.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stdout]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/service.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]  --> src/txtrecord.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::uninitialized;
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:7:44
[INFO] [stdout]    |
[INFO] [stdout]  7 |   pub type SafeDomainEnumReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout]  8 | |                                               DNSServiceFlags,
[INFO] [stdout]  9 | |                                               u32,
[INFO] [stdout] 10 | |                                               DNSServiceErrorType,
[INFO] [stdout] 11 | |                                               &str) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub type SafeDomainEnumReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:13:42
[INFO] [stdout]    |
[INFO] [stdout] 13 |   pub type SafeRegisterReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 14 | |                                             DNSServiceFlags,
[INFO] [stdout] 15 | |                                             DNSServiceErrorType,
[INFO] [stdout] 16 | |                                             &str,
[INFO] [stdout] 17 | |                                             &str,
[INFO] [stdout] 18 | |                                             &str) + 'static>;
[INFO] [stdout]    | |___________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type SafeRegisterReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |   pub type SafeBrowseReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________^
[INFO] [stdout] 21 | |                                           DNSServiceFlags,
[INFO] [stdout] 22 | |                                           u32,
[INFO] [stdout] 23 | |                                           DNSServiceErrorType,
[INFO] [stdout] 24 | |                                           &str,
[INFO] [stdout] 25 | |                                           &str,
[INFO] [stdout] 26 | |                                           &str) + 'static>;
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SafeBrowseReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:28:41
[INFO] [stdout]    |
[INFO] [stdout] 28 |   pub type SafeResolveReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _________________________________________^
[INFO] [stdout] 29 | |                                            DNSServiceFlags,
[INFO] [stdout] 30 | |                                            u32,
[INFO] [stdout] 31 | |                                            DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |                                            u16,
[INFO] [stdout] 35 | |                                            TXTRecordData) + 'static>;
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SafeResolveReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub type SafeRegisterRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  ________________________________________________^
[INFO] [stdout] 38 | |                                                   DNSRecord,
[INFO] [stdout] 39 | |                                                   DNSServiceFlags,
[INFO] [stdout] 40 | |                                                   DNSServiceErrorType) + 'static>;
[INFO] [stdout]    | |________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type SafeRegisterRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/callback.rs:42:45
[INFO] [stdout]    |
[INFO] [stdout] 42 |   pub type SafeQueryRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stdout]    |  _____________________________________________^
[INFO] [stdout] 43 | |                                                DNSServiceFlags,
[INFO] [stdout] 44 | |                                                u32,
[INFO] [stdout] 45 | |                                                DNSServiceErrorType,
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |                                                Vec<u8>,
[INFO] [stdout] 50 | |                                                u32) + 'static>;
[INFO] [stdout]    | |_____________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub type SafeQueryRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `CString` will be dropped
[INFO] [stdout]   --> src/utils.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CString::new (new_string).unwrap ().as_ptr ()
[INFO] [stdout]    |     ----------------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]    |     |
[INFO] [stdout]    |     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: you must make sure that the variable you bind the `CString` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]    = help: in particular, if this pointer is returned from the current function, binding the `CString` inside the function will not suffice
[INFO] [stdout]    = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]    = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/utils.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let new_string = value.clone();
[INFO] [stdout]    |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSServiceRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/service.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this code causes undefined behavior when executed
[INFO] [stdout]    |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut StructDNSRecordRef` does not permit being left uninitialized
[INFO] [stdout]    --> src/service.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this code causes undefined behavior when executed
[INFO] [stdout]     |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stdout]   --> src/txtrecord.rs:41:31
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this code causes undefined behavior when executed
[INFO] [stdout]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]   --> src/ffi.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/txtrecord.rs:98:61
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn get_value_ptr <'a, T> (&'a self,
[INFO] [stdout]    |                                    -- the lifetime is named here
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<T>> {
[INFO] [stdout]    |                                          --                 ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<'a, T>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:100:44
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/txtrecord.rs:121:35
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn get_item_at_index <T> (&self,
[INFO] [stdout]     |                                   ^^^^^ the lifetime is elided here
[INFO] [stdout] 122 |                                   index          : u16,
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<'_, T>, DNSServiceErrorType> {
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this code causes undefined behavior when executed
[INFO] [stdout]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `*const *const libc::c_void` does not permit being left uninitialized
[INFO] [stdout]    --> src/txtrecord.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let value_ptr = uninitialized ();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this code causes undefined behavior when executed
[INFO] [stdout]     |                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.73s
[INFO] running `Command { std: "docker" "inspect" "c0321f93124061ac24c32a1716b6d58fc24dc6203ecb9823d947c9d8bce59a61", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0321f93124061ac24c32a1716b6d58fc24dc6203ecb9823d947c9d8bce59a61", kill_on_drop: false }`
[INFO] [stdout] c0321f93124061ac24c32a1716b6d58fc24dc6203ecb9823d947c9d8bce59a61
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7072ddad250ad8c06c38e0e1adcd734c856531723e4478b743a42f1b848997c2
[INFO] running `Command { std: "docker" "start" "-a" "7072ddad250ad8c06c38e0e1adcd734c856531723e4478b743a42f1b848997c2", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:147:45
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub type DNSServiceDomainEnumReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:154:43
[INFO] [stderr]     |
[INFO] [stderr] 154 | pub type DNSServiceRegisterReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                           ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:162:41
[INFO] [stderr]     |
[INFO] [stderr] 162 | pub type DNSServiceBrowseReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:171:42
[INFO] [stderr]     |
[INFO] [stderr] 171 | pub type DNSServiceResolveReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                          ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:182:49
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub type DNSServiceRegisterRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                                 ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:188:46
[INFO] [stderr]     |
[INFO] [stderr] 188 | pub type DNSServiceQueryRecordReply = Option<extern fn (DNSServiceRef,
[INFO] [stderr]     |                                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi.rs:201:1
[INFO] [stderr]     |
[INFO] [stderr] 201 | extern {
[INFO] [stderr]     | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/ffi.rs:336:56
[INFO] [stderr]     |
[INFO] [stderr] 336 | ...                   value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stderr]     |                                          ^             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 336 -                                     value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stderr] 336 +                                     value     : *const *const c_void ) -> DNSServiceErrorType;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/callback.rs:83:9
[INFO] [stderr]    |
[INFO] [stderr] 83 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]    |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/callback.rs:106:9
[INFO] [stderr]     |
[INFO] [stderr] 106 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/callback.rs:132:9
[INFO] [stderr]     |
[INFO] [stderr] 132 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/callback.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 159 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/callback.rs:188:9
[INFO] [stderr]     |
[INFO] [stderr] 188 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/callback.rs:208:9
[INFO] [stderr]     |
[INFO] [stderr] 208 |     pub extern fn wrapper (service_ref     : DNSServiceRef,
[INFO] [stderr]     |         ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]  --> src/service.rs:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::mem::uninitialized;
[INFO] [stderr]   |               ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]   --> src/service.rs:18:28
[INFO] [stderr]    |
[INFO] [stderr] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stderr]    |                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/service.rs:231:28
[INFO] [stderr]     |
[INFO] [stderr] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stderr]     |                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]  --> src/txtrecord.rs:4:15
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::mem::uninitialized;
[INFO] [stderr]   |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]   --> src/txtrecord.rs:30:31
[INFO] [stderr]    |
[INFO] [stderr] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]   --> src/txtrecord.rs:41:31
[INFO] [stderr]    |
[INFO] [stderr] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/txtrecord.rs:100:44
[INFO] [stderr]     |
[INFO] [stderr] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/txtrecord.rs:132:44
[INFO] [stderr]     |
[INFO] [stderr] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stderr]    --> src/txtrecord.rs:133:29
[INFO] [stderr]     |
[INFO] [stderr] 133 |             let value_ptr = uninitialized ();
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:7:44
[INFO] [stderr]    |
[INFO] [stderr]  7 |   pub type SafeDomainEnumReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  ____________________________________________^
[INFO] [stderr]  8 | |                                               DNSServiceFlags,
[INFO] [stderr]  9 | |                                               u32,
[INFO] [stderr] 10 | |                                               DNSServiceErrorType,
[INFO] [stderr] 11 | |                                               &str) + 'static>;
[INFO] [stderr]    | |_____________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub type SafeDomainEnumReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:13:42
[INFO] [stderr]    |
[INFO] [stderr] 13 |   pub type SafeRegisterReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  __________________________________________^
[INFO] [stderr] 14 | |                                             DNSServiceFlags,
[INFO] [stderr] 15 | |                                             DNSServiceErrorType,
[INFO] [stderr] 16 | |                                             &str,
[INFO] [stderr] 17 | |                                             &str,
[INFO] [stderr] 18 | |                                             &str) + 'static>;
[INFO] [stderr]    | |___________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub type SafeRegisterReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:20:40
[INFO] [stderr]    |
[INFO] [stderr] 20 |   pub type SafeBrowseReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  ________________________________________^
[INFO] [stderr] 21 | |                                           DNSServiceFlags,
[INFO] [stderr] 22 | |                                           u32,
[INFO] [stderr] 23 | |                                           DNSServiceErrorType,
[INFO] [stderr] 24 | |                                           &str,
[INFO] [stderr] 25 | |                                           &str,
[INFO] [stderr] 26 | |                                           &str) + 'static>;
[INFO] [stderr]    | |_________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub type SafeBrowseReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:28:41
[INFO] [stderr]    |
[INFO] [stderr] 28 |   pub type SafeResolveReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  _________________________________________^
[INFO] [stderr] 29 | |                                            DNSServiceFlags,
[INFO] [stderr] 30 | |                                            u32,
[INFO] [stderr] 31 | |                                            DNSServiceErrorType,
[INFO] [stderr] ...  |
[INFO] [stderr] 34 | |                                            u16,
[INFO] [stderr] 35 | |                                            TXTRecordData) + 'static>;
[INFO] [stderr]    | |___________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub type SafeResolveReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:37:48
[INFO] [stderr]    |
[INFO] [stderr] 37 |   pub type SafeRegisterRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  ________________________________________________^
[INFO] [stderr] 38 | |                                                   DNSRecord,
[INFO] [stderr] 39 | |                                                   DNSServiceFlags,
[INFO] [stderr] 40 | |                                                   DNSServiceErrorType) + 'static>;
[INFO] [stderr]    | |________________________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub type SafeRegisterRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/callback.rs:42:45
[INFO] [stderr]    |
[INFO] [stderr] 42 |   pub type SafeQueryRecordReplyCallback = Box<Fn(DNSService,
[INFO] [stderr]    |  _____________________________________________^
[INFO] [stderr] 43 | |                                                DNSServiceFlags,
[INFO] [stderr] 44 | |                                                u32,
[INFO] [stderr] 45 | |                                                DNSServiceErrorType,
[INFO] [stderr] ...  |
[INFO] [stderr] 49 | |                                                Vec<u8>,
[INFO] [stderr] 50 | |                                                u32) + 'static>;
[INFO] [stderr]    | |_____________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub type SafeQueryRecordReplyCallback = Box<dyn Fn(DNSService,
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: a dangling pointer will be produced because the temporary `CString` will be dropped
[INFO] [stderr]   --> src/utils.rs:12:41
[INFO] [stderr]    |
[INFO] [stderr] 12 |     CString::new (new_string).unwrap ().as_ptr ()
[INFO] [stderr]    |     ----------------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stderr]    |     |
[INFO] [stderr]    |     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]    |
[INFO] [stderr]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]    = help: you must make sure that the variable you bind the `CString` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stderr]    = help: in particular, if this pointer is returned from the current function, binding the `CString` inside the function will not suffice
[INFO] [stderr]    = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stderr]    = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]   --> src/utils.rs:11:27
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let new_string = value.clone();
[INFO] [stderr]    |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]    |
[INFO] [stderr]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: the type `*mut StructDNSServiceRef` does not permit being left uninitialized
[INFO] [stderr]   --> src/service.rs:18:28
[INFO] [stderr]    |
[INFO] [stderr] 18 |             ptr : unsafe { uninitialized () },
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                            |
[INFO] [stderr]    |                            this code causes undefined behavior when executed
[INFO] [stderr]    |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]    |
[INFO] [stderr]    = note: raw pointers must be initialized
[INFO] [stderr]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: the type `*mut StructDNSRecordRef` does not permit being left uninitialized
[INFO] [stderr]    --> src/service.rs:231:28
[INFO] [stderr]     |
[INFO] [stderr] 231 |             ptr : unsafe { uninitialized () },
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            this code causes undefined behavior when executed
[INFO] [stderr]     |                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]     |
[INFO] [stderr]     = note: raw pointers must be initialized
[INFO] [stderr] 
[INFO] [stderr] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stderr]   --> src/txtrecord.rs:30:31
[INFO] [stderr]    |
[INFO] [stderr] 30 |             ptr    : unsafe { uninitialized () },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                               |
[INFO] [stderr]    |                               this code causes undefined behavior when executed
[INFO] [stderr]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]    |
[INFO] [stderr] note: integers must be initialized (in this struct field)
[INFO] [stderr]   --> src/ffi.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the type `UnionTXTRecordRef` does not permit being left uninitialized
[INFO] [stderr]   --> src/txtrecord.rs:41:31
[INFO] [stderr]    |
[INFO] [stderr] 41 |             ptr    : unsafe { uninitialized () },
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                               |
[INFO] [stderr]    |                               this code causes undefined behavior when executed
[INFO] [stderr]    |                               help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]    |
[INFO] [stderr] note: integers must be initialized (in this struct field)
[INFO] [stderr]   --> src/ffi.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub _bindgen_data_ : [u64; 2usize],
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/txtrecord.rs:98:61
[INFO] [stderr]    |
[INFO] [stderr] 97 |     pub fn get_value_ptr <'a, T> (&'a self,
[INFO] [stderr]    |                                    -- the lifetime is named here
[INFO] [stderr] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<T>> {
[INFO] [stderr]    |                                          --                 ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                                          |
[INFO] [stderr]    |                                          the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 98 |                                   key : &'a str) ->  Option<TXTRecordItem<'a, T>> {
[INFO] [stderr]    |                                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stderr]    --> src/txtrecord.rs:100:44
[INFO] [stderr]     |
[INFO] [stderr] 100 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            this code causes undefined behavior when executed
[INFO] [stderr]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]     |
[INFO] [stderr]     = note: raw pointers must be initialized
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/txtrecord.rs:121:35
[INFO] [stderr]     |
[INFO] [stderr] 121 |     pub fn get_item_at_index <T> (&self,
[INFO] [stderr]     |                                   ^^^^^ the lifetime is elided here
[INFO] [stderr] 122 |                                   index          : u16,
[INFO] [stderr] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<T>, DNSServiceErrorType> {
[INFO] [stderr]     |                                                                             ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 123 |                                   key_buffer_len : Option<usize>) -> Result<TXTRecordItem<'_, T>, DNSServiceErrorType> {
[INFO] [stderr]     |                                                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: the type `*mut u8` does not permit being left uninitialized
[INFO] [stderr]    --> src/txtrecord.rs:132:44
[INFO] [stderr]     |
[INFO] [stderr] 132 |             let value_len : *mut uint8_t = uninitialized ();
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            this code causes undefined behavior when executed
[INFO] [stderr]     |                                            help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]     |
[INFO] [stderr]     = note: raw pointers must be initialized
[INFO] [stderr] 
[INFO] [stderr] warning: the type `*const *const libc::c_void` does not permit being left uninitialized
[INFO] [stderr]    --> src/txtrecord.rs:133:29
[INFO] [stderr]     |
[INFO] [stderr] 133 |             let value_ptr = uninitialized ();
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             this code causes undefined behavior when executed
[INFO] [stderr]     |                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stderr]     |
[INFO] [stderr]     = note: raw pointers must be initialized
[INFO] [stderr] 
[INFO] [stderr] warning: `dnssd` (lib) generated 40 warnings (run `cargo fix --lib -p dnssd` to apply 23 suggestions)
[INFO] [stderr] warning: `dnssd` (lib test) generated 40 warnings (40 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/dnssd-424f5bdbc3fa0ff1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests dnssd
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/ffi.rs:336:56
[INFO] [stderr]     |
[INFO] [stderr] 336 | ...                   value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stderr]     |                                          ^             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 336 -                                     value     : *const (*const c_void)) -> DNSServiceErrorType;
[INFO] [stderr] 336 +                                     value     : *const *const c_void ) -> DNSServiceErrorType;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7072ddad250ad8c06c38e0e1adcd734c856531723e4478b743a42f1b848997c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7072ddad250ad8c06c38e0e1adcd734c856531723e4478b743a42f1b848997c2", kill_on_drop: false }`
[INFO] [stdout] 7072ddad250ad8c06c38e0e1adcd734c856531723e4478b743a42f1b848997c2
