1use super::{Fid, FidIter};
2
3impl<'iter> Fid {
4 pub fn iter(&'iter self) -> FidIter<'iter> {
16 FidIter { fid: self, i: 0 }
17 }
18}
19
20impl<'iter> Iterator for FidIter<'iter> {
21 type Item = bool;
22 fn next(&mut self) -> Option<Self::Item> {
23 if self.i >= self.fid.len() {
24 None
25 } else {
26 self.i += 1;
27 Some(self.fid[self.i - 1])
28 }
29 }
30}
31
32#[cfg(test)]
33mod iter_success_tests {
34 use crate::Fid;
35
36 #[test]
37 fn iter() {
38 let fid = Fid::from("1010_1010");
39 for (i, bit) in fid.iter().enumerate() {
40 assert_eq!(bit, fid[i as u64]);
41 }
42 }
43}
44
45#[cfg(test)]
46mod iter_failure_tests {
47 }