1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// SPDX-License-Identifier: MIT
// Copyright 2026 Tom F. <https://github.com/tomtom215/>
// My way of giving something small back to the open source community
// and encouraging more Rust development!
//! Internal helpers for the crate's `Debug` implementations.
//!
//! Rust API guideline [C-DEBUG] asks every public type to implement `Debug`,
//! and the cost of skipping it is not cosmetic: `Result::unwrap`,
//! `Result::expect_err`, `assert_eq!` and `#[derive(Debug)]` on any downstream
//! struct that stores one of our types all stop compiling. Every public type in
//! quack-rs therefore implements it, and `missing_debug_implementations` is
//! enabled crate-wide so new ones cannot forget.
//!
//! Almost every type here wraps an opaque `DuckDB` handle, so there is nothing
//! structural to print. The pointer is printed anyway: it is the only thing that
//! distinguishes two live handles, and "which chunk did I write to?" is a
//! question `Debug` output is genuinely read to answer.
//!
//! [C-DEBUG]: https://rust-lang.github.io/api-guidelines/debugging.html
use fmt;
/// Renders an optional callback as `set` / `unset`.
///
/// The address of an `extern "C"` function tells a reader nothing; whether a
/// builder has been given one before `register` is called is the actual
/// question.
;
/// Implements `Debug` for a wrapper over a single opaque `DuckDB` handle,
/// printing the type name and the handle pointer.
pub use impl_handle_debug;