aboutsummaryrefslogtreecommitdiff
path: root/vendor/clap_builder/src/util/flat_set.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/clap_builder/src/util/flat_set.rs')
-rw-r--r--vendor/clap_builder/src/util/flat_set.rs107
1 files changed, 0 insertions, 107 deletions
diff --git a/vendor/clap_builder/src/util/flat_set.rs b/vendor/clap_builder/src/util/flat_set.rs
deleted file mode 100644
index 3e0b23d..0000000
--- a/vendor/clap_builder/src/util/flat_set.rs
+++ /dev/null
@@ -1,107 +0,0 @@
-#![allow(dead_code)]
-
-use std::borrow::Borrow;
-
-/// Flat (Vec) backed set
-///
-/// This preserves insertion order
-#[derive(Clone, Debug, PartialEq, Eq)]
-pub(crate) struct FlatSet<T> {
- inner: Vec<T>,
-}
-
-impl<T: PartialEq + Eq> FlatSet<T> {
- pub(crate) fn new() -> Self {
- Default::default()
- }
-
- pub(crate) fn insert(&mut self, value: T) -> bool {
- for existing in &self.inner {
- if *existing == value {
- return false;
- }
- }
- self.inner.push(value);
- true
- }
-
- pub fn contains<Q: ?Sized>(&self, value: &Q) -> bool
- where
- T: Borrow<Q>,
- Q: Eq,
- {
- for existing in &self.inner {
- if existing.borrow() == value {
- return true;
- }
- }
- false
- }
-
- pub fn retain<F>(&mut self, f: F)
- where
- F: FnMut(&T) -> bool,
- {
- self.inner.retain(f);
- }
-
- pub(crate) fn is_empty(&self) -> bool {
- self.inner.is_empty()
- }
-
- pub(crate) fn iter(&self) -> std::slice::Iter<'_, T> {
- self.inner.iter()
- }
-
- pub fn sort_by_key<K, F>(&mut self, f: F)
- where
- F: FnMut(&T) -> K,
- K: Ord,
- {
- self.inner.sort_by_key(f);
- }
-}
-
-impl<T: PartialEq + Eq> Default for FlatSet<T> {
- fn default() -> Self {
- Self {
- inner: Default::default(),
- }
- }
-}
-
-impl<T: PartialEq + Eq> IntoIterator for FlatSet<T> {
- type Item = T;
- type IntoIter = std::vec::IntoIter<T>;
-
- fn into_iter(self) -> Self::IntoIter {
- self.inner.into_iter()
- }
-}
-
-impl<'s, T: PartialEq + Eq> IntoIterator for &'s FlatSet<T> {
- type Item = &'s T;
- type IntoIter = std::slice::Iter<'s, T>;
-
- fn into_iter(self) -> Self::IntoIter {
- self.inner.iter()
- }
-}
-
-impl<T: PartialEq + Eq> Extend<T> for FlatSet<T> {
- fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I) {
- for value in iter {
- self.insert(value);
- }
- }
-}
-
-impl<T: PartialEq + Eq> FromIterator<T> for FlatSet<T> {
- fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
- let mut set = Self::new();
- for value in iter {
- set.insert(value);
- }
- set
- }
-}