diff options
Diffstat (limited to 'src/banking/asset.rs')
| -rw-r--r-- | src/banking/asset.rs | 27 |
1 files changed, 27 insertions, 0 deletions
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<Self::Item> { + 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<Account> } @@ -70,4 +90,11 @@ impl Asset { } None } + + pub fn iter<'a>(&'a self) -> AssetIterator<'a> { + AssetIterator { + asset : self, + index : 0 + } + } } |
