Comment mettre en œuvre Itérateur et IntoIterator pour un simple struct?

Comment mettre en œuvre la Iterator et IntoIterator traits de la structure suivante?

struct Pixel {
    r: i8,
    g: i8,
    b: i8,
}

J'ai essayé les diverses formes de la suivante, sans succès.

impl IntoIterator for Pixel {
    type Item = i8;
    type IntoIter = Iterator<Item=Self::Item>;

    fn into_iter(self) -> Self::IntoIter {
        [&self.r, &self.b, &self.g].into_iter()
    }
}

Ce code me donne une erreur de compilation

error[E0277]: the trait bound `std::iter::Iterator<Item=i8> + 'static: std::marker::Sized` is not satisfied
 --> src/main.rs:7:6
  |
7 | impl IntoIterator for Pixel {
  |      ^^^^^^^^^^^^ the trait `std::marker::Sized` is not implemented for `std::iter::Iterator<Item=i8> + 'static`
  |
  = note: `std::iter::Iterator<Item=i8> + 'static` does not have a constant size known at compile-time
  = note: required by `std::iter::IntoIterator`