From f263968d35397fffe24eb8243464b01e37658680 Mon Sep 17 00:00:00 2001 From: Michael Sippel <micha@fragmental.art> Date: Mon, 14 Aug 2023 01:20:43 +0200 Subject: [PATCH] index buffer: add FromIterator trait --- src/buffer/index_hashmap.rs | 14 +++++++++++++- src/view/view.rs | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) delete mode 100644 src/view/view.rs diff --git a/src/buffer/index_hashmap.rs b/src/buffer/index_hashmap.rs index 72b0625..8ca9a44 100644 --- a/src/buffer/index_hashmap.rs +++ b/src/buffer/index_hashmap.rs @@ -6,7 +6,7 @@ use { }, }, std::sync::RwLock, - std::{collections::HashMap, hash::Hash, sync::Arc, ops::{Deref, DerefMut}}, + std::{iter::FromIterator, collections::HashMap, hash::Hash, sync::Arc, ops::{Deref, DerefMut}}, }; pub struct IndexBufferView<Key, Item>(Arc<RwLock<HashMap<Key, Item>>>) @@ -48,6 +48,18 @@ where port: InnerViewPort<dyn IndexView<Key, Item = Item>>, } +impl<Key, Item> FromIterator<(Key, Item)> for IndexBuffer<Key, Item> +where Key: Send+Sync+Clone+Eq+Hash, + Item: Send+Sync+Clone +{ + fn from_iter<T>(iter: T) -> Self + where T: IntoIterator<Item = (Key, Item)> { + let mut buf = IndexBuffer::new(); + buf.insert_iter(iter); + buf + } +} + impl<Key, Item> IndexBuffer<Key, Item> where Key: Clone + Hash + Eq + Send + Sync + 'static, diff --git a/src/view/view.rs b/src/view/view.rs deleted file mode 100644 index 8b13789..0000000 --- a/src/view/view.rs +++ /dev/null @@ -1 +0,0 @@ -