1use std::{borrow::Borrow, collections::HashMap, marker::PhantomData};
2
3use objc::{class, msg_send, sel, sel_impl};
4
5use crate::{
6 object,
7 objective_c_runtime::{
8 id,
9 traits::{FromId, PNSObject},
10 },
11};
12
13use super::{
14 INSDictionary, Int, Int16, Int32, Int8, NSArray, NSDictionary, NSNumber, NSString, UInt,
15 UInt16, UInt32, UInt8,
16};
17
18object! {
19 unsafe pub struct NSMutableDictionary<K,V> {
21 _key: PhantomData<K>,
22 _value: PhantomData<V>,
23 }
24}
25
26pub trait INSMutableDictionary<K, V>: INSDictionary<K, V> {
28 fn tm_dictionary_with_capacity(capacity: UInt) -> Self
33 where
34 Self: Sized + FromId,
35 {
36 unsafe { Self::from_id(msg_send![Self::m_class(), dictionaryWithCapacity: capacity]) }
37 }
38
39 fn im_set_object_for_key(&mut self, key: K, value: V)
44 where
45 K: PNSObject,
46 V: PNSObject,
47 {
48 unsafe { msg_send![self.m_self(), setObject: value forKey: key] }
49 }
50
51 fn im_set_object_forkeyed_superscript(&mut self, key: K, value: V)
53 where
54 K: Into<id>,
55 V: Into<id>,
56 {
57 unsafe { msg_send![self.m_self(), setObject: value forKeyedSubscript: key] }
58 }
59
60 fn im_set_value_for_key(&mut self, key: K, value: V)
62 where
63 K: Into<NSString>,
64 V: Into<id>,
65 {
66 unsafe { msg_send![self.m_self(), setValue: value forKey: key] }
67 }
68
69 fn im_add_entries_from_dictionary(&mut self, dictionary: NSDictionary<K, V>) {
71 unsafe { msg_send![self.m_self(), addEntriesFromDictionary: dictionary] }
72 }
73
74 fn im_set_dictionary(&mut self, dictionary: NSDictionary<K, V>) {
76 unsafe { msg_send![self.m_self(), setDictionary: dictionary] }
77 }
78
79 fn im_remove_object_for_key(&mut self, key: K)
84 where
85 K: Into<id>,
86 {
87 unsafe { msg_send![self.m_self(), removeObjectForKey: key.into()] }
88 }
89
90 fn im_remove_all_objects(&mut self) {
92 unsafe { msg_send![self.m_self(), removeAllObjects] }
93 }
94
95 fn im_remove_objects_for_keys(&mut self, keys: NSArray<K>)
97 where
98 K: PNSObject,
99 {
100 unsafe { msg_send![self.m_self(), removeObjectsForKeys: keys] }
101 }
102}
103
104impl<K, V> NSMutableDictionary<K, V> {
105 pub fn new() -> Self {
107 Self::m_init()
108 }
109
110 pub fn with_capacity(capacity: UInt) -> Self {
112 Self::tm_dictionary_with_capacity(capacity)
113 }
114
115 pub fn insert(&mut self, key: K, value: V)
117 where
118 K: PNSObject,
119 V: PNSObject,
120 {
121 self.im_set_object_for_key(key, value)
122 }
123}
124
125impl<K, V> INSDictionary<K, V> for NSMutableDictionary<K, V> {}
126
127impl<K, V> INSMutableDictionary<K, V> for NSMutableDictionary<K, V> {}
128
129impl<K, V> Default for NSMutableDictionary<K, V> {
130 fn default() -> Self {
131 Self::tm_dictionary_with_capacity(0)
132 }
133}
134
135impl Borrow<NSDictionary<NSString, NSString>> for NSMutableDictionary<NSString, NSString> {
136 fn borrow(&self) -> &NSDictionary<NSString, NSString> {
137 unsafe { msg_send![self.m_self(), dictionaryWithDictionary: self] }
138 }
139}
140
141impl<K, V> From<NSDictionary<K, V>> for NSMutableDictionary<K, V>
142where
143 K: PNSObject,
144 V: PNSObject,
145{
146 fn from(dictionary: NSDictionary<K, V>) -> Self {
147 unsafe { Self::from_id(dictionary.m_self()) }
148 }
149}
150
151impl<K, V> From<UInt> for NSMutableDictionary<K, V>
152where
153 K: PNSObject,
154 V: PNSObject,
155{
156 fn from(capacity: UInt) -> Self {
157 unsafe {
158 Self::from_id(msg_send![
159 class!(NSMutableDictionary),
160 dictionaryWithCapacity: capacity
161 ])
162 }
163 }
164}
165
166impl<K, V> From<HashMap<K, V>> for NSMutableDictionary<K, V>
167where
168 K: PNSObject,
169 V: PNSObject,
170{
171 fn from(map: HashMap<K, V>) -> NSMutableDictionary<K, V> {
172 let mut dictionary = NSMutableDictionary::<K, V>::default();
173
174 for (key, value) in map {
175 dictionary.im_set_object_for_key(key, value);
176 }
177
178 dictionary
179 }
180}
181
182impl<K> From<HashMap<K, &str>> for NSMutableDictionary<K, NSString>
183where
184 K: PNSObject,
185{
186 fn from(map: HashMap<K, &str>) -> NSMutableDictionary<K, NSString> {
187 let mut dictionary = NSMutableDictionary::<K, NSString>::default();
188
189 for (key, value) in map {
190 let value = NSString::from(value);
191 dictionary.im_set_object_for_key(key, value);
192 }
193
194 dictionary
195 }
196}
197
198impl<V> From<HashMap<&str, V>> for NSMutableDictionary<NSString, V>
199where
200 V: PNSObject,
201{
202 fn from(map: HashMap<&str, V>) -> NSMutableDictionary<NSString, V> {
203 let mut dictionary = NSMutableDictionary::<NSString, V>::default();
204
205 for (key, value) in map {
206 let key = NSString::from(key);
207 dictionary.im_set_object_for_key(key, value);
208 }
209
210 dictionary
211 }
212}
213
214impl From<HashMap<&str, &str>> for NSMutableDictionary<NSString, NSString> {
215 fn from(map: HashMap<&str, &str>) -> NSMutableDictionary<NSString, NSString> {
216 let mut dictionary = NSMutableDictionary::<NSString, NSString>::default();
217
218 for (key, value) in map {
219 let key = NSString::from(key);
220 let value = NSString::from(value);
221 dictionary.im_set_object_for_key(key, value);
222 }
223
224 dictionary
225 }
226}
227
228impl From<HashMap<&str, UInt>> for NSMutableDictionary<NSString, NSNumber> {
229 fn from(map: HashMap<&str, UInt>) -> NSMutableDictionary<NSString, NSNumber> {
230 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
231
232 for (key, value) in map {
233 let key = NSString::from(key);
234 let value = NSNumber::from(value);
235 dictionary.im_set_object_for_key(key, value);
236 }
237
238 dictionary
239 }
240}
241
242impl From<HashMap<&str, UInt8>> for NSMutableDictionary<NSString, NSNumber> {
243 fn from(map: HashMap<&str, UInt8>) -> NSMutableDictionary<NSString, NSNumber> {
244 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
245
246 for (key, value) in map {
247 let key = NSString::from(key);
248 let value = NSNumber::from(value);
249 dictionary.im_set_object_for_key(key, value);
250 }
251
252 dictionary
253 }
254}
255
256impl From<HashMap<&str, UInt16>> for NSMutableDictionary<NSString, NSNumber> {
257 fn from(map: HashMap<&str, UInt16>) -> NSMutableDictionary<NSString, NSNumber> {
258 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
259
260 for (key, value) in map {
261 let key = NSString::from(key);
262 let value = NSNumber::from(value);
263 dictionary.im_set_object_for_key(key, value);
264 }
265
266 dictionary
267 }
268}
269
270impl From<HashMap<&str, UInt32>> for NSMutableDictionary<NSString, NSNumber> {
271 fn from(map: HashMap<&str, UInt32>) -> NSMutableDictionary<NSString, NSNumber> {
272 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
273
274 for (key, value) in map {
275 let key = NSString::from(key);
276 let value = NSNumber::from(value);
277 dictionary.im_set_object_for_key(key, value);
278 }
279
280 dictionary
281 }
282}
283
284impl From<HashMap<&str, Int>> for NSMutableDictionary<NSString, NSNumber> {
285 fn from(map: HashMap<&str, Int>) -> NSMutableDictionary<NSString, NSNumber> {
286 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
287
288 for (key, value) in map {
289 let key = NSString::from(key);
290 let value = NSNumber::from(value);
291 dictionary.im_set_object_for_key(key, value);
292 }
293
294 dictionary
295 }
296}
297
298impl From<HashMap<&str, Int8>> for NSMutableDictionary<NSString, NSNumber> {
299 fn from(map: HashMap<&str, Int8>) -> NSMutableDictionary<NSString, NSNumber> {
300 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
301
302 for (key, value) in map {
303 let key = NSString::from(key);
304 let value = NSNumber::from(value);
305 dictionary.im_set_object_for_key(key, value);
306 }
307
308 dictionary
309 }
310}
311
312impl From<HashMap<&str, Int16>> for NSMutableDictionary<NSString, NSNumber> {
313 fn from(map: HashMap<&str, Int16>) -> NSMutableDictionary<NSString, NSNumber> {
314 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
315
316 for (key, value) in map {
317 let key = NSString::from(key);
318 let value = NSNumber::from(value);
319 dictionary.im_set_object_for_key(key, value);
320 }
321
322 dictionary
323 }
324}
325
326impl From<HashMap<&str, Int32>> for NSMutableDictionary<NSString, NSNumber> {
327 fn from(map: HashMap<&str, Int32>) -> NSMutableDictionary<NSString, NSNumber> {
328 let mut dictionary = NSMutableDictionary::<NSString, NSNumber>::default();
329
330 for (key, value) in map {
331 let key = NSString::from(key);
332 let value = NSNumber::from(value);
333 dictionary.im_set_object_for_key(key, value);
334 }
335
336 dictionary
337 }
338}
339
340impl From<HashMap<UInt, &str>> for NSMutableDictionary<NSNumber, NSString> {
341 fn from(map: HashMap<UInt, &str>) -> NSMutableDictionary<NSNumber, NSString> {
342 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
343
344 for (key, value) in map {
345 let key = NSNumber::from(key);
346 let value = NSString::from(value);
347 dictionary.im_set_object_for_key(key, value);
348 }
349
350 dictionary
351 }
352}
353
354impl From<HashMap<UInt, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
355 fn from(map: HashMap<UInt, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
356 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
357
358 for (key, value) in map {
359 let key = NSNumber::from(key);
360 let value = NSNumber::from(value);
361 dictionary.im_set_object_for_key(key, value);
362 }
363
364 dictionary
365 }
366}
367
368impl From<HashMap<UInt, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
369 fn from(map: HashMap<UInt, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
370 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
371
372 for (key, value) in map {
373 let key = NSNumber::from(key);
374 let value = NSNumber::from(value);
375 dictionary.im_set_object_for_key(key, value);
376 }
377
378 dictionary
379 }
380}
381
382impl From<HashMap<UInt, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
383 fn from(map: HashMap<UInt, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
384 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
385
386 for (key, value) in map {
387 let key = NSNumber::from(key);
388 let value = NSNumber::from(value);
389 dictionary.im_set_object_for_key(key, value);
390 }
391
392 dictionary
393 }
394}
395
396impl From<HashMap<UInt, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
397 fn from(map: HashMap<UInt, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
398 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
399
400 for (key, value) in map {
401 let key = NSNumber::from(key);
402 let value = NSNumber::from(value);
403 dictionary.im_set_object_for_key(key, value);
404 }
405
406 dictionary
407 }
408}
409
410impl From<HashMap<UInt, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
411 fn from(map: HashMap<UInt, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
412 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
413
414 for (key, value) in map {
415 let key = NSNumber::from(key);
416 let value = NSNumber::from(value);
417 dictionary.im_set_object_for_key(key, value);
418 }
419
420 dictionary
421 }
422}
423
424impl From<HashMap<UInt, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
425 fn from(map: HashMap<UInt, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
426 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
427
428 for (key, value) in map {
429 let key = NSNumber::from(key);
430 let value = NSNumber::from(value);
431 dictionary.im_set_object_for_key(key, value);
432 }
433
434 dictionary
435 }
436}
437
438impl From<HashMap<UInt, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
439 fn from(map: HashMap<UInt, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
440 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
441
442 for (key, value) in map {
443 let key = NSNumber::from(key);
444 let value = NSNumber::from(value);
445 dictionary.im_set_object_for_key(key, value);
446 }
447
448 dictionary
449 }
450}
451
452impl From<HashMap<UInt, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
453 fn from(map: HashMap<UInt, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
454 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
455
456 for (key, value) in map {
457 let key = NSNumber::from(key);
458 let value = NSNumber::from(value);
459 dictionary.im_set_object_for_key(key, value);
460 }
461
462 dictionary
463 }
464}
465
466impl From<HashMap<UInt8, &str>> for NSMutableDictionary<NSNumber, NSString> {
467 fn from(map: HashMap<UInt8, &str>) -> NSMutableDictionary<NSNumber, NSString> {
468 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
469
470 for (key, value) in map {
471 let key = NSNumber::from(key);
472 let value = NSString::from(value);
473 dictionary.im_set_object_for_key(key, value);
474 }
475
476 dictionary
477 }
478}
479
480impl From<HashMap<UInt8, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
481 fn from(map: HashMap<UInt8, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
482 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
483
484 for (key, value) in map {
485 let key = NSNumber::from(key);
486 let value = NSNumber::from(value);
487 dictionary.im_set_object_for_key(key, value);
488 }
489
490 dictionary
491 }
492}
493
494impl From<HashMap<UInt8, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
495 fn from(map: HashMap<UInt8, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
496 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
497
498 for (key, value) in map {
499 let key = NSNumber::from(key);
500 let value = NSNumber::from(value);
501 dictionary.im_set_object_for_key(key, value);
502 }
503
504 dictionary
505 }
506}
507
508impl From<HashMap<UInt8, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
509 fn from(map: HashMap<UInt8, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
510 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
511
512 for (key, value) in map {
513 let key = NSNumber::from(key);
514 let value = NSNumber::from(value);
515 dictionary.im_set_object_for_key(key, value);
516 }
517
518 dictionary
519 }
520}
521
522impl From<HashMap<UInt8, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
523 fn from(map: HashMap<UInt8, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
524 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
525
526 for (key, value) in map {
527 let key = NSNumber::from(key);
528 let value = NSNumber::from(value);
529 dictionary.im_set_object_for_key(key, value);
530 }
531
532 dictionary
533 }
534}
535
536impl From<HashMap<UInt8, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
537 fn from(map: HashMap<UInt8, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
538 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
539
540 for (key, value) in map {
541 let key = NSNumber::from(key);
542 let value = NSNumber::from(value);
543 dictionary.im_set_object_for_key(key, value);
544 }
545
546 dictionary
547 }
548}
549
550impl From<HashMap<UInt8, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
551 fn from(map: HashMap<UInt8, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
552 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
553
554 for (key, value) in map {
555 let key = NSNumber::from(key);
556 let value = NSNumber::from(value);
557 dictionary.im_set_object_for_key(key, value);
558 }
559
560 dictionary
561 }
562}
563
564impl From<HashMap<UInt8, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
565 fn from(map: HashMap<UInt8, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
566 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
567
568 for (key, value) in map {
569 let key = NSNumber::from(key);
570 let value = NSNumber::from(value);
571 dictionary.im_set_object_for_key(key, value);
572 }
573
574 dictionary
575 }
576}
577
578impl From<HashMap<UInt8, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
579 fn from(map: HashMap<UInt8, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
580 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
581
582 for (key, value) in map {
583 let key = NSNumber::from(key);
584 let value = NSNumber::from(value);
585 dictionary.im_set_object_for_key(key, value);
586 }
587
588 dictionary
589 }
590}
591
592impl From<HashMap<UInt16, &str>> for NSMutableDictionary<NSNumber, NSString> {
593 fn from(map: HashMap<UInt16, &str>) -> NSMutableDictionary<NSNumber, NSString> {
594 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
595
596 for (key, value) in map {
597 let key = NSNumber::from(key);
598 let value = NSString::from(value);
599 dictionary.im_set_object_for_key(key, value);
600 }
601
602 dictionary
603 }
604}
605
606impl From<HashMap<UInt16, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
607 fn from(map: HashMap<UInt16, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
608 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
609
610 for (key, value) in map {
611 let key = NSNumber::from(key);
612 let value = NSNumber::from(value);
613 dictionary.im_set_object_for_key(key, value);
614 }
615
616 dictionary
617 }
618}
619
620impl From<HashMap<UInt16, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
621 fn from(map: HashMap<UInt16, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
622 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
623
624 for (key, value) in map {
625 let key = NSNumber::from(key);
626 let value = NSNumber::from(value);
627 dictionary.im_set_object_for_key(key, value);
628 }
629
630 dictionary
631 }
632}
633
634impl From<HashMap<UInt16, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
635 fn from(map: HashMap<UInt16, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
636 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
637
638 for (key, value) in map {
639 let key = NSNumber::from(key);
640 let value = NSNumber::from(value);
641 dictionary.im_set_object_for_key(key, value);
642 }
643
644 dictionary
645 }
646}
647
648impl From<HashMap<UInt16, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
649 fn from(map: HashMap<UInt16, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
650 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
651
652 for (key, value) in map {
653 let key = NSNumber::from(key);
654 let value = NSNumber::from(value);
655 dictionary.im_set_object_for_key(key, value);
656 }
657
658 dictionary
659 }
660}
661
662impl From<HashMap<UInt16, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
663 fn from(map: HashMap<UInt16, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
664 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
665
666 for (key, value) in map {
667 let key = NSNumber::from(key);
668 let value = NSNumber::from(value);
669 dictionary.im_set_object_for_key(key, value);
670 }
671
672 dictionary
673 }
674}
675
676impl From<HashMap<UInt16, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
677 fn from(map: HashMap<UInt16, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
678 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
679
680 for (key, value) in map {
681 let key = NSNumber::from(key);
682 let value = NSNumber::from(value);
683 dictionary.im_set_object_for_key(key, value);
684 }
685
686 dictionary
687 }
688}
689
690impl From<HashMap<UInt16, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
691 fn from(map: HashMap<UInt16, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
692 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
693
694 for (key, value) in map {
695 let key = NSNumber::from(key);
696 let value = NSNumber::from(value);
697 dictionary.im_set_object_for_key(key, value);
698 }
699
700 dictionary
701 }
702}
703
704impl From<HashMap<UInt16, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
705 fn from(map: HashMap<UInt16, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
706 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
707
708 for (key, value) in map {
709 let key = NSNumber::from(key);
710 let value = NSNumber::from(value);
711 dictionary.im_set_object_for_key(key, value);
712 }
713
714 dictionary
715 }
716}
717
718impl From<HashMap<UInt32, &str>> for NSMutableDictionary<NSNumber, NSString> {
719 fn from(map: HashMap<UInt32, &str>) -> NSMutableDictionary<NSNumber, NSString> {
720 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
721
722 for (key, value) in map {
723 let key = NSNumber::from(key);
724 let value = NSString::from(value);
725 dictionary.im_set_object_for_key(key, value);
726 }
727
728 dictionary
729 }
730}
731
732impl From<HashMap<UInt32, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
733 fn from(map: HashMap<UInt32, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
734 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
735
736 for (key, value) in map {
737 let key = NSNumber::from(key);
738 let value = NSNumber::from(value);
739 dictionary.im_set_object_for_key(key, value);
740 }
741
742 dictionary
743 }
744}
745
746impl From<HashMap<UInt32, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
747 fn from(map: HashMap<UInt32, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
748 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
749
750 for (key, value) in map {
751 let key = NSNumber::from(key);
752 let value = NSNumber::from(value);
753 dictionary.im_set_object_for_key(key, value);
754 }
755
756 dictionary
757 }
758}
759
760impl From<HashMap<UInt32, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
761 fn from(map: HashMap<UInt32, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
762 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
763
764 for (key, value) in map {
765 let key = NSNumber::from(key);
766 let value = NSNumber::from(value);
767 dictionary.im_set_object_for_key(key, value);
768 }
769
770 dictionary
771 }
772}
773
774impl From<HashMap<UInt32, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
775 fn from(map: HashMap<UInt32, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
776 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
777
778 for (key, value) in map {
779 let key = NSNumber::from(key);
780 let value = NSNumber::from(value);
781 dictionary.im_set_object_for_key(key, value);
782 }
783
784 dictionary
785 }
786}
787
788impl From<HashMap<UInt32, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
789 fn from(map: HashMap<UInt32, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
790 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
791
792 for (key, value) in map {
793 let key = NSNumber::from(key);
794 let value = NSNumber::from(value);
795 dictionary.im_set_object_for_key(key, value);
796 }
797
798 dictionary
799 }
800}
801
802impl From<HashMap<UInt32, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
803 fn from(map: HashMap<UInt32, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
804 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
805
806 for (key, value) in map {
807 let key = NSNumber::from(key);
808 let value = NSNumber::from(value);
809 dictionary.im_set_object_for_key(key, value);
810 }
811
812 dictionary
813 }
814}
815
816impl From<HashMap<UInt32, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
817 fn from(map: HashMap<UInt32, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
818 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
819
820 for (key, value) in map {
821 let key = NSNumber::from(key);
822 let value = NSNumber::from(value);
823 dictionary.im_set_object_for_key(key, value);
824 }
825
826 dictionary
827 }
828}
829
830impl From<HashMap<UInt32, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
831 fn from(map: HashMap<UInt32, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
832 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
833
834 for (key, value) in map {
835 let key = NSNumber::from(key);
836 let value = NSNumber::from(value);
837 dictionary.im_set_object_for_key(key, value);
838 }
839
840 dictionary
841 }
842}
843
844impl From<HashMap<Int, &str>> for NSMutableDictionary<NSNumber, NSString> {
845 fn from(map: HashMap<Int, &str>) -> NSMutableDictionary<NSNumber, NSString> {
846 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
847
848 for (key, value) in map {
849 let key = NSNumber::from(key);
850 let value = NSString::from(value);
851 dictionary.im_set_object_for_key(key, value);
852 }
853
854 dictionary
855 }
856}
857
858impl From<HashMap<Int, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
859 fn from(map: HashMap<Int, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
860 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
861
862 for (key, value) in map {
863 let key = NSNumber::from(key);
864 let value = NSNumber::from(value);
865 dictionary.im_set_object_for_key(key, value);
866 }
867
868 dictionary
869 }
870}
871
872impl From<HashMap<Int, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
873 fn from(map: HashMap<Int, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
874 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
875
876 for (key, value) in map {
877 let key = NSNumber::from(key);
878 let value = NSNumber::from(value);
879 dictionary.im_set_object_for_key(key, value);
880 }
881
882 dictionary
883 }
884}
885
886impl From<HashMap<Int, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
887 fn from(map: HashMap<Int, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
888 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
889
890 for (key, value) in map {
891 let key = NSNumber::from(key);
892 let value = NSNumber::from(value);
893 dictionary.im_set_object_for_key(key, value);
894 }
895
896 dictionary
897 }
898}
899
900impl From<HashMap<Int, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
901 fn from(map: HashMap<Int, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
902 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
903
904 for (key, value) in map {
905 let key = NSNumber::from(key);
906 let value = NSNumber::from(value);
907 dictionary.im_set_object_for_key(key, value);
908 }
909
910 dictionary
911 }
912}
913
914impl From<HashMap<Int, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
915 fn from(map: HashMap<Int, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
916 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
917
918 for (key, value) in map {
919 let key = NSNumber::from(key);
920 let value = NSNumber::from(value);
921 dictionary.im_set_object_for_key(key, value);
922 }
923
924 dictionary
925 }
926}
927
928impl From<HashMap<Int, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
929 fn from(map: HashMap<Int, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
930 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
931
932 for (key, value) in map {
933 let key = NSNumber::from(key);
934 let value = NSNumber::from(value);
935 dictionary.im_set_object_for_key(key, value);
936 }
937
938 dictionary
939 }
940}
941
942impl From<HashMap<Int, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
943 fn from(map: HashMap<Int, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
944 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
945
946 for (key, value) in map {
947 let key = NSNumber::from(key);
948 let value = NSNumber::from(value);
949 dictionary.im_set_object_for_key(key, value);
950 }
951
952 dictionary
953 }
954}
955
956impl From<HashMap<Int, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
957 fn from(map: HashMap<Int, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
958 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
959
960 for (key, value) in map {
961 let key = NSNumber::from(key);
962 let value = NSNumber::from(value);
963 dictionary.im_set_object_for_key(key, value);
964 }
965
966 dictionary
967 }
968}
969
970impl From<HashMap<Int8, &str>> for NSMutableDictionary<NSNumber, NSString> {
971 fn from(map: HashMap<Int8, &str>) -> NSMutableDictionary<NSNumber, NSString> {
972 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
973
974 for (key, value) in map {
975 let key = NSNumber::from(key);
976 let value = NSString::from(value);
977 dictionary.im_set_object_for_key(key, value);
978 }
979
980 dictionary
981 }
982}
983
984impl From<HashMap<Int8, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
985 fn from(map: HashMap<Int8, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
986 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
987
988 for (key, value) in map {
989 let key = NSNumber::from(key);
990 let value = NSNumber::from(value);
991 dictionary.im_set_object_for_key(key, value);
992 }
993
994 dictionary
995 }
996}
997
998impl From<HashMap<Int8, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
999 fn from(map: HashMap<Int8, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1000 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1001
1002 for (key, value) in map {
1003 let key = NSNumber::from(key);
1004 let value = NSNumber::from(value);
1005 dictionary.im_set_object_for_key(key, value);
1006 }
1007
1008 dictionary
1009 }
1010}
1011
1012impl From<HashMap<Int8, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
1013 fn from(map: HashMap<Int8, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1014 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1015
1016 for (key, value) in map {
1017 let key = NSNumber::from(key);
1018 let value = NSNumber::from(value);
1019 dictionary.im_set_object_for_key(key, value);
1020 }
1021
1022 dictionary
1023 }
1024}
1025
1026impl From<HashMap<Int8, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
1027 fn from(map: HashMap<Int8, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1028 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1029
1030 for (key, value) in map {
1031 let key = NSNumber::from(key);
1032 let value = NSNumber::from(value);
1033 dictionary.im_set_object_for_key(key, value);
1034 }
1035
1036 dictionary
1037 }
1038}
1039
1040impl From<HashMap<Int8, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
1041 fn from(map: HashMap<Int8, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
1042 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1043
1044 for (key, value) in map {
1045 let key = NSNumber::from(key);
1046 let value = NSNumber::from(value);
1047 dictionary.im_set_object_for_key(key, value);
1048 }
1049
1050 dictionary
1051 }
1052}
1053
1054impl From<HashMap<Int8, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
1055 fn from(map: HashMap<Int8, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1056 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1057
1058 for (key, value) in map {
1059 let key = NSNumber::from(key);
1060 let value = NSNumber::from(value);
1061 dictionary.im_set_object_for_key(key, value);
1062 }
1063
1064 dictionary
1065 }
1066}
1067
1068impl From<HashMap<Int8, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
1069 fn from(map: HashMap<Int8, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1070 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1071
1072 for (key, value) in map {
1073 let key = NSNumber::from(key);
1074 let value = NSNumber::from(value);
1075 dictionary.im_set_object_for_key(key, value);
1076 }
1077
1078 dictionary
1079 }
1080}
1081
1082impl From<HashMap<Int8, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
1083 fn from(map: HashMap<Int8, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1084 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1085
1086 for (key, value) in map {
1087 let key = NSNumber::from(key);
1088 let value = NSNumber::from(value);
1089 dictionary.im_set_object_for_key(key, value);
1090 }
1091
1092 dictionary
1093 }
1094}
1095
1096impl From<HashMap<Int16, &str>> for NSMutableDictionary<NSNumber, NSString> {
1097 fn from(map: HashMap<Int16, &str>) -> NSMutableDictionary<NSNumber, NSString> {
1098 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
1099
1100 for (key, value) in map {
1101 let key = NSNumber::from(key);
1102 let value = NSString::from(value);
1103 dictionary.im_set_object_for_key(key, value);
1104 }
1105
1106 dictionary
1107 }
1108}
1109
1110impl From<HashMap<Int16, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
1111 fn from(map: HashMap<Int16, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
1112 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1113
1114 for (key, value) in map {
1115 let key = NSNumber::from(key);
1116 let value = NSNumber::from(value);
1117 dictionary.im_set_object_for_key(key, value);
1118 }
1119
1120 dictionary
1121 }
1122}
1123
1124impl From<HashMap<Int16, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
1125 fn from(map: HashMap<Int16, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1126 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1127
1128 for (key, value) in map {
1129 let key = NSNumber::from(key);
1130 let value = NSNumber::from(value);
1131 dictionary.im_set_object_for_key(key, value);
1132 }
1133
1134 dictionary
1135 }
1136}
1137
1138impl From<HashMap<Int16, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
1139 fn from(map: HashMap<Int16, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1140 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1141
1142 for (key, value) in map {
1143 let key = NSNumber::from(key);
1144 let value = NSNumber::from(value);
1145 dictionary.im_set_object_for_key(key, value);
1146 }
1147
1148 dictionary
1149 }
1150}
1151
1152impl From<HashMap<Int16, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
1153 fn from(map: HashMap<Int16, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1154 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1155
1156 for (key, value) in map {
1157 let key = NSNumber::from(key);
1158 let value = NSNumber::from(value);
1159 dictionary.im_set_object_for_key(key, value);
1160 }
1161
1162 dictionary
1163 }
1164}
1165
1166impl From<HashMap<Int16, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
1167 fn from(map: HashMap<Int16, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
1168 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1169
1170 for (key, value) in map {
1171 let key = NSNumber::from(key);
1172 let value = NSNumber::from(value);
1173 dictionary.im_set_object_for_key(key, value);
1174 }
1175
1176 dictionary
1177 }
1178}
1179
1180impl From<HashMap<Int16, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
1181 fn from(map: HashMap<Int16, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1182 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1183
1184 for (key, value) in map {
1185 let key = NSNumber::from(key);
1186 let value = NSNumber::from(value);
1187 dictionary.im_set_object_for_key(key, value);
1188 }
1189
1190 dictionary
1191 }
1192}
1193
1194impl From<HashMap<Int16, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
1195 fn from(map: HashMap<Int16, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1196 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1197
1198 for (key, value) in map {
1199 let key = NSNumber::from(key);
1200 let value = NSNumber::from(value);
1201 dictionary.im_set_object_for_key(key, value);
1202 }
1203
1204 dictionary
1205 }
1206}
1207
1208impl From<HashMap<Int16, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
1209 fn from(map: HashMap<Int16, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1210 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1211
1212 for (key, value) in map {
1213 let key = NSNumber::from(key);
1214 let value = NSNumber::from(value);
1215 dictionary.im_set_object_for_key(key, value);
1216 }
1217
1218 dictionary
1219 }
1220}
1221
1222impl From<HashMap<Int32, &str>> for NSMutableDictionary<NSNumber, NSString> {
1223 fn from(map: HashMap<Int32, &str>) -> NSMutableDictionary<NSNumber, NSString> {
1224 let mut dictionary = NSMutableDictionary::<NSNumber, NSString>::default();
1225
1226 for (key, value) in map {
1227 let key = NSNumber::from(key);
1228 let value = NSString::from(value);
1229 dictionary.im_set_object_for_key(key, value);
1230 }
1231
1232 dictionary
1233 }
1234}
1235
1236impl From<HashMap<Int32, UInt>> for NSMutableDictionary<NSNumber, NSNumber> {
1237 fn from(map: HashMap<Int32, UInt>) -> NSMutableDictionary<NSNumber, NSNumber> {
1238 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1239
1240 for (key, value) in map {
1241 let key = NSNumber::from(key);
1242 let value = NSNumber::from(value);
1243 dictionary.im_set_object_for_key(key, value);
1244 }
1245
1246 dictionary
1247 }
1248}
1249
1250impl From<HashMap<Int32, UInt8>> for NSMutableDictionary<NSNumber, NSNumber> {
1251 fn from(map: HashMap<Int32, UInt8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1252 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1253
1254 for (key, value) in map {
1255 let key = NSNumber::from(key);
1256 let value = NSNumber::from(value);
1257 dictionary.im_set_object_for_key(key, value);
1258 }
1259
1260 dictionary
1261 }
1262}
1263
1264impl From<HashMap<Int32, UInt16>> for NSMutableDictionary<NSNumber, NSNumber> {
1265 fn from(map: HashMap<Int32, UInt16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1266 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1267
1268 for (key, value) in map {
1269 let key = NSNumber::from(key);
1270 let value = NSNumber::from(value);
1271 dictionary.im_set_object_for_key(key, value);
1272 }
1273
1274 dictionary
1275 }
1276}
1277
1278impl From<HashMap<Int32, UInt32>> for NSMutableDictionary<NSNumber, NSNumber> {
1279 fn from(map: HashMap<Int32, UInt32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1280 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1281
1282 for (key, value) in map {
1283 let key = NSNumber::from(key);
1284 let value = NSNumber::from(value);
1285 dictionary.im_set_object_for_key(key, value);
1286 }
1287
1288 dictionary
1289 }
1290}
1291
1292impl From<HashMap<Int32, Int>> for NSMutableDictionary<NSNumber, NSNumber> {
1293 fn from(map: HashMap<Int32, Int>) -> NSMutableDictionary<NSNumber, NSNumber> {
1294 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1295
1296 for (key, value) in map {
1297 let key = NSNumber::from(key);
1298 let value = NSNumber::from(value);
1299 dictionary.im_set_object_for_key(key, value);
1300 }
1301
1302 dictionary
1303 }
1304}
1305
1306impl From<HashMap<Int32, Int8>> for NSMutableDictionary<NSNumber, NSNumber> {
1307 fn from(map: HashMap<Int32, Int8>) -> NSMutableDictionary<NSNumber, NSNumber> {
1308 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1309
1310 for (key, value) in map {
1311 let key = NSNumber::from(key);
1312 let value = NSNumber::from(value);
1313 dictionary.im_set_object_for_key(key, value);
1314 }
1315
1316 dictionary
1317 }
1318}
1319
1320impl From<HashMap<Int32, Int16>> for NSMutableDictionary<NSNumber, NSNumber> {
1321 fn from(map: HashMap<Int32, Int16>) -> NSMutableDictionary<NSNumber, NSNumber> {
1322 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1323
1324 for (key, value) in map {
1325 let key = NSNumber::from(key);
1326 let value = NSNumber::from(value);
1327 dictionary.im_set_object_for_key(key, value);
1328 }
1329
1330 dictionary
1331 }
1332}
1333
1334impl From<HashMap<Int32, Int32>> for NSMutableDictionary<NSNumber, NSNumber> {
1335 fn from(map: HashMap<Int32, Int32>) -> NSMutableDictionary<NSNumber, NSNumber> {
1336 let mut dictionary = NSMutableDictionary::<NSNumber, NSNumber>::default();
1337
1338 for (key, value) in map {
1339 let key = NSNumber::from(key);
1340 let value = NSNumber::from(value);
1341 dictionary.im_set_object_for_key(key, value);
1342 }
1343
1344 dictionary
1345 }
1346}