@@ -9,9 +9,9 @@ use crate::errors::{CapacityError, RescaleError, UnavailableMutError};
9
9
use crate :: ext:: { TryExtend , TryFromIterator } ;
10
10
use crate :: iter:: { Drain , DrainFilter , Iter , IterMut , Keys , Values , ValuesMut } ;
11
11
use crate :: occupied:: OccupiedEntry ;
12
- use crate :: raw:: { ArrayTable , RawEntryBuilder , RawTable , RawTableIter } ;
13
- use crate :: utils;
12
+ use crate :: raw:: { ArrayTable , FixedSizeTable , RawEntryBuilder , RawTable , RawTableIter } ;
14
13
use crate :: vacant:: VacantEntry ;
14
+ use crate :: { unreachable_unchecked, utils} ;
15
15
16
16
/// Default hasher for [`ArrayMapFacade`].
17
17
#[ cfg( feature = "ahash" ) ]
@@ -1056,6 +1056,25 @@ where
1056
1056
{
1057
1057
}
1058
1058
1059
+ impl < K , V , R , B , const N : usize > From < [ ( K , V ) ; N ] > for ArrayMapFacade < K , V , R , B >
1060
+ where
1061
+ K : Eq + Hash ,
1062
+ R : FixedSizeTable < ( K , V ) , N > + Default ,
1063
+ B : BuildHasher + Default ,
1064
+ {
1065
+ fn from ( value : [ ( K , V ) ; N ] ) -> Self {
1066
+ let mut result = Self :: with_build_hasher ( B :: default ( ) ) ;
1067
+
1068
+ for ( key, value) in value {
1069
+ if let Err ( error) = result. insert ( key, value) {
1070
+ unreachable_unchecked ! ( error) ;
1071
+ }
1072
+ }
1073
+
1074
+ result
1075
+ }
1076
+ }
1077
+
1059
1078
impl < K , V , R , B > TryFromIterator < ( K , V ) > for ArrayMapFacade < K , V , R , B >
1060
1079
where
1061
1080
K : Eq + Hash ,
0 commit comments