From 7626f722aaf40b1715d05e5eadec3daf1ab3e8d1 Mon Sep 17 00:00:00 2001 From: meh Date: Mon, 26 Oct 2015 20:26:01 +0100 Subject: [PATCH] util/dictionary/owned: add more FromIterator impls --- src/util/dictionary/owned.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/util/dictionary/owned.rs b/src/util/dictionary/owned.rs index 313564b..e5fbbad 100644 --- a/src/util/dictionary/owned.rs +++ b/src/util/dictionary/owned.rs @@ -42,6 +42,42 @@ impl<'a, 'b> FromIterator<(&'b str, &'b str)> for Owned<'a> { } } +impl<'a, 'b> FromIterator<&'b (&'b str, &'b str)> for Owned<'a> { + fn from_iter>(iterator: T) -> Self { + let mut result = Owned::new(); + + for &(key, value) in iterator { + result.set(key, value); + } + + result + } +} + +impl<'a> FromIterator<(String, String)> for Owned<'a> { + fn from_iter>(iterator: T) -> Self { + let mut result = Owned::new(); + + for (key, value) in iterator { + result.set(&key, &value); + } + + result + } +} + +impl<'a, 'b> FromIterator<&'b (String, String)> for Owned<'a> { + fn from_iter>(iterator: T) -> Self { + let mut result = Owned::new(); + + for &(ref key, ref value) in iterator { + result.set(key, value); + } + + result + } +} + impl<'a> Deref for Owned<'a> { type Target = mutable::Ref<'a>;