Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::iter::Iterator;
- #[derive(Clone, Copy, Debug)]
- struct Bruh {
- n: i32,
- }
- #[derive(Copy, Clone)]
- struct ArrOuter<'a> {
- board: &'a [Option<Bruh>; 8],
- index: usize,
- }
- impl<'a> Iterator for ArrOuter<'a> {
- type Item = &'a [Option<Bruh>];
- fn next(&mut self) -> Option<Self::Item> {
- self.index += 2;
- if self.index >= self.board.len() {
- self.index = 0;
- return None;
- }
- let r = &self.board[(self.index - 2)..(self.index + 2)];
- return Some(r);
- }
- }
- impl<'a> ArrOuter<'a> {
- fn new() -> Self {
- ArrOuter {
- board: &[Option::None; 8],
- index: 0,
- }
- }
- }
- struct Owner<'b> {
- inner: &'b ArrOuter<'b>,
- }
- impl<'b> Owner<'b> {
- fn new() -> Self {
- Owner {
- inner: &ArrOuter::new(), // is there a way?
- }
- }
- }
- fn main() {
- let mut arr_out = ArrOuter::new();
- for data in arr_out {
- println!("{:?}", &data);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement