@@ -46,36 +46,26 @@ typedef struct kv_pairs_rx_t {
46
46
static z_condvar_t cond ;
47
47
static z_mutex_t mutex ;
48
48
49
- size_t kv_pairs_size (kv_pairs_tx_t * kvp ) {
50
- size_t ret = 0 ;
51
- for (size_t i = 0 ; i < kvp -> len ; i ++ ) {
52
- // Size fields
53
- ret += 2 * sizeof (uint32_t );
54
- // Data size
55
- ret += strlen (kvp -> data [i ].key ) + strlen (kvp -> data [i ].value );
56
- }
57
- return ret ;
58
- }
59
-
60
- _Bool create_attachment_iter (z_owned_bytes_t * kv_pair , void * context , size_t * curr_idx ) {
49
+ _Bool create_attachment_iter (z_owned_bytes_t * kv_pair , void * context ) {
61
50
kv_pairs_tx_t * kvs = (kv_pairs_tx_t * )(context );
62
51
z_owned_bytes_t k , v ;
63
52
if (kvs -> current_idx >= kvs -> len ) {
64
53
return false;
65
54
} else {
66
55
z_bytes_serialize_from_string (& k , kvs -> data [kvs -> current_idx ].key );
67
56
z_bytes_serialize_from_string (& v , kvs -> data [kvs -> current_idx ].value );
68
- zp_bytes_serialize_from_pair (kv_pair , z_move (k ), z_move (v ), curr_idx );
57
+ z_bytes_serialize_from_pair (kv_pair , z_move (k ), z_move (v ));
69
58
kvs -> current_idx ++ ;
70
59
return true;
71
60
}
72
61
}
73
62
74
63
void parse_attachment (kv_pairs_rx_t * kvp , const z_loaned_bytes_t * attachment ) {
75
- size_t curr_idx = 0 ;
76
- z_owned_bytes_t first , second ;
77
- while ((kvp -> current_idx < kvp -> len ) &&
78
- (zp_bytes_deserialize_into_pair (attachment , & first , & second , & curr_idx ) == 0 )) {
64
+ z_owned_bytes_t kv , first , second ;
65
+ z_bytes_iterator_t iter = z_bytes_get_iterator (attachment );
66
+
67
+ while (kvp -> current_idx < kvp -> len && z_bytes_iterator_next (& iter , & kv )) {
68
+ z_bytes_deserialize_into_pair (z_loan (kv ), & first , & second );
79
69
z_bytes_deserialize_into_string (z_loan (first ), & kvp -> data [kvp -> current_idx ].key );
80
70
z_bytes_deserialize_into_string (z_loan (second ), & kvp -> data [kvp -> current_idx ].value );
81
71
z_bytes_drop (& first );
@@ -220,7 +210,7 @@ int main(int argc, char **argv) {
220
210
kvs [0 ] = (kv_pair_t ){.key = "test_key" , .value = "test_value" };
221
211
kv_pairs_tx_t ctx = (kv_pairs_tx_t ){.data = kvs , .current_idx = 0 , .len = 1 };
222
212
z_owned_bytes_t attachment ;
223
- zp_bytes_serialize_from_iter (& attachment , create_attachment_iter , (void * )& ctx , kv_pairs_size ( & ctx ) );
213
+ z_bytes_serialize_from_iter (& attachment , create_attachment_iter , (void * )& ctx );
224
214
opts .attachment = z_move (attachment );
225
215
226
216
z_owned_closure_reply_t callback ;
0 commit comments