@@ -13,6 +13,7 @@ use core::future::Future;
13
13
use core:: net:: { Ipv4Addr , Ipv6Addr , SocketAddr , SocketAddrV6 } ;
14
14
use core:: pin:: pin;
15
15
16
+ use cfg_if:: cfg_if;
16
17
use edge_nal:: { UdpBind , UdpSplit } ;
17
18
use embassy_futures:: select:: { select, select4, Either4 } ;
18
19
use embassy_sync:: blocking_mutex:: raw:: NoopRawMutex ;
@@ -71,9 +72,117 @@ mod private {
71
72
impl Sealed for ( ) { }
72
73
}
73
74
74
- const MAX_SUBSCRIPTIONS : usize = 3 ;
75
- const MAX_IM_BUFFERS : usize = 10 ;
76
- const MAX_RESPONDERS : usize = 4 ;
75
+ cfg_if ! {
76
+ if #[ cfg( feature = "max-subscriptions-32" ) ] {
77
+ /// Max number of subscriptions
78
+ const MAX_SUBSCRIPTIONS : usize = 32 ;
79
+ } else if #[ cfg( feature = "max-subscriptions-16" ) ] {
80
+ /// Max number of subscriptions
81
+ const MAX_SUBSCRIPTIONS : usize = 16 ;
82
+ } else if #[ cfg( feature = "max-subscriptions-8" ) ] {
83
+ /// Max number of subscriptions
84
+ const MAX_SUBSCRIPTIONS : usize = 8 ;
85
+ } else if #[ cfg( feature = "max-subscriptions-7" ) ] {
86
+ /// Max number of subscriptions
87
+ const MAX_SUBSCRIPTIONS : usize = 7 ;
88
+ } else if #[ cfg( feature = "max-subscriptions-6" ) ] {
89
+ /// Max number of subscriptions
90
+ const MAX_SUBSCRIPTIONS : usize = 6 ;
91
+ } else if #[ cfg( feature = "max-subscriptions-5" ) ] {
92
+ /// Max number of subscriptions
93
+ const MAX_SUBSCRIPTIONS : usize = 5 ;
94
+ } else if #[ cfg( feature = "max-subscriptions-4" ) ] {
95
+ /// Max number of subscriptions
96
+ const MAX_SUBSCRIPTIONS : usize = 4 ;
97
+ } else if #[ cfg( feature = "max-subscriptions-3" ) ] {
98
+ /// Max number of subscriptions
99
+ const MAX_SUBSCRIPTIONS : usize = 3 ;
100
+ } else if #[ cfg( feature = "max-subscriptions-2" ) ] {
101
+ /// Max number of subscriptions
102
+ const MAX_SUBSCRIPTIONS : usize = 2 ;
103
+ } else if #[ cfg( feature = "max-subscriptions-1" ) ] {
104
+ /// Max number of subscriptions
105
+ const MAX_SUBSCRIPTIONS : usize = 1 ;
106
+ } else {
107
+ /// Max number of subscriptions
108
+ const MAX_SUBSCRIPTIONS : usize = 3 ;
109
+ }
110
+ }
111
+
112
+ cfg_if ! {
113
+ if #[ cfg( feature = "max-im-buffers-64" ) ] {
114
+ /// Max number of IM buffers
115
+ const MAX_IM_BUFFERS : usize = 64 ;
116
+ } else if #[ cfg( feature = "max-im-buffers-32" ) ] {
117
+ /// Max number of IM buffers
118
+ const MAX_IM_BUFFERS : usize = 32 ;
119
+ } else if #[ cfg( feature = "max-im-buffers-16" ) ] {
120
+ /// Max number of IM buffers
121
+ const MAX_IM_BUFFERS : usize = 16 ;
122
+ } else if #[ cfg( feature = "max-im-buffers-10" ) ] {
123
+ /// Max number of IM buffers
124
+ const MAX_IM_BUFFERS : usize = 10 ;
125
+ } else if #[ cfg( feature = "max-im-buffers-9" ) ] {
126
+ /// Max number of IM buffers
127
+ const MAX_IM_BUFFERS : usize = 9 ;
128
+ } else if #[ cfg( feature = "max-im-buffers-8" ) ] {
129
+ /// Max number of IM buffers
130
+ const MAX_IM_BUFFERS : usize = 8 ;
131
+ } else if #[ cfg( feature = "max-im-buffers-7" ) ] {
132
+ /// Max number of IM buffers
133
+ const MAX_IM_BUFFERS : usize = 7 ;
134
+ } else if #[ cfg( feature = "max-im-buffers-6" ) ] {
135
+ /// Max number of IM buffers
136
+ const MAX_IM_BUFFERS : usize = 6 ;
137
+ } else if #[ cfg( feature = "max-im-buffers-5" ) ] {
138
+ /// Max number of IM buffers
139
+ const MAX_IM_BUFFERS : usize = 5 ;
140
+ } else if #[ cfg( feature = "max-im-buffers-4" ) ] {
141
+ /// Max number of IM buffers
142
+ const MAX_IM_BUFFERS : usize = 4 ;
143
+ } else {
144
+ /// Max number of IM buffers
145
+ const MAX_IM_BUFFERS : usize = 10 ;
146
+ }
147
+ }
148
+
149
+ cfg_if ! {
150
+ if #[ cfg( feature = "max-responders-32" ) ] {
151
+ /// Max number of concurrent responders
152
+ const MAX_RESPONDERS : usize = 32 ;
153
+ } else if #[ cfg( feature = "max-responders-16" ) ] {
154
+ /// Max number of concurrent responders
155
+ const MAX_RESPONDERS : usize = 16 ;
156
+ } else if #[ cfg( feature = "max-responders-8" ) ] {
157
+ /// Max number of concurrent responders
158
+ const MAX_RESPONDERS : usize = 8 ;
159
+ } else if #[ cfg( feature = "max-responders-7" ) ] {
160
+ /// Max number of concurrent responders
161
+ const MAX_RESPONDERS : usize = 7 ;
162
+ } else if #[ cfg( feature = "max-responders-6" ) ] {
163
+ /// Max number of concurrent responders
164
+ const MAX_RESPONDERS : usize = 6 ;
165
+ } else if #[ cfg( feature = "max-responders-5" ) ] {
166
+ /// Max number of concurrent responders
167
+ const MAX_RESPONDERS : usize = 5 ;
168
+ } else if #[ cfg( feature = "max-responders-4" ) ] {
169
+ /// Max number of concurrent responders
170
+ const MAX_RESPONDERS : usize = 4 ;
171
+ } else if #[ cfg( feature = "max-responders-3" ) ] {
172
+ /// Max number of concurrent responders
173
+ const MAX_RESPONDERS : usize = 3 ;
174
+ } else if #[ cfg( feature = "max-responders-2" ) ] {
175
+ /// Max number of concurrent responders
176
+ const MAX_RESPONDERS : usize = 2 ;
177
+ } else if #[ cfg( feature = "max-responders-1" ) ] {
178
+ /// Max number of concurrent responders
179
+ const MAX_RESPONDERS : usize = 1 ;
180
+ } else {
181
+ /// Max number of concurrent responders
182
+ const MAX_RESPONDERS : usize = 4 ;
183
+ }
184
+ }
185
+
77
186
const MAX_BUSY_RESPONDERS : usize = 2 ;
78
187
79
188
/// The `MatterStack` struct is the main entry point for the Matter stack.
0 commit comments