From f3080c9575baac69cc5355f09dd82d44bf77b0d4 Mon Sep 17 00:00:00 2001 From: Benedict Börger Date: Wed, 26 Jun 2019 23:54:22 +0200 Subject: [banking][asset] implemnt iterator over asset --- src/banking/asset.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src') diff --git a/src/banking/asset.rs b/src/banking/asset.rs index 590d8e7..642f153 100644 --- a/src/banking/asset.rs +++ b/src/banking/asset.rs @@ -1,6 +1,26 @@ use crate::banking::account::Account; use crate::parsers::ini::IniFile; + +pub struct AssetIterator<'a> { + asset : &'a Asset, + index : usize +} + + +impl<'a> Iterator for AssetIterator<'a> { + type Item = &'a crate::banking::account::Account; + + fn next(&mut self) -> Option { + if self.index < self.asset.accounts.len() { + let tmp = &self.asset.accounts[self.index]; + self.index = self.index + 1; + return Some(tmp); + } + None + } +} + pub struct Asset { accounts : Vec } @@ -70,4 +90,11 @@ impl Asset { } None } + + pub fn iter<'a>(&'a self) -> AssetIterator<'a> { + AssetIterator { + asset : self, + index : 0 + } + } } -- cgit v1.2.3-70-g09d2