From f98a024a06fef04fc40b29204f50d6e3a9089e10 Mon Sep 17 00:00:00 2001 From: troido Date: Tue, 19 May 2020 23:49:26 +0200 Subject: implemented fromtoparameter for hashmap and hashset --- src/fromtoparameter.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/fromtoparameter.rs') diff --git a/src/fromtoparameter.rs b/src/fromtoparameter.rs index 4abfdfd..f201a2a 100644 --- a/src/fromtoparameter.rs +++ b/src/fromtoparameter.rs @@ -1,5 +1,6 @@ - +use std::collections::{HashSet, HashMap}; +use std::hash::Hash; use crate::{ parameter::Parameter, Template, @@ -107,6 +108,32 @@ where } } +impl FromToParameter for HashSet +where + T: FromToParameter + Eq + Hash, +{ + fn from_parameter(p: Parameter) -> Option{ + Some(>::from_parameter(p)?.into_iter().collect()) + } + fn to_parameter(self) -> Parameter { + self.into_iter().collect::>().to_parameter() + } +} + +impl FromToParameter for HashMap +where + T: FromToParameter + Eq + Hash, + U: FromToParameter, +{ + fn from_parameter(p: Parameter) -> Option{ + Some(>::from_parameter(p)?.into_iter().collect()) + } + fn to_parameter(self) -> Parameter { + self.into_iter().collect::>().to_parameter() + } +} + + impl FromToParameter for (T, U) where T: FromToParameter, -- cgit