Mercurial > lbo > hg > localmr
changeset 64:33f3fcc22c02
Add constructor for MultiRecord
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sat, 06 Feb 2016 00:07:47 +0000 |
parents | 10e3e2efbc57 |
children | 07095d20ba5c |
files | src/record_types.rs |
diffstat | 1 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/record_types.rs Sat Feb 06 00:07:26 2016 +0000 +++ b/src/record_types.rs Sat Feb 06 00:07:47 2016 +0000 @@ -30,10 +30,16 @@ /// Can be easily iterated over, e.g. in a `for` loop. pub struct MultiRecord { key: String, - value: Box<Iterator<Item = String>>, + values: Vec<String>, } impl MultiRecord { + pub fn new(key: String, values: Vec<String>) -> MultiRecord { + MultiRecord { + key: key, + values: values, + } + } /// Retrieves the key of the record. pub fn key<'a>(&'a self) -> &'a String { &self.key @@ -52,12 +58,14 @@ } } +use std::vec; + impl IntoIterator for MultiRecord { type Item = String; - type IntoIter = Box<Iterator<Item=String>>; + type IntoIter = vec::IntoIter<String>; /// Allows iterating over all the values. fn into_iter(self) -> Self::IntoIter { - self.value + self.values.into_iter() } }