Skip to content

Commit 134fc97

Browse files
authored
add inline tags to functions (#2)
1 parent f7190d0 commit 134fc97

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

src/deserialize.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ pub trait Deserialize<E: Endianness, R>: Sized {
297297

298298
/// Reads a bool by reading a byte, returning false for 0, true for 1, and an `InvalidData` error for any other value.
299299
impl<E: Endianness, R: Read> Deserialize<E, R> for bool {
300+
#[inline]
300301
fn deserialize(reader: &mut R) -> Res<Self> {
301302
let mut buf = [0; size_of::<Self>()];
302303
reader.read_exact(&mut buf)?;
@@ -312,6 +313,7 @@ impl<E: Endianness, R: Read> Deserialize<E, R> for bool {
312313
}
313314

314315
impl<E: Endianness, R: Read> Deserialize<E, R> for i8 {
316+
#[inline]
315317
fn deserialize(reader: &mut R) -> Res<Self> {
316318
let mut buf = [0; size_of::<Self>()];
317319
reader.read_exact(&mut buf)?;
@@ -320,6 +322,7 @@ impl<E: Endianness, R: Read> Deserialize<E, R> for i8 {
320322
}
321323

322324
impl<E: Endianness, R: Read> Deserialize<E, R> for u8 {
325+
#[inline]
323326
fn deserialize(reader: &mut R) -> Res<Self> {
324327
let mut buf = [0; size_of::<Self>()];
325328
reader.read_exact(&mut buf)?;
@@ -330,6 +333,7 @@ impl<E: Endianness, R: Read> Deserialize<E, R> for u8 {
330333
macro_rules! impl_int {
331334
($t:ident) => {
332335
impl<R: Read> Deserialize<BigEndian, R> for $t {
336+
#[inline]
333337
fn deserialize(reader: &mut R) -> Res<Self> {
334338
let mut buf = [0; size_of::<Self>()];
335339
reader.read_exact(&mut buf)?;
@@ -338,6 +342,7 @@ macro_rules! impl_int {
338342
}
339343

340344
impl<R: Read> Deserialize<LittleEndian, R> for $t {
345+
#[inline]
341346
fn deserialize(reader: &mut R) -> Res<Self> {
342347
let mut buf = [0; size_of::<Self>()];
343348
reader.read_exact(&mut buf)?;
@@ -382,6 +387,7 @@ impl<E: Endianness, R: ERead<E>> Deserialize<E, R> for f32
382387
where
383388
u32: Deserialize<E, R>,
384389
{
390+
#[inline]
385391
fn deserialize(reader: &mut R) -> Res<Self> {
386392
let ival: u32 = reader.read()?;
387393
Ok(Self::from_bits(ival))
@@ -392,13 +398,15 @@ impl<E: Endianness, R: ERead<E>> Deserialize<E, R> for f64
392398
where
393399
u64: Deserialize<E, R>,
394400
{
401+
#[inline]
395402
fn deserialize(reader: &mut R) -> Res<Self> {
396403
let ival: u64 = reader.read()?;
397404
Ok(Self::from_bits(ival))
398405
}
399406
}
400407

401408
impl<E: Endianness, R: Read> Deserialize<E, R> for Ipv4Addr {
409+
#[inline]
402410
fn deserialize(reader: &mut R) -> Res<Self> {
403411
let mut buf = [0; 4];
404412
reader.read_exact(&mut buf)?;
@@ -411,6 +419,7 @@ impl<E: Endianness, R: ERead<E>, T: Deserialize<E, R>> Deserialize<E, R> for Opt
411419
where
412420
bool: Deserialize<E, R>,
413421
{
422+
#[inline]
414423
fn deserialize(reader: &mut R) -> Res<Self> {
415424
let is_some: bool = reader.read()?;
416425
Ok(if is_some { Some(reader.read()?) } else { None })

src/read.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,17 @@ pub trait ERead<E: Endianness>: Sized {
2727
/// Reads a `Deserialize` from the reader, in the reader's endianness.
2828
///
2929
/// What's actually read is up to the implementation of the `Deserialize`.
30+
#[inline]
3031
fn read<D: Deserialize<E, Self>>(&mut self) -> Res<D> {
3132
D::deserialize(self)
3233
}
3334
/// Reads in forced big endian.
35+
#[inline]
3436
fn read_be<D: Deserialize<BigEndian, Self>>(&mut self) -> Res<D> {
3537
D::deserialize(self)
3638
}
3739
/// Reads in forced little endian.
40+
#[inline]
3841
fn read_le<D: Deserialize<LittleEndian, Self>>(&mut self) -> Res<D> {
3942
D::deserialize(self)
4043
}
@@ -47,12 +50,15 @@ pub trait ERead<E: Endianness>: Sized {
4750
///
4851
/// This exists solely to make `use` notation work. See `ERead` for documentation.
4952
pub trait BERead: Sized {
53+
#[inline]
5054
fn read<D: Deserialize<BigEndian, Self>>(&mut self) -> Res<D> {
5155
D::deserialize(self)
5256
}
57+
#[inline]
5358
fn read_be<D: Deserialize<BigEndian, Self>>(&mut self) -> Res<D> {
5459
D::deserialize(self)
5560
}
61+
#[inline]
5662
fn read_le<D: Deserialize<LittleEndian, Self>>(&mut self) -> Res<D> {
5763
D::deserialize(self)
5864
}
@@ -64,12 +70,15 @@ pub trait BERead: Sized {
6470
///
6571
/// This exists solely to make `use` notation work. See `ERead` for documentation.
6672
pub trait LERead: Sized {
73+
#[inline]
6774
fn read<D: Deserialize<LittleEndian, Self>>(&mut self) -> Res<D> {
6875
D::deserialize(self)
6976
}
77+
#[inline]
7078
fn read_be<D: Deserialize<BigEndian, Self>>(&mut self) -> Res<D> {
7179
D::deserialize(self)
7280
}
81+
#[inline]
7382
fn read_le<D: Deserialize<LittleEndian, Self>>(&mut self) -> Res<D> {
7483
D::deserialize(self)
7584
}

src/serialize.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,13 @@ pub trait Serialize<E: Endianness, W> {
292292
macro_rules! impl_ref {
293293
($t:ident) => {
294294
impl<W: Write + BEWrite> Serialize<BigEndian, W> for &$t {
295+
#[inline]
295296
fn serialize(self, writer: &mut W) -> Res<()> {
296297
BEWrite::write(writer, *self)
297298
}
298299
}
299300
impl<W: Write + LEWrite> Serialize<LittleEndian, W> for &$t {
301+
#[inline]
300302
fn serialize(self, writer: &mut W) -> Res<()> {
301303
LEWrite::write(writer, *self)
302304
}
@@ -307,12 +309,14 @@ macro_rules! impl_ref {
307309
macro_rules! impl_int {
308310
($t:ident) => {
309311
impl<W: Write> Serialize<BigEndian, W> for $t {
312+
#[inline]
310313
fn serialize(self, writer: &mut W) -> Res<()> {
311314
writer.write_all(&self.to_be_bytes())
312315
}
313316
}
314317

315318
impl<W: Write> Serialize<LittleEndian, W> for $t {
319+
#[inline]
316320
fn serialize(self, writer: &mut W) -> Res<()> {
317321
writer.write_all(&self.to_le_bytes())
318322
}
@@ -361,6 +365,7 @@ impl<E: Endianness, W: EWrite<E>> Serialize<E, W> for f32
361365
where
362366
u32: Serialize<E, W>,
363367
{
368+
#[inline]
364369
fn serialize(self, writer: &mut W) -> Res<()> {
365370
writer.write(self.to_bits())
366371
}
@@ -371,6 +376,7 @@ impl<E: Endianness, W: EWrite<E>> Serialize<E, W> for f64
371376
where
372377
u64: Serialize<E, W>,
373378
{
379+
#[inline]
374380
fn serialize(self, writer: &mut W) -> Res<()> {
375381
writer.write(self.to_bits())
376382
}
@@ -379,13 +385,15 @@ impl_ref!(f64);
379385

380386
/// Writes a bool by writing a byte.
381387
impl<E: Endianness, W: Write> Serialize<E, W> for bool {
388+
#[inline]
382389
fn serialize(self, writer: &mut W) -> Res<()> {
383390
writer.write_all(&u8::from(self).to_ne_bytes())
384391
}
385392
}
386393
impl_ref!(bool);
387394

388395
impl<E: Endianness, W: Write> Serialize<E, W> for Ipv4Addr {
396+
#[inline]
389397
fn serialize(self, writer: &mut W) -> Res<()> {
390398
writer.write_all(&self.octets()[..])
391399
}
@@ -398,6 +406,7 @@ impl<E: Endianness, W: EWrite<E>, S> Serialize<E, W> for &[S]
398406
where
399407
for<'a> &'a S: Serialize<E, W>,
400408
{
409+
#[inline]
401410
fn serialize(self, writer: &mut W) -> Res<()> {
402411
for elem in self {
403412
writer.write(elem)?;
@@ -411,6 +420,7 @@ impl<E: Endianness, W: EWrite<E>, S> Serialize<E, W> for &Vec<S>
411420
where
412421
for<'a> &'a S: Serialize<E, W>,
413422
{
423+
#[inline]
414424
fn serialize(self, writer: &mut W) -> Res<()> {
415425
writer.write(self.as_slice())
416426
}
@@ -422,6 +432,7 @@ where
422432
bool: Serialize<E, W>,
423433
for<'a> &'a S: Serialize<E, W>,
424434
{
435+
#[inline]
425436
fn serialize(self, writer: &mut W) -> Res<()> {
426437
writer.write(self.is_some())?;
427438
if let Some(x) = self {

src/write.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,17 @@ pub trait EWrite<E: Endianness>: Sized {
2626
/// Writes a `Serialize` to the writer, in the writer's endianness.
2727
///
2828
/// What's actually written is up to the implementation of the `Serialize`.
29+
#[inline]
2930
fn write<S: Serialize<E, Self>>(&mut self, ser: S) -> Res<()> {
3031
ser.serialize(self)
3132
}
3233
/// Writes in forced big endian.
34+
#[inline]
3335
fn write_be<S: Serialize<BigEndian, Self>>(&mut self, ser: S) -> Res<()> {
3436
ser.serialize(self)
3537
}
3638
/// Writes in forced little endian.
39+
#[inline]
3740
fn write_le<S: Serialize<LittleEndian, Self>>(&mut self, ser: S) -> Res<()> {
3841
ser.serialize(self)
3942
}
@@ -46,12 +49,15 @@ pub trait EWrite<E: Endianness>: Sized {
4649
///
4750
/// This exists solely to make `use` notation work. See `EWrite` for documentation.
4851
pub trait BEWrite: Sized {
52+
#[inline]
4953
fn write<S: Serialize<BigEndian, Self>>(&mut self, ser: S) -> Res<()> {
5054
ser.serialize(self)
5155
}
56+
#[inline]
5257
fn write_be<S: Serialize<BigEndian, Self>>(&mut self, ser: S) -> Res<()> {
5358
ser.serialize(self)
5459
}
60+
#[inline]
5561
fn write_le<S: Serialize<LittleEndian, Self>>(&mut self, ser: S) -> Res<()> {
5662
ser.serialize(self)
5763
}
@@ -63,12 +69,15 @@ pub trait BEWrite: Sized {
6369
///
6470
/// This exists solely to make `use` notation work. See `EWrite` for documentation.
6571
pub trait LEWrite: Sized {
72+
#[inline]
6673
fn write<S: Serialize<LittleEndian, Self>>(&mut self, ser: S) -> Res<()> {
6774
ser.serialize(self)
6875
}
76+
#[inline]
6977
fn write_be<S: Serialize<BigEndian, Self>>(&mut self, ser: S) -> Res<()> {
7078
ser.serialize(self)
7179
}
80+
#[inline]
7281
fn write_le<S: Serialize<LittleEndian, Self>>(&mut self, ser: S) -> Res<()> {
7382
ser.serialize(self)
7483
}

0 commit comments

Comments
 (0)