Size: a a a

Rust — русскоговорящее сообществo

2020 November 17

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Александр Мещеряков
Можно реализовать IntoIterator для ссылки на тип.
какой констрейнт я должен написать чтобы я мог сделать into_iter() по & ссылкЕ?
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
fn first<T : for<'a> IntoIterator>(xs : &T) -> Option<<T as std::iter::IntoIterator>::Item> {
   xs.into_iter().next()
}
источник

D

Denis in Rust — русскоговорящее сообществo
&T: IntoIterator?
источник

D

Denis in Rust — русскоговорящее сообществo
ну, for <'a> &'a I: IntoIterator
источник

D

Denis in Rust — русскоговорящее сообществo
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Denis
ну, for <'a> &'a I: IntoIterator
точняк, сяп
источник

D

Denis in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
точняк, сяп
yw
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
@gitkpp

use std::fmt::{self, Debug, Formatter, Write};

struct IteratorDebug<'a, T>(&'a T);

impl<'a, T> Debug for IteratorDebug<'a, T>
   where
       &'a T : IntoIterator,
       <&'a T as std::iter::IntoIterator>::Item : Debug {
   fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
       let mut iter = self.0.into_iter();
       f.write_char('[')?;
       if let Some(v) = iter.next() {
           write!(f, "{:?}", v)?;
       }
       for v in iter {
           write!(f, ", {:?}", v)?
       }
       f.write_char(']')?;
       Ok(())
   }
}

fn main() {
   let vec = vec![1,2,3,4];
   println!("Hello, world! {:?}", IteratorDebug(&vec));
}
источник

D

Denis in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
@gitkpp

use std::fmt::{self, Debug, Formatter, Write};

struct IteratorDebug<'a, T>(&'a T);

impl<'a, T> Debug for IteratorDebug<'a, T>
   where
       &'a T : IntoIterator,
       <&'a T as std::iter::IntoIterator>::Item : Debug {
   fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
       let mut iter = self.0.into_iter();
       f.write_char('[')?;
       if let Some(v) = iter.next() {
           write!(f, "{:?}", v)?;
       }
       for v in iter {
           write!(f, ", {:?}", v)?
       }
       f.write_char(']')?;
       Ok(())
   }
}

fn main() {
   let vec = vec![1,2,3,4];
   println!("Hello, world! {:?}", IteratorDebug(&vec));
}
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
))))
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
@gitkpp

use std::fmt::{self, Debug, Formatter, Write};

struct IteratorDebug<'a, T>(&'a T);

impl<'a, T> Debug for IteratorDebug<'a, T>
   where
       &'a T : IntoIterator,
       <&'a T as std::iter::IntoIterator>::Item : Debug {
   fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
       let mut iter = self.0.into_iter();
       f.write_char('[')?;
       if let Some(v) = iter.next() {
           write!(f, "{:?}", v)?;
       }
       for v in iter {
           write!(f, ", {:?}", v)?
       }
       f.write_char(']')?;
       Ok(())
   }
}

fn main() {
   let vec = vec![1,2,3,4];
   println!("Hello, world! {:?}", IteratorDebug(&vec));
}
Да это понятно)
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
так и знал что где-то есть
источник

АМ

Александр Мещеряков... in Rust — русскоговорящее сообществo
@Psilon

fn first<T>(xs: T) -> Option<<T as std::iter::IntoIterator>::Item>
where
   T: for<'a> IntoIterator,
{
   xs.into_iter().next()
}

fn main() {
   let a = vec![1, 2, 3];
   assert_eq!(first(&a), Some(&1));
}
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Александр Мещеряков
@Psilon

fn first<T>(xs: T) -> Option<<T as std::iter::IntoIterator>::Item>
where
   T: for<'a> IntoIterator,
{
   xs.into_iter().next()
}

fn main() {
   let a = vec![1, 2, 3];
   assert_eq!(first(&a), Some(&1));
}
не, это не подошло бы потому что сигнатуры должна была быть xs : &T. Но выше подсказали, спасибо
источник

АМ

Александр Мещеряков... in Rust — русскоговорящее сообществo
а, ок
источник

SS

Slava Sokolovsky in Rust — русскоговорящее сообществo
Никто не подскажет, как на github использовать dependabot, чтобы автоматически обновлять зависимости в репозитории? Увидел эту фичу у ncspot, тоже захотел
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
По-моему dependabot just works с растом
источник

SS

Slava Sokolovsky in Rust — русскоговорящее сообществo
Mikail Bagishov
По-моему dependabot just works с растом
Разобрался, надо было черзе сторонний сайт зайти и добавить репозиторий
Я думал, что на гитхабе есть встроенный функционал
источник

SS

Slava Sokolovsky in Rust — русскоговорящее сообществo
Теперь вопрос в другом. Можно ли как-то черзе карго заменить все звездочки в Cargo.toml на последнюю версию пакета?
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
cargo upgrade
источник