File tree Expand file tree Collapse file tree 1 file changed +6
-11
lines changed Expand file tree Collapse file tree 1 file changed +6
-11
lines changed Original file line number Diff line number Diff line change @@ -101,17 +101,12 @@ macro_rules! from_sql_integral(
101101 ValueRef :: Date32 ( i) => <$t as cast:: From <i32 >>:: cast( i) . into_result( FromSqlError :: OutOfRange ( i as i128 ) ) ,
102102 ValueRef :: Time64 ( TimeUnit :: Microsecond , i) => <$t as cast:: From <i64 >>:: cast( i) . into_result( FromSqlError :: OutOfRange ( i as i128 ) ) ,
103103 ValueRef :: Text ( _) => {
104- let v = value. as_str( ) ?. parse:: <$t>( ) ;
105- match v {
106- Ok ( i) => Ok ( i) ,
107- Err ( _) => {
108- let v = value. as_str( ) ?. parse:: <i128 >( ) ;
109- match v {
110- Ok ( i) => Err ( FromSqlError :: OutOfRange ( i) ) ,
111- _ => Err ( FromSqlError :: InvalidType ) ,
112- }
113- } ,
114- }
104+ let s = value. as_str( ) ?;
105+ s. parse:: <$t>( ) . or_else( |_| {
106+ s. parse:: <i128 >( )
107+ . map_err( |_| FromSqlError :: InvalidType )
108+ . and_then( |i| Err ( FromSqlError :: OutOfRange ( i) ) )
109+ } )
115110 }
116111 _ => Err ( FromSqlError :: InvalidType ) ,
117112 }
You can’t perform that action at this time.
0 commit comments