summaryrefslogtreecommitdiff
path: root/src/banking/asset.rs
diff options
context:
space:
mode:
authorBenedict Börger <benedict@0xb8000.de>2019-06-26 23:54:22 +0200
committerBenedict Börger <benedict@0xb8000.de>2019-06-26 23:54:22 +0200
commitf3080c9575baac69cc5355f09dd82d44bf77b0d4 (patch)
treedfe4721f67d1ff4cd6a3b6008fb1a77774864c12 /src/banking/asset.rs
parent7ae9b32f1f8b6ae9d3fb5b5ea09e942fafcb65cb (diff)
[banking][asset] implemnt iterator over asset
Diffstat (limited to 'src/banking/asset.rs')
-rw-r--r--src/banking/asset.rs27
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
+ }
+ }
}