@@ -9,6 +9,7 @@ use std::str;
99pub use postgres_shared:: rows:: RowIndex ;
1010
1111use stmt:: { Column } ;
12+ use { Result , error} ;
1213
1314/// The resulting rows of a query.
1415pub struct TextRows {
@@ -145,25 +146,26 @@ impl<'a> TextRow<'a> {
145146 }
146147
147148 /// stub
148- pub fn get < I > ( & self , idx : I ) -> Option < & str >
149+ pub fn get < I > ( & self , idx : I ) -> & str
149150 where
150151 I : RowIndex + fmt:: Debug ,
151152 {
152153 match self . get_inner ( & idx) {
153- Some ( value) => value,
154+ Some ( Ok ( value) ) => value,
155+ Some ( Err ( err) ) => panic ! ( "error retrieving column {:?}: {:?}" , idx, err) ,
154156 None => panic ! ( "no such column {:?}" , idx) ,
155157 }
156158 }
157159
158160 /// 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 > >
160162 where
161163 I : RowIndex ,
162164 {
163165 self . get_inner ( & idx)
164166 }
165167
166- fn get_inner < I > ( & self , idx : & I ) -> Option < Option < & str > >
168+ fn get_inner < I > ( & self , idx : & I ) -> Option < Result < & str > >
167169 where
168170 I : RowIndex ,
169171 {
@@ -173,6 +175,6 @@ impl<'a> TextRow<'a> {
173175 } ;
174176
175177 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 ) ) ) )
177179 }
178180}
0 commit comments