summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+ }
+ }
}