@@ -55,34 +55,34 @@ impl<'a, I, K: Copy, V, A: Access> Reg<'a, I, K, V, A> {
55
55
56
56
impl < ' a , I : Interface < K , V > , K : Copy , V : Copy , A : Read > Reg < ' a , I , K , V , A > {
57
57
#[ inline( always) ]
58
- pub fn read ( & mut self ) -> V {
59
- self . iface . read ( self . addr ) . unwrap ( )
58
+ pub fn read ( & mut self ) -> Result < V , I :: Error > {
59
+ self . iface . read ( self . addr )
60
60
}
61
61
}
62
62
63
63
impl < ' a , I : Interface < K , V > , K : Copy , V : Copy , A : Write > Reg < ' a , I , K , V , A > {
64
64
#[ inline( always) ]
65
- pub fn write_value ( & mut self , val : V ) {
66
- self . iface . write ( self . addr , val) . unwrap ( )
65
+ pub fn write_value ( & mut self , val : V ) -> Result < ( ) , I :: Error > {
66
+ self . iface . write ( self . addr , val)
67
67
}
68
68
}
69
69
70
70
impl < ' a , I : Interface < K , V > , K : Copy , V : Default + Copy , A : Write > Reg < ' a , I , K , V , A > {
71
71
#[ inline( always) ]
72
- pub fn write < R > ( & mut self , f : impl FnOnce ( & mut V ) -> R ) -> R {
72
+ pub fn write < R > ( & mut self , f : impl FnOnce ( & mut V ) -> R ) -> Result < R , I :: Error > {
73
73
let mut val = Default :: default ( ) ;
74
74
let res = f ( & mut val) ;
75
- self . write_value ( val) ;
76
- res
75
+ self . write_value ( val) ? ;
76
+ Ok ( res)
77
77
}
78
78
}
79
79
80
80
impl < ' a , I : Interface < K , V > , K : Copy , V : Copy , A : Read + Write > Reg < ' a , I , K , V , A > {
81
81
#[ inline( always) ]
82
- pub fn modify < R > ( & mut self , f : impl FnOnce ( & mut V ) -> R ) -> R {
83
- let mut val = self . read ( ) ;
82
+ pub fn modify < R > ( & mut self , f : impl FnOnce ( & mut V ) -> R ) -> Result < R , I :: Error > {
83
+ let mut val = self . read ( ) ? ;
84
84
let res = f ( & mut val) ;
85
- self . write_value ( val) ;
86
- res
85
+ self . write_value ( val) ? ;
86
+ Ok ( res)
87
87
}
88
88
}
0 commit comments