Skip to content

Commit 2cfe25e

Browse files
committed
Inline stuff
1 parent 376deed commit 2cfe25e

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub enum IsNull {
3333
No,
3434
}
3535

36+
#[inline]
3637
fn write_nullable<F, E>(serializer: F, buf: &mut Vec<u8>) -> Result<(), E>
3738
where F: FnOnce(&mut Vec<u8>) -> Result<IsNull, E>,
3839
E: From<io::Error>
@@ -55,6 +56,7 @@ trait FromUsize: Sized {
5556
macro_rules! from_usize {
5657
($t:ty) => {
5758
impl FromUsize for $t {
59+
#[inline]
5860
fn from_usize(x: usize) -> io::Result<$t> {
5961
if x > <$t>::max_value() as usize {
6062
Err(io::Error::new(io::ErrorKind::InvalidInput, "value too large to transmit"))

src/message/frontend.rs

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use std::marker;
88

99
use {Oid, FromUsize, IsNull, write_nullable};
1010

11+
#[inline]
1112
fn 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

3031
impl 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

3638
impl From<io::Error> for BindError {
39+
#[inline]
3740
fn from(e: io::Error) -> BindError {
3841
BindError::Serialization(e)
3942
}
4043
}
4144

45+
#[inline]
4246
pub 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]
7075
fn 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]
8894
pub 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]
97103
pub 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]
106113
pub 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]
114122
pub fn copy_done(buf: &mut Vec<u8>) {
115123
buf.push(b'c');
116124
write_body(buf, |_| Ok::<(), io::Error>(())).unwrap();
117125
}
118126

127+
#[inline]
119128
pub 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]
124134
pub 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]
132143
pub 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]
141153
pub 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]
153166
pub 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]
158172
pub 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]
163178
pub 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]
170183
pub 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]
184198
pub fn sync(buf: &mut Vec<u8>) {
185199
buf.push(b'S');
186200
write_body(buf, |_| Ok::<(), io::Error>(())).unwrap();
187201
}
188202

203+
#[inline]
189204
pub 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

198213
impl 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

Comments
 (0)