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 store::Store;
use error::Result; 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> { 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) $itername(inner, store)
} }
} }
@ -53,7 +53,7 @@ macro_rules! mk_iterator {
} }
impl<'a, I> $extname<'a> for I 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> { fn $extfnname(self, store: &'a Store) -> $itername<'a> {
$itername(Box::new(self), store) $itername(Box::new(self), store)