1#[cfg(feature = "ok")]
11pub fn adjoin() {
12 let mut x = 0;
13 let ref_x = &x;
14 let y = |z: u32| -> u32 {
15 println!("inner x = {}", *ref_x);
16 println!("inner x = {:p}", ref_x);
17
18 *ref_x + z
19 };
20
21 println!("1. outer x = {}", x);
22 println!("1. outer x = {:p}", &x);
23 x = y(2);
24 println!("2. outer x = {}", x);
25 println!("2. outer x = {:p}", &x);
26}
27
28
29
30
31#[cfg(feature = "okay")]
33pub fn adjoin() {
34 let mut x = 0;
35 let mut y = move |z: u32| {
36 println!("1. inner x {}", x);
37 println!("1. inner x {:p}", &x);
38
39 x = x + z;
40 println!("2. inner x {}", x);
43 println!("2. inner x {:p}", &x);
44 };
45
46 println!("1. outer x {}", x);
47 println!("1. outer x {:p}", &x);
48 y(2);
49 println!("2. outer x {}", x);
50 println!("2. outer x {:p}", &x);
51}
52
53
54
55
56#[cfg(feature = "err_05")]
58pub fn adjoin() {
59 let mut x = 0;
60 let mut y = |z: u32| {
61 println!("1. inner x {}", x);
62 println!("1. inner x {:p}", &x);
63
64 x = x + z;
65
66 println!("2. inner x {}", x);
67 println!("2. inner x {:p}", &x);
68 };
69
70 println!("1. outer x {}", x);
71 println!("1. outer x {:p}", &x);
72 y(2);
73 println!("2. outer x {}", x);
74 println!("2. outer x {:p}", &x);
75}
76
77
78
79
80#[cfg(all(
82 not(feature = "ok"),
83 not(feature = "okay"),
84 not(feature = "err_05"),
85 ))]
87pub fn adjoin() {
88 use aide::*;
89 hello();
90}
91
92