Merge pull request #1379 from matthiasbeyer/libimagstore/iter-lifetimes-less-restricting

libimagstore: Make iterator lifetimes less restricting
This commit is contained in:
Matthias Beyer 2018-04-07 14:50:48 +02:00 committed by GitHub
commit 8b29e9d748
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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)