message: Add `ExactSizeIterator` implementations to buffer structs.
  `Pixels`, `PixelsMut`, `EnumeratePixels` and `EnumeratePixelsMut` are
  all elligible to have `ExactsizeIterator` implementations added because
  the underlying iterator (a `Chunks`) implements `ExactSizeIterator`.
diff: @@ -119,6 +119,13 @@ impl<'a, P: Pixel + 'a> Iterator for Pixels<'a, P> where P::Subpixel: 'a {
  }
  }
  +impl<'a, P: Pixel + 'a> ExactSizeIterator for Pixels<'a, P> where P::Subpixel: 'a {
  + fn len(&self) -> usize {
  + self.chunks.len()
  + }
  +}
  +
  +
  impl<'a, P: Pixel + 'a> DoubleEndedIterator for Pixels<'a, P> where P::Subpixel: 'a {
  #[inline(always)]
  @@ -145,6 +152,12 @@ impl<'a, P: Pixel + 'a> Iterator for PixelsMut<'a, P> where P::Subpixel: 'a {
  }
  }
  +impl <'a, P: Pixel + 'a> ExactSizeIterator for PixelsMut<'a, P> where P::Subpixel: 'a {
  + fn len(&self) -> usize{
  + self.chunks.len()
  + }
  +}
  +
  impl<'a, P: Pixel + 'a> DoubleEndedIterator for PixelsMut<'a, P> where P::Subpixel: 'a {
  #[inline(always)]
  fn next_back(&mut self) -> Option<&'a mut P> {
  @@ -180,6 +193,12 @@ impl<'a, P: Pixel + 'a> Iterator for EnumeratePixels<'a, P> where P::Subpixel: '
  }
  }
  +impl <'a, P: Pixel + 'a> ExactSizeIterator for EnumeratePixels<'a, P> where P::Subpixel: 'a {
  + fn len(&self) -> usize{
  + self.pixels.len()
  + }
  +}
  +
  /// Enumerate the pixels of an image.
  pub struct EnumeratePixelsMut<'a, P: Pixel + 'a> where <P as Pixel>::Subpixel: 'a {
  pixels: PixelsMut<'a, P>,
  @@ -206,6 +225,12 @@ impl<'a, P: Pixel + 'a> Iterator for EnumeratePixelsMut<'a, P> where P::Subpixel
  }
  }
  +impl <'a, P: Pixel + 'a> ExactSizeIterator for EnumeratePixelsMut<'a, P> where P::Subpixel: 'a {
  + fn len(&self) -> usize{
  + self.pixels.len()
  + }
  +}
  +
  /// Generic image buffer
  #[derive(Debug)]
  pub struct ImageBuffer<P: Pixel, Container> {
  