Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. struct Example {
  2. value: Vec<u8>,
  3. }
  4.  
  5. struct IteratorExample<'a> {
  6. value: &'a [u8],
  7. }
  8.  
  9. impl<'a> Iterator for IteratorExample<'a> {
  10. type Item = &'a [u8];
  11.  
  12. fn next(&mut self) -> Option<Self::Item> {
  13. // а такой код не работает
  14. Some(&self.value[..3])
  15.  
  16. // None
  17. }
  18. }
  19.  
  20. impl<'a> IntoIterator for &'a Example {
  21. type Item = &'a [u8];
  22. type IntoIter = IteratorExample<'a>;
  23.  
  24. fn into_iter(self) -> Self::IntoIter {
  25. IteratorExample {
  26. value: &self.value
  27. }
  28. }
  29.  
  30. }
  31.  
  32. fn main() {
  33. let der = Example {
  34. value: vec![0, 1, 2, 3, 4, 5, 6, 7],
  35. };
  36. let mut iter = der.into_iter();
  37. println!("{:?}", iter.next());
  38. println!("{:?}", iter.next());
  39. println!("{:?}", iter.next());
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement