Commit 54fdeab
committed
Return concrete types from LiteMap iter methods
This closes #8054.
Considerations
--------------
* Not sure if it's ideal to just shove in map.rs the new iter types
* I considered using derive for the Debug impls, but opted for explicit
impl because the type parameter is S, while the thing being stored
is S::KeyValueIter, not S.
* The Clone impl is explicit for the same reasons
* No Copy impl, because that's against API guidelines for Iterators
* I parametrize over S, rather than S::KeyValueIter because I found it
prettier, it doesn't introduce new types in the signature.
* I use function pointer (fn(In) -> Out) over a type parameter so that
we don't have to explicit the closure type on output.
I think it might be possible to parametrize over the function, to avoid
using a function pointer, but it might be at the expanse of clarity:
pub fn values(&'a self) -> ValuesIter<
'a,
K,
V,
S::KeyValueIter,
impl Fn((&'a K, &'a V)) -> &'a V + Send + Sync + 'static,
> {
ValuesIter {
iter: self.values.lm_iter().map(|val| val.1),
}
}1 parent d4c6ddf commit 54fdeab
1 file changed
Lines changed: 110 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
901 | 901 | | |
902 | 902 | | |
903 | 903 | | |
904 | | - | |
| 904 | + | |
905 | 905 | | |
906 | 906 | | |
907 | 907 | | |
| |||
918 | 918 | | |
919 | 919 | | |
920 | 920 | | |
921 | | - | |
922 | | - | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
923 | 925 | | |
924 | 926 | | |
925 | 927 | | |
926 | | - | |
927 | | - | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
928 | 932 | | |
929 | 933 | | |
930 | 934 | | |
| |||
933 | 937 | | |
934 | 938 | | |
935 | 939 | | |
936 | | - | |
| 940 | + | |
937 | 941 | | |
938 | 942 | | |
939 | 943 | | |
| |||
1217 | 1221 | | |
1218 | 1222 | | |
1219 | 1223 | | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
1220 | 1324 | | |
1221 | 1325 | | |
1222 | 1326 | | |
| |||
0 commit comments