On 26.06.2024 14:15, Stefan Hanreich wrote:
diff --git a/proxmox-ve-config/src/common/mod.rs b/proxmox-ve-config/src/common/mod.rs new file mode 100644 index 0000000..9318cff --- /dev/null +++ b/proxmox-ve-config/src/common/mod.rs @@ -0,0 +1,30 @@ +use core::hash::Hash; +use std::cmp::Eq; +use std::collections::HashSet; + +#[derive(Clone, Debug, Default)] +pub struct Allowlist<T>(HashSet<T>); + +impl<T: Hash + Eq> FromIterator<T> for Allowlist<T> { + fn from_iter<A>(iter: A) -> Self + where + A: IntoIterator<Item = T>, + { + Allowlist(HashSet::from_iter(iter)) + } +} + +/// returns true if [`value`] is in the allowlist or if allowlist does not exist +impl<T: Hash + Eq> Allowlist<T> { + pub fn is_allowed(&self, value: &T) -> bool { + self.0.contains(value) + } +} + +impl<T: Hash + Eq> Allowlist<T> { + pub fn new<I>(iter: I) -> Self + where I: IntoIterator<Item = T>{
^ Small rustfmt error here.
+ Self::from_iter(iter) + } +} +
_______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel