ΑZ
into_iter()
по & ссылкЕ?Size: a a a
ΑZ
into_iter()
по & ссылкЕ?ΑZ
fn first<T : for<'a> IntoIterator>(xs : &T) -> Option<<T as std::iter::IntoIterator>::Item> {
xs.into_iter().next()
}
D
&T: IntoIterator
?D
for <'a> &'a I: IntoIterator
ΑZ
for <'a> &'a I: IntoIterator
D
ΑZ
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
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
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));
}
АМ
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
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));
}
SS
MB
SS
SS
ΑZ