]>
git.proxmox.com Git - rustc.git/blob - vendor/tracing-attributes/tests/destructuring.rs
1 use tracing
::subscriber
::with_default
;
2 use tracing_attributes
::instrument
;
6 fn destructure_tuples() {
8 fn my_fn((arg1
, arg2
): (usize, usize)) {}
10 let span
= span
::mock().named("my_fn");
12 let (subscriber
, handle
) = subscriber
::mock()
14 span
.clone().with_field(
16 .with_value(&format_args
!("1"))
17 .and(field
::mock("arg2").with_value(&format_args
!("2")))
27 with_default(subscriber
, || {
31 handle
.assert_finished();
35 fn destructure_nested_tuples() {
37 fn my_fn(((arg1
, arg2
), (arg3
, arg4
)): ((usize, usize), (usize, usize))) {}
39 let span
= span
::mock().named("my_fn");
41 let (subscriber
, handle
) = subscriber
::mock()
43 span
.clone().with_field(
45 .with_value(&format_args
!("1"))
46 .and(field
::mock("arg2").with_value(&format_args
!("2")))
47 .and(field
::mock("arg3").with_value(&format_args
!("3")))
48 .and(field
::mock("arg4").with_value(&format_args
!("4")))
58 with_default(subscriber
, || {
59 my_fn(((1, 2), (3, 4)));
62 handle
.assert_finished();
66 fn destructure_refs() {
68 fn my_fn(&arg1
: &usize) {}
70 let span
= span
::mock().named("my_fn");
72 let (subscriber
, handle
) = subscriber
::mock()
75 .with_field(field
::mock("arg1").with_value(&1usize
).only()),
83 with_default(subscriber
, || {
87 handle
.assert_finished();
91 fn destructure_tuple_structs() {
92 struct Foo(usize, usize);
95 fn my_fn(Foo(arg1
, arg2
): Foo
) {}
97 let span
= span
::mock().named("my_fn");
99 let (subscriber
, handle
) = subscriber
::mock()
101 span
.clone().with_field(
103 .with_value(&format_args
!("1"))
104 .and(field
::mock("arg2").with_value(&format_args
!("2")))
114 with_default(subscriber
, || {
118 handle
.assert_finished();
122 fn destructure_structs() {
135 let _
= (arg1
, arg2
);
138 let span
= span
::mock().named("my_fn");
140 let (subscriber
, handle
) = subscriber
::mock()
142 span
.clone().with_field(
144 .with_value(&format_args
!("1"))
145 .and(field
::mock("arg2").with_value(&format_args
!("2")))
155 with_default(subscriber
, || {
156 my_fn(Foo { bar: 1, baz: 2 }
);
159 handle
.assert_finished();
163 fn destructure_everything() {
169 struct Bar((usize, usize));
175 bar
: Bar((arg1
, arg2
)),
180 let _
= (arg1
, arg2
, arg3
, arg4
);
183 let span
= span
::mock().named("my_fn");
185 let (subscriber
, handle
) = subscriber
::mock()
187 span
.clone().with_field(
189 .with_value(&format_args
!("1"))
190 .and(field
::mock("arg2").with_value(&format_args
!("2")))
191 .and(field
::mock("arg3").with_value(&format_args
!("3")))
192 .and(field
::mock("arg4").with_value(&format_args
!("4")))
202 with_default(subscriber
, || {
208 let _
= foo
.qux
; // to eliminate unused field warning
212 handle
.assert_finished();