Size: a a a

2019 December 06

M

MrSmith in // CIPHERNET
И то от крестов дай бог выдаю процентов 30 тяжко блять кодить когда знаешь только пол языка
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
И то от крестов дай бог выдаю процентов 30 тяжко блять кодить когда знаешь только пол языка
Когда весь язык знаешь, то тоже сложно
источник

ED

Eto Demerzel in // CIPHERNET
MrSmith
И то от крестов дай бог выдаю процентов 30 тяжко блять кодить когда знаешь только пол языка
В Rust пиздец тяжело :)
источник

G

Gymmasssorla in // CIPHERNET
Попробуй реализовать into_iter для массива, я не смог
источник

G

Gymmasssorla in // CIPHERNET
пздц какой-то
источник

ED

Eto Demerzel in // CIPHERNET
Gymmasssorla
Попробуй реализовать into_iter для массива, я не смог
Записал.
источник

M

MrSmith in // CIPHERNET
кстати таки печально что там нелзя мембарми сплит борровить надо создать пропузлу, я теперь понимаю нахуя макрософт сделал тюплами лайфтамы что бы сплит боровинг завезти из коробки но это не принципиально
источник

M

MrSmith in // CIPHERNET
Gymmasssorla
Попробуй реализовать into_iter для массива, я не смог
Смог
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
Смог
покажи
источник

ED

Eto Demerzel in // CIPHERNET
Какой-нибудь #[derive(IntoIter)]. Лол.
источник

G

Gymmasssorla in // CIPHERNET
Eto Demerzel
Какой-нибудь #[derive(IntoIter)]. Лол.
Всё намного сложнее
источник

O

Ofee in // CIPHERNET
Eto Demerzel
Не вижу любви к Rust!
Я читаю растобук вечерами. Считается?
источник

ED

Eto Demerzel in // CIPHERNET
Ofee
Я читаю растобук вечерами. Считается?
Да ты почти идеальный кот.
источник

M

MrSmith in // CIPHERNET
Gymmasssorla
покажи
pub struct IterStateHolder<'a, T> {
   con: &'a RingBuffer<T>,
   cur: usize,
}

impl<'a, T> Iterator for IterStateHolder<'a, T> {
   type Item = &'a T;

   fn next(&mut self) -> Option<Self::Item> {
       if self.con.internal_array().is_linearized() {
           if self.cur == self.con.last {
               return None;
           }

           unsafe {
               let mut ptr = self.con.buf.as_ptr().offset(self.cur as isize);
               RingBuffer::<T>::increment(0, self.con.last, &mut self.cur);
               return Some(&*ptr);
           }
       }

       

       return None;
   }
}

impl<'a, T> IntoIterator for  &'a RingBuffer<T> {
   type Item = &'a T;
   type IntoIter = IterStateHolder<'a, T>;

   fn into_iter(self) -> Self::IntoIter {
       return IterStateHolder{
           con: &self,
           cur: self.first,
       }
   }
}
источник

M

MrSmith in // CIPHERNET
Хастебин сломало
источник

M

MrSmith in // CIPHERNET
Пишу тут
источник

O

Ofee in // CIPHERNET
Eto Demerzel
> надо жесткий подрубить у меня папка там была

С порно?
Бесспорно, с порно
источник

ED

Eto Demerzel in // CIPHERNET
MrSmith
pub struct IterStateHolder<'a, T> {
   con: &'a RingBuffer<T>,
   cur: usize,
}

impl<'a, T> Iterator for IterStateHolder<'a, T> {
   type Item = &'a T;

   fn next(&mut self) -> Option<Self::Item> {
       if self.con.internal_array().is_linearized() {
           if self.cur == self.con.last {
               return None;
           }

           unsafe {
               let mut ptr = self.con.buf.as_ptr().offset(self.cur as isize);
               RingBuffer::<T>::increment(0, self.con.last, &mut self.cur);
               return Some(&*ptr);
           }
       }

       

       return None;
   }
}

impl<'a, T> IntoIterator for  &'a RingBuffer<T> {
   type Item = &'a T;
   type IntoIter = IterStateHolder<'a, T>;

   fn into_iter(self) -> Self::IntoIter {
       return IterStateHolder{
           con: &self,
           cur: self.first,
       }
   }
}
хоть бы так сделал
источник

M

MrSmith in // CIPHERNET
Ну тут пока тока для линейной части шас разъебусь с нелинейной
источник

M

MrSmith in // CIPHERNET
Крч там изи инто итер производит тебе итератор ты его имплементируешь в самом простом случае тебе нужен для линейных структур тока курсор собственно и ссылка на сам контейнер
источник