Advertisement
Guest User

Untitled

a guest
Aug 25th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. #[derive(Default, Debug)]
  2. struct SrcStruct { key_src: i32 }
  3. #[derive(Default, Debug)]
  4. struct DestStruct { key_dst: i32 }
  5.  
  6. impl Iterator for DestStruct {
  7. type Item = i32;
  8. fn next(&mut self) -> Option<Self::Item> {
  9. Some(self.key_dst)
  10. }
  11. }
  12.  
  13. fn mapper<'a, I>(src: I) -> impl Iterator<Item = DestStruct>
  14. where
  15. I: IntoIterator<Item = &'a SrcStruct>,
  16. {
  17. let objs = src
  18. .into_iter()
  19. .map(|val|{
  20. DestStruct { key_dst: val.key_src + 10 }
  21. });
  22. objs
  23. }
  24.  
  25. fn main() {
  26. let src = vec![
  27. &SrcStruct{key_src: 1},
  28. &SrcStruct{key_src: 2},
  29. &SrcStruct{key_src: 3},
  30. ];
  31. let dst = mapper(src);
  32. for i in dst {
  33. println!("dst: {:?}", i.key_dst);
  34. }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement