@@ -8,6 +8,7 @@ use std::marker;
88
99use { Oid , FromUsize , IsNull , write_nullable} ;
1010
11+ #[ inline]
1112fn write_body < F , E > ( buf : & mut Vec < u8 > , f : F ) -> Result < ( ) , E >
1213 where F : FnOnce ( & mut Vec < u8 > ) -> Result < ( ) , E > ,
1314 E : From < io:: Error >
@@ -28,17 +29,20 @@ pub enum BindError {
2829}
2930
3031impl From < Box < Error + marker:: Sync + Send > > for BindError {
32+ #[ inline]
3133 fn from ( e : Box < Error + marker:: Sync + Send > ) -> BindError {
3234 BindError :: Conversion ( e)
3335 }
3436}
3537
3638impl From < io:: Error > for BindError {
39+ #[ inline]
3740 fn from ( e : io:: Error ) -> BindError {
3841 BindError :: Serialization ( e)
3942 }
4043}
4144
45+ #[ inline]
4246pub fn bind < I , J , F , T , K > ( portal : & str ,
4347 statement : & str ,
4448 formats : I ,
@@ -67,6 +71,7 @@ pub fn bind<I, J, F, T, K>(portal: &str,
6771 } )
6872}
6973
74+ #[ inline]
7075fn write_counted < I , T , F , E > ( items : I , mut serializer : F , buf : & mut Vec < u8 > ) -> Result < ( ) , E >
7176 where I : IntoIterator < Item = T > ,
7277 F : FnMut ( T , & mut Vec < u8 > ) -> Result < ( ) , E > ,
@@ -85,15 +90,16 @@ fn write_counted<I, T, F, E>(items: I, mut serializer: F, buf: &mut Vec<u8>) ->
8590 Ok ( ( ) )
8691}
8792
93+ #[ inline]
8894pub fn cancel_request ( process_id : i32 , secret_key : i32 , buf : & mut Vec < u8 > ) {
8995 write_body ( buf, |buf| {
9096 buf. write_i32 :: < BigEndian > ( 80877102 ) . unwrap ( ) ;
9197 buf. write_i32 :: < BigEndian > ( process_id) . unwrap ( ) ;
92- buf. write_i32 :: < BigEndian > ( secret_key) . unwrap ( ) ;
93- Ok :: < ( ) , io:: Error > ( ( ) )
98+ buf. write_i32 :: < BigEndian > ( secret_key)
9499 } ) . unwrap ( ) ;
95100}
96101
102+ #[ inline]
97103pub fn close ( variant : u8 , name : & str , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
98104 buf. push ( b'C' ) ;
99105 write_body ( buf, |buf| {
@@ -103,6 +109,7 @@ pub fn close(variant: u8, name: &str, buf: &mut Vec<u8>) -> io::Result<()> {
103109}
104110
105111// FIXME ideally this'd take a Read but it's unclear what to do at EOF
112+ #[ inline]
106113pub fn copy_data ( data : & [ u8 ] , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
107114 buf. push ( b'd' ) ;
108115 write_body ( buf, |buf| {
@@ -111,16 +118,19 @@ pub fn copy_data(data: &[u8], buf: &mut Vec<u8>) -> io::Result<()> {
111118 } )
112119}
113120
121+ #[ inline]
114122pub fn copy_done ( buf : & mut Vec < u8 > ) {
115123 buf. push ( b'c' ) ;
116124 write_body ( buf, |_| Ok :: < ( ) , io:: Error > ( ( ) ) ) . unwrap ( ) ;
117125}
118126
127+ #[ inline]
119128pub fn copy_fail ( message : & str , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
120129 buf. push ( b'f' ) ;
121130 write_body ( buf, |buf| buf. write_cstr ( message) )
122131}
123132
133+ #[ inline]
124134pub fn describe ( variant : u8 , name : & str , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
125135 buf. push ( b'D' ) ;
126136 write_body ( buf, |buf| {
@@ -129,6 +139,7 @@ pub fn describe(variant: u8, name: &str, buf: &mut Vec<u8>) -> io::Result<()> {
129139 } )
130140}
131141
142+ #[ inline]
132143pub fn execute ( portal : & str , max_rows : i32 , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
133144 buf. push ( b'E' ) ;
134145 write_body ( buf, |buf| {
@@ -138,6 +149,7 @@ pub fn execute(portal: &str, max_rows: i32, buf: &mut Vec<u8>) -> io::Result<()>
138149 } )
139150}
140151
152+ #[ inline]
141153pub fn parse < I > ( name : & str , query : & str , param_types : I , buf : & mut Vec < u8 > ) -> io:: Result < ( ) >
142154 where I : IntoIterator < Item = Oid >
143155{
@@ -150,23 +162,24 @@ pub fn parse<I>(name: &str, query: &str, param_types: I, buf: &mut Vec<u8>) -> i
150162 } )
151163}
152164
165+ #[ inline]
153166pub fn password_message ( password : & str , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
154167 buf. push ( b'p' ) ;
155168 write_body ( buf, |buf| buf. write_cstr ( password) )
156169}
157170
171+ #[ inline]
158172pub fn query ( query : & str , buf : & mut Vec < u8 > ) -> io:: Result < ( ) > {
159173 buf. push ( b'Q' ) ;
160174 write_body ( buf, |buf| buf. write_cstr ( query) )
161175}
162176
177+ #[ inline]
163178pub fn ssl_request ( buf : & mut Vec < u8 > ) {
164- write_body ( buf, |buf| {
165- buf. write_i32 :: < BigEndian > ( 80877103 ) . unwrap ( ) ;
166- Ok :: < ( ) , io:: Error > ( ( ) )
167- } ) . unwrap ( ) ;
179+ write_body ( buf, |buf| buf. write_i32 :: < BigEndian > ( 80877103 ) ) . unwrap ( ) ;
168180}
169181
182+ #[ inline]
170183pub fn startup_message < ' a , I > ( parameters : I , buf : & mut Vec < u8 > ) -> io:: Result < ( ) >
171184 where I : IntoIterator < Item = ( & ' a str , & ' a str ) >
172185{
@@ -181,11 +194,13 @@ pub fn startup_message<'a, I>(parameters: I, buf: &mut Vec<u8>) -> io::Result<()
181194 } )
182195}
183196
197+ #[ inline]
184198pub fn sync ( buf : & mut Vec < u8 > ) {
185199 buf. push ( b'S' ) ;
186200 write_body ( buf, |_| Ok :: < ( ) , io:: Error > ( ( ) ) ) . unwrap ( ) ;
187201}
188202
203+ #[ inline]
189204pub fn terminate ( buf : & mut Vec < u8 > ) {
190205 buf. push ( b'X' ) ;
191206 write_body ( buf, |_| Ok :: < ( ) , io:: Error > ( ( ) ) ) . unwrap ( ) ;
@@ -196,6 +211,7 @@ trait WriteCStr {
196211}
197212
198213impl WriteCStr for Vec < u8 > {
214+ #[ inline]
199215 fn write_cstr ( & mut self , s : & str ) -> Result < ( ) , io:: Error > {
200216 if s. as_bytes ( ) . contains ( & 0 ) {
201217 return Err ( io:: Error :: new ( io:: ErrorKind :: InvalidInput ,
0 commit comments