Advertisement
Guest User

Untitled

a guest
Sep 1st, 2022
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.01 KB | None | 0 0
  1. use std::iter::Iterator;
  2.  
  3. #[derive(Clone, Copy, Debug)]
  4. struct Bruh {
  5.     n: i32,
  6. }
  7.  
  8. #[derive(Copy, Clone)]
  9. struct ArrOuter<'a> {
  10.    board: &'a [Option<Bruh>; 8],
  11.     index: usize,
  12. }
  13.  
  14. impl<'a> Iterator for ArrOuter<'a> {
  15.     type Item = &'a [Option<Bruh>];
  16.  
  17.    fn next(&mut self) -> Option<Self::Item> {
  18.        self.index += 2;
  19.        if self.index >= self.board.len() {
  20.            self.index = 0;
  21.            return None;
  22.        }
  23.        let r = &self.board[(self.index - 2)..(self.index + 2)];
  24.        return Some(r);
  25.    }
  26. }
  27.  
  28. impl<'a> ArrOuter<'a> {
  29.    fn new() -> Self {
  30.        ArrOuter {
  31.            board: &[Option::None; 8],
  32.            index: 0,
  33.        }
  34.    }
  35. }
  36.  
  37. struct Owner<'b> {
  38.     inner: &'b ArrOuter<'b>,
  39. }
  40. impl<'b> Owner<'b> {
  41.     fn new() -> Self {
  42.         Owner {
  43.             inner: &ArrOuter::new(), // is there a way?
  44.         }
  45.     }
  46. }
  47. fn main() {
  48.     let mut arr_out = ArrOuter::new();
  49.  
  50.     for data in arr_out {
  51.         println!("{:?}", &data);
  52.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement