From 3383faeaf8342cf4637b6d9a9dfba30b1684edca Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 31 Jul 2022 13:26:41 +0200 Subject: feat: add hide impl of Injectable from documentation This will make it so that by default the impl of Injectable is hidden from user code documentation. This commit also includes a flag for the injectable macro to disable the aforementioned feature --- macros/src/util/iterator_ext.rs | 28 ++++++++++++++++++++++++++++ macros/src/util/mod.rs | 1 + 2 files changed, 29 insertions(+) create mode 100644 macros/src/util/iterator_ext.rs create mode 100644 macros/src/util/mod.rs (limited to 'macros/src/util') diff --git a/macros/src/util/iterator_ext.rs b/macros/src/util/iterator_ext.rs new file mode 100644 index 0000000..86db6cb --- /dev/null +++ b/macros/src/util/iterator_ext.rs @@ -0,0 +1,28 @@ +use std::collections::HashMap; +use std::hash::Hash; + +pub trait IteratorExt +{ + fn find_duplicate(&mut self) -> Option; +} + +impl IteratorExt for Iter +where + Iter: Iterator, + Iter::Item: Eq + Hash + Copy, +{ + fn find_duplicate(&mut self) -> Option + { + let mut iterated_item_map = HashMap::::new(); + + for item in self { + if iterated_item_map.contains_key(&item) { + return Some(item); + } + + iterated_item_map.insert(item, ()); + } + + None + } +} diff --git a/macros/src/util/mod.rs b/macros/src/util/mod.rs new file mode 100644 index 0000000..fe2fbbc --- /dev/null +++ b/macros/src/util/mod.rs @@ -0,0 +1 @@ +pub mod iterator_ext; -- cgit v1.2.3-18-g5258