rust_macios/foundation/
ns_dictionary.rs

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