@@ -9,6 +9,7 @@ use std::str;
9
9
pub use postgres_shared:: rows:: RowIndex ;
10
10
11
11
use stmt:: { Column } ;
12
+ use { Result , error} ;
12
13
13
14
/// The resulting rows of a query.
14
15
pub struct TextRows {
@@ -145,25 +146,26 @@ impl<'a> TextRow<'a> {
145
146
}
146
147
147
148
/// stub
148
- pub fn get < I > ( & self , idx : I ) -> Option < & str >
149
+ pub fn get < I > ( & self , idx : I ) -> & str
149
150
where
150
151
I : RowIndex + fmt:: Debug ,
151
152
{
152
153
match self . get_inner ( & idx) {
153
- Some ( value) => value,
154
+ Some ( Ok ( value) ) => value,
155
+ Some ( Err ( err) ) => panic ! ( "error retrieving column {:?}: {:?}" , idx, err) ,
154
156
None => panic ! ( "no such column {:?}" , idx) ,
155
157
}
156
158
}
157
159
158
160
/// stub
159
- pub fn get_opt < I > ( & self , idx : I ) -> Option < Option < & str > >
161
+ pub fn get_opt < I > ( & self , idx : I ) -> Option < Result < & str > >
160
162
where
161
163
I : RowIndex ,
162
164
{
163
165
self . get_inner ( & idx)
164
166
}
165
167
166
- fn get_inner < I > ( & self , idx : & I ) -> Option < Option < & str > >
168
+ fn get_inner < I > ( & self , idx : & I ) -> Option < Result < & str > >
167
169
where
168
170
I : RowIndex ,
169
171
{
@@ -173,6 +175,6 @@ impl<'a> TextRow<'a> {
173
175
} ;
174
176
175
177
self . data . get ( idx)
176
- . map ( |s| str:: from_utf8 ( s) . ok ( ) )
178
+ . map ( |s| str:: from_utf8 ( s) . map_err ( |e| error :: conversion ( Box :: new ( e ) ) ) )
177
179
}
178
180
}
0 commit comments