Make iterator lifetimes less restricting

This commit is contained in:
Matthias Beyer 2018-04-07 12:09:01 +02:00
parent 7549cc209a
commit a769186cd7

View file

@ -32,10 +32,10 @@ macro_rules! mk_iterator {
use store::Store;
use error::Result;
pub struct $itername<'a>(Box<Iterator<Item = StoreId>>, &'a Store);
pub struct $itername<'a>(Box<Iterator<Item = StoreId> + 'a>, &'a Store);
impl<'a> $itername<'a> {
pub fn new(inner: Box<Iterator<Item = StoreId>>, store: &'a Store) -> Self {
pub fn new(inner: Box<Iterator<Item = StoreId> + 'a>, store: &'a Store) -> Self {
$itername(inner, store)
}
}
@ -53,7 +53,7 @@ macro_rules! mk_iterator {
}
impl<'a, I> $extname<'a> for I
where I: Iterator<Item = StoreId> + 'static
where I: Iterator<Item = StoreId> + 'a
{
fn $extfnname(self, store: &'a Store) -> $itername<'a> {
$itername(Box::new(self), store)