Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Default, Debug)]
- struct SrcStruct { key_src: i32 }
- #[derive(Default, Debug)]
- struct DestStruct { key_dst: i32 }
- impl Iterator for DestStruct {
- type Item = i32;
- fn next(&mut self) -> Option<Self::Item> {
- Some(self.key_dst)
- }
- }
- fn mapper<'a, I>(src: I) -> impl Iterator<Item = DestStruct>
- where
- I: IntoIterator<Item = &'a SrcStruct>,
- {
- let objs = src
- .into_iter()
- .map(|val|{
- DestStruct { key_dst: val.key_src + 10 }
- });
- objs
- }
- fn main() {
- let src = vec![
- &SrcStruct{key_src: 1},
- &SrcStruct{key_src: 2},
- &SrcStruct{key_src: 3},
- ];
- let dst = mapper(src);
- for i in dst {
- println!("dst: {:?}", i.key_dst);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement