42
42
let ( mut kv, mut buf) = self . store . get ( ) . await ;
43
43
44
44
kv. remove ( MatterStackKey :: Fabrics as _ , & mut buf) . await ?;
45
+ kv. remove ( MatterStackKey :: BasicInfo as _ , & mut buf) . await ?;
45
46
kv. remove ( MatterStackKey :: Networks as _ , & mut buf) . await ?;
46
47
47
48
self . networks . reset ( ) ?;
62
63
} )
63
64
. await ?;
64
65
66
+ kv. load ( MatterStackKey :: BasicInfo as _ , & mut buf, |data| {
67
+ if let Some ( data) = data {
68
+ self . matter . load_basic_info ( data) ?;
69
+ }
70
+
71
+ Ok ( ( ) )
72
+ } )
73
+ . await ?;
74
+
65
75
kv. load ( MatterStackKey :: Networks as _ , & mut buf, |data| {
66
76
if let Some ( data) = data {
67
77
self . networks . load ( data) ?;
88
98
89
99
if self . matter . fabrics_changed ( ) {
90
100
kv. store ( MatterStackKey :: Fabrics as _ , & mut buf, |buf| {
91
- self . matter
92
- . store_fabrics ( buf)
93
- . map ( |data| data. map ( |data| data. len ( ) ) . unwrap_or ( 0 ) )
101
+ self . matter . store_fabrics ( buf)
102
+ } )
103
+ . await ?;
104
+ }
105
+
106
+ if self . matter . basic_info_changed ( ) {
107
+ kv. store ( MatterStackKey :: BasicInfo as _ , & mut buf, |buf| {
108
+ self . matter . store_basic_info ( buf)
94
109
} )
95
110
. await ?;
96
111
}
@@ -169,7 +184,7 @@ where
169
184
}
170
185
171
186
fn store ( & self , buf : & mut [ u8 ] ) -> Result < usize , Error > {
172
- WirelessNetworks :: store ( self , buf) . map ( |data| data . map ( |data| data . len ( ) ) . unwrap_or ( 0 ) )
187
+ WirelessNetworks :: store ( self , buf)
173
188
}
174
189
175
190
fn changed ( & self ) -> bool {
@@ -218,7 +233,8 @@ pub const VENDOR_KEYS_START: u16 = 0x1000;
218
233
#[ repr( u16 ) ]
219
234
pub enum MatterStackKey {
220
235
Fabrics = 0 ,
221
- Networks = 1 ,
236
+ BasicInfo = 1 ,
237
+ Networks = 2 ,
222
238
}
223
239
224
240
impl TryFrom < u16 > for MatterStackKey {
@@ -227,7 +243,8 @@ impl TryFrom<u16> for MatterStackKey {
227
243
fn try_from ( value : u16 ) -> Result < Self , Self :: Error > {
228
244
match value {
229
245
0 => Ok ( MatterStackKey :: Fabrics ) ,
230
- 1 => Ok ( MatterStackKey :: Networks ) ,
246
+ 1 => Ok ( MatterStackKey :: BasicInfo ) ,
247
+ 2 => Ok ( MatterStackKey :: Networks ) ,
231
248
_ => Err ( ( ) ) ,
232
249
}
233
250
}
@@ -237,6 +254,7 @@ impl Display for MatterStackKey {
237
254
fn fmt ( & self , f : & mut core:: fmt:: Formatter < ' _ > ) -> core:: fmt:: Result {
238
255
let s = match self {
239
256
MatterStackKey :: Fabrics => "fabrics" ,
257
+ MatterStackKey :: BasicInfo => "basic-info" ,
240
258
MatterStackKey :: Networks => "networks" ,
241
259
} ;
242
260
@@ -249,6 +267,7 @@ impl defmt::Format for MatterStackKey {
249
267
fn format ( & self , f : defmt:: Formatter < ' _ > ) {
250
268
let s = match self {
251
269
MatterStackKey :: Fabrics => "fabrics" ,
270
+ MatterStackKey :: BasicInfo => "basic-info" ,
252
271
MatterStackKey :: Networks => "networks" ,
253
272
} ;
254
273
0 commit comments