@@ -8,9 +8,10 @@ use postgres::types::{Type, Kind, ToSql, FromSql, Oid, IsNull, SessionInfo};
88
99use { Array , Dimension } ;
1010
11- impl < T > FromSql for Array < T > where T : FromSql {
12- fn from_sql < R : Read > ( ty : & Type , raw : & mut R , info : & SessionInfo )
13- -> postgres:: Result < Array < T > > {
11+ impl < T > FromSql for Array < T >
12+ where T : FromSql
13+ {
14+ fn from_sql < R : Read > ( ty : & Type , raw : & mut R , info : & SessionInfo ) -> postgres:: Result < Array < T > > {
1415 let element_type = match ty. kind ( ) {
1516 & Kind :: Array ( ref ty) => ty,
1617 _ => panic ! ( "unexpected type {:?}" , ty) ,
@@ -42,8 +43,9 @@ impl<T> FromSql for Array<T> where T: FromSql {
4243 let mut limit = raw. take ( len as u64 ) ;
4344 elements. push ( try!( FromSql :: from_sql ( & element_type, & mut limit, info) ) ) ;
4445 if limit. limit ( ) != 0 {
45- let err: Box < error:: Error +Sync +Send > =
46- "from_sql call did not consume all data" . into ( ) ;
46+ let err: Box < error:: Error + Sync + Send > = "from_sql call did not consume all \
47+ data"
48+ . into ( ) ;
4749 return Err ( Error :: Conversion ( err) ) ;
4850 }
4951 }
@@ -55,14 +57,19 @@ impl<T> FromSql for Array<T> where T: FromSql {
5557 fn accepts ( ty : & Type ) -> bool {
5658 match ty. kind ( ) {
5759 & Kind :: Array ( ref ty) => <T as FromSql >:: accepts ( ty) ,
58- _ => false
60+ _ => false ,
5961 }
6062 }
6163}
6264
63- impl < T > ToSql for Array < T > where T : ToSql {
64- fn to_sql < W : ?Sized +Write > ( & self , ty : & Type , mut w : & mut W , info : & SessionInfo )
65- -> postgres:: Result < IsNull > {
65+ impl < T > ToSql for Array < T >
66+ where T : ToSql
67+ {
68+ fn to_sql < W : ?Sized + Write > ( & self ,
69+ ty : & Type ,
70+ mut w : & mut W ,
71+ info : & SessionInfo )
72+ -> postgres:: Result < IsNull > {
6673 let element_type = match ty. kind ( ) {
6774 & Kind :: Array ( ref ty) => ty,
6875 _ => panic ! ( "unexpected type {:?}" , ty) ,
@@ -75,9 +82,9 @@ impl<T> ToSql for Array<T> where T: ToSql {
7582 for info in self . dimensions ( ) {
7683 try!( w. write_i32 :: < BigEndian > ( try!( downcast ( info. len ) ) ) ) ;
7784
78- let bound = if info. lower_bound > i32:: max_value ( ) as isize
79- || info. lower_bound < i32:: min_value ( ) as isize {
80- let err: Box < error:: Error + Sync + Send > = "value too large to transmit" . into ( ) ;
85+ let bound = if info. lower_bound > i32:: max_value ( ) as isize ||
86+ info. lower_bound < i32:: min_value ( ) as isize {
87+ let err: Box < error:: Error + Sync + Send > = "value too large to transmit" . into ( ) ;
8188 return Err ( Error :: Conversion ( err) ) ;
8289 } else {
8390 info. lower_bound as i32
@@ -103,7 +110,7 @@ impl<T> ToSql for Array<T> where T: ToSql {
103110 fn accepts ( ty : & Type ) -> bool {
104111 match ty. kind ( ) {
105112 & Kind :: Array ( ref ty) => <T as ToSql >:: accepts ( ty) ,
106- _ => false
113+ _ => false ,
107114 }
108115 }
109116
@@ -112,7 +119,7 @@ impl<T> ToSql for Array<T> where T: ToSql {
112119
113120fn downcast ( len : usize ) -> Result < i32 > {
114121 if len > i32:: max_value ( ) as usize {
115- let err: Box < error:: Error + Sync + Send > = "value too large to transmit" . into ( ) ;
122+ let err: Box < error:: Error + Sync + Send > = "value too large to transmit" . into ( ) ;
116123 Err ( Error :: Conversion ( err) )
117124 } else {
118125 Ok ( len as i32 )
@@ -127,7 +134,8 @@ mod test {
127134 use postgres:: types:: { FromSql , ToSql } ;
128135 use Array ;
129136
130- fn test_type < T : PartialEq +FromSql +ToSql , S : fmt:: Display > ( sql_type : & str , checks : & [ ( T , S ) ] ) {
137+ fn test_type < T : PartialEq + FromSql + ToSql , S : fmt:: Display > ( sql_type : & str ,
138+ checks : & [ ( T , S ) ] ) {
131139 let conn = Connection :: connect ( "postgres://postgres@localhost" , SslMode :: None ) . unwrap ( ) ;
132140 for & ( ref val, ref repr) in checks. iter ( ) {
133141 let stmt = conn. prepare ( & format ! ( "SELECT {}::{}" , * repr, sql_type) ) . unwrap ( ) ;
@@ -163,20 +171,29 @@ mod test {
163171
164172 #[ test]
165173 fn test_byteaarray_params ( ) {
166- test_array_params ! ( "BYTEA" , vec!( 0u8 , 1 ) , r#""\\x0001""# , vec!( 254u8 , 255u8 ) ,
167- r#""\\xfeff""# , vec!( 10u8 , 11u8 ) , r#""\\x0a0b""# ) ;
174+ test_array_params ! ( "BYTEA" ,
175+ vec![ 0u8 , 1 ] ,
176+ r#""\\x0001""# ,
177+ vec![ 254u8 , 255u8 ] ,
178+ r#""\\xfeff""# ,
179+ vec![ 10u8 , 11u8 ] ,
180+ r#""\\x0a0b""# ) ;
168181 }
169182
170183 #[ test]
171184 fn test_chararray_params ( ) {
172- test_array_params ! ( "\" char\" " , 'a' as i8 , "a" , 'z' as i8 , "z" ,
173- '0' as i8 , "0" ) ;
185+ test_array_params ! ( "\" char\" " , 'a' as i8 , "a" , 'z' as i8 , "z" , '0' as i8 , "0" ) ;
174186 }
175187
176188 #[ test]
177189 fn test_namearray_params ( ) {
178- test_array_params ! ( "NAME" , "hello" . to_string( ) , "hello" , "world" . to_string( ) ,
179- "world" , "!" . to_string( ) , "!" ) ;
190+ test_array_params ! ( "NAME" ,
191+ "hello" . to_string( ) ,
192+ "hello" ,
193+ "world" . to_string( ) ,
194+ "world" ,
195+ "!" . to_string( ) ,
196+ "!" ) ;
180197 }
181198
182199 #[ test]
@@ -191,20 +208,35 @@ mod test {
191208
192209 #[ test]
193210 fn test_textarray_params ( ) {
194- test_array_params ! ( "TEXT" , "hello" . to_string( ) , "hello" , "world" . to_string( ) ,
195- "world" , "!" . to_string( ) , "!" ) ;
211+ test_array_params ! ( "TEXT" ,
212+ "hello" . to_string( ) ,
213+ "hello" ,
214+ "world" . to_string( ) ,
215+ "world" ,
216+ "!" . to_string( ) ,
217+ "!" ) ;
196218 }
197219
198220 #[ test]
199221 fn test_charnarray_params ( ) {
200- test_array_params ! ( "CHAR(5)" , "hello" . to_string( ) , "hello" ,
201- "world" . to_string( ) , "world" , "! " . to_string( ) , "!" ) ;
222+ test_array_params ! ( "CHAR(5)" ,
223+ "hello" . to_string( ) ,
224+ "hello" ,
225+ "world" . to_string( ) ,
226+ "world" ,
227+ "! " . to_string( ) ,
228+ "!" ) ;
202229 }
203230
204231 #[ test]
205232 fn test_varchararray_params ( ) {
206- test_array_params ! ( "VARCHAR" , "hello" . to_string( ) , "hello" ,
207- "world" . to_string( ) , "world" , "!" . to_string( ) , "!" ) ;
233+ test_array_params ! ( "VARCHAR" ,
234+ "hello" . to_string( ) ,
235+ "hello" ,
236+ "world" . to_string( ) ,
237+ "world" ,
238+ "!" . to_string( ) ,
239+ "!" ) ;
208240 }
209241
210242 #[ test]
0 commit comments