rust/integral-geometry/src/lib.rs
changeset 14133 a65b60f36b96
parent 14131 c416d32764b7
child 14134 09f62bb046ef
equal deleted inserted replaced
14132:95360f56db38 14133:a65b60f36b96
   462 
   462 
   463     pub fn iter<'a>(&'a self) -> impl Iterator<Item = &Point> + 'a {
   463     pub fn iter<'a>(&'a self) -> impl Iterator<Item = &Point> + 'a {
   464         (&self.vertices[..self.edges_count()]).iter()
   464         (&self.vertices[..self.edges_count()]).iter()
   465     }
   465     }
   466 
   466 
   467     pub fn iter_mut<'a>(&'a mut self) -> impl Iterator<Item = &mut Point> + 'a {
   467     fn iter_mut<'a>(&'a mut self) -> impl Iterator<Item = &mut Point> + 'a {
   468         let edges_count = self.edges_count();
   468         let edges_count = self.edges_count();
   469         (&mut self.vertices[..edges_count]).iter_mut()
   469         (&mut self.vertices[..edges_count]).iter_mut()
       
   470     }
       
   471 
       
   472     pub fn for_each<F>(&mut self, f: F)
       
   473         where F: (Fn(&mut Point))
       
   474     {
       
   475         if !self.vertices.is_empty() {
       
   476             self.iter_mut().for_each(f);
       
   477             let edges_count = self.edges_count();
       
   478             self.vertices[edges_count] = self.vertices[0]
       
   479         }
   470     }
   480     }
   471 
   481 
   472     pub fn iter_edges<'a>(&'a self) -> impl Iterator<Item = Line> + 'a {
   482     pub fn iter_edges<'a>(&'a self) -> impl Iterator<Item = Line> + 'a {
   473         (&self.vertices[0..self.edges_count()])
   483         (&self.vertices[0..self.edges_count()])
   474             .iter()
   484             .iter()