diff --git a/query-algebrizer/src/types.rs b/query-algebrizer/src/types.rs index ab7222bb..17553bad 100644 --- a/query-algebrizer/src/types.rs +++ b/query-algebrizer/src/types.rs @@ -582,3 +582,28 @@ impl ValueTypeSet { self.0.len() == 1 } } + +impl IntoIterator for ValueTypeSet { + type Item = ValueType; + type IntoIter = ::enum_set::Iter; + + fn into_iter(self) -> Self::IntoIter { + self.0.into_iter() + } +} + +impl ::std::iter::FromIterator for ValueTypeSet { + fn from_iter>(iterator: I) -> Self { + let mut ret = Self::none(); + ret.0.extend(iterator); + ret + } +} + +impl ::std::iter::Extend for ValueTypeSet { + fn extend>(&mut self, iter: I) { + for element in iter { + self.0.insert(element); + } + } +}