commit:f3dee6eb26f877c6e723f9ddee702b52f55b92dc
author:Chip
committer:Chip
date:Wed Mar 26 21:28:44 2025 -0500
parents:b58c964a578a4e3eff12e74b0cd9ac3ddb8eefc6
Hey I understand generics now
diff --git a/src/lib.rs b/src/lib.rs
line changes: +5/-5
index b7b751e..e713cfa
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -44,13 +44,13 @@ impl OmfInfo {
     }
 }
 
-pub struct OmfReader<'a> {
-    r: &'a mut dyn Read,
+pub struct OmfReader<'a, R: Read> {
+    r: &'a mut R,
     info: Rc<RefCell<OmfInfo>>,
 }
 
-impl<'a> OmfReader<'a> {
-    pub fn new(r: &'a mut dyn Read) -> OmfReader<'a> {
+impl<'a, R: Read> OmfReader<'a, R> {
+    pub fn new(r: &'a mut R) -> OmfReader<'a, R> {
         OmfReader {
             r,
             info: Rc::new(RefCell::new(OmfInfo::new())),
@@ -264,7 +264,7 @@ impl<'a> OmfReader<'a> {
     }
 }
 
-impl<'a> Iterator for OmfReader<'a> {
+impl<'a, R: Read> Iterator for OmfReader<'a, R> {
     type Item = OmfRecord;
 
     fn next(&mut self) -> Option<Self::Item> {