aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoey Sacchini <joey@sacchini.net>2020-10-19 13:15:37 -0400
committerJoey Sacchini <joey@sacchini.net>2020-10-19 13:15:37 -0400
commit28cb4334a122a992c8b11846cc6d4f4c8c84be62 (patch)
treed2c42a011bcd98f5e1dd8d29d1a971991ef52bb4 /src
parentefc2924f61f3729638ef0fa1d8ffe0191612394a (diff)
downloadmcproto-rs-28cb4334a122a992c8b11846cc6d4f4c8c84be62.tar.gz
mcproto-rs-28cb4334a122a992c8b11846cc6d4f4c8c84be62.tar.bz2
mcproto-rs-28cb4334a122a992c8b11846cc6d4f4c8c84be62.zip
let the compiler decide about inlining, my choices seem to have a trivial impact on performance
Diffstat (limited to 'src')
-rw-r--r--src/deserialize.rs8
-rw-r--r--src/nbt.rs15
-rw-r--r--src/utils.rs11
-rw-r--r--src/v1_15_2.rs8
4 files changed, 0 insertions, 42 deletions
diff --git a/src/deserialize.rs b/src/deserialize.rs
index be5496e..dd9a845 100644
--- a/src/deserialize.rs
+++ b/src/deserialize.rs
@@ -57,7 +57,6 @@ impl fmt::Debug for DeserializeErr {
impl std::error::Error for DeserializeErr {}
impl<'b, R> Into<DeserializeResult<'b, R>> for DeserializeErr {
- #[inline]
fn into(self) -> DeserializeResult<'b, R> {
Err(self)
}
@@ -69,24 +68,20 @@ pub struct Deserialized<'b, R> {
}
impl<'b, R> Into<DeserializeResult<'b, R>> for Deserialized<'b, R> {
- #[inline]
fn into(self) -> DeserializeResult<'b, R> {
Ok(self)
}
}
impl<'b, R> Deserialized<'b, R> {
- #[inline]
pub fn create(value: R, data: &'b [u8]) -> Self {
Deserialized { value, data }
}
- #[inline]
pub fn ok(value: R, rest: &'b [u8]) -> DeserializeResult<'b, R> {
Self::create(value, rest).into()
}
- #[inline]
pub fn replace<T>(self, other: T) -> Deserialized<'b, T> {
Deserialized {
value: other,
@@ -94,7 +89,6 @@ impl<'b, R> Deserialized<'b, R> {
}
}
- #[inline]
pub fn map<F, T>(self, f: F) -> Deserialized<'b, T>
where
F: FnOnce(R) -> T,
@@ -105,7 +99,6 @@ impl<'b, R> Deserialized<'b, R> {
}
}
- #[inline]
pub fn try_map<F, T>(self, f: F) -> DeserializeResult<'b, T>
where
F: FnOnce(R) -> Result<T, DeserializeErr>,
@@ -119,7 +112,6 @@ impl<'b, R> Deserialized<'b, R> {
}
}
- #[inline]
pub fn and_then<F, T>(self, f: F) -> DeserializeResult<'b, T>
where
F: FnOnce(R, &'b [u8]) -> DeserializeResult<'b, T>,
diff --git a/src/nbt.rs b/src/nbt.rs
index 8c5500e..057ca25 100644
--- a/src/nbt.rs
+++ b/src/nbt.rs
@@ -169,7 +169,6 @@ impl TestRandom for Tag {
}
}
-#[inline]
fn write_contents<F>(contents: &Vec<F>) -> String
where
F: fmt::Display,
@@ -205,7 +204,6 @@ fn read_nbt_data(data: &[u8]) -> DeserializeResult<NamedTag> {
}
// reads any named tag: read id -> read name -> read tag with id -> name tag with name
-#[inline]
pub fn read_named_tag(data: &[u8]) -> DeserializeResult<NamedTag> {
let Deserialized {
value: tag_type_id,
@@ -221,7 +219,6 @@ pub fn read_named_tag(data: &[u8]) -> DeserializeResult<NamedTag> {
}
// reads any tag (given it's id)
-#[inline]
pub fn read_tag(tag_type_id: u8, data: &[u8]) -> DeserializeResult<Tag> {
match tag_type_id {
0x00 => Deserialized::ok(Tag::End, data),
@@ -241,44 +238,36 @@ pub fn read_tag(tag_type_id: u8, data: &[u8]) -> DeserializeResult<Tag> {
}
}
-#[inline]
fn read_tag_byte(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_one_byte(data)?.map(move |byte| Tag::Byte(byte as i8)))
}
-#[inline]
fn read_tag_short(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_short(data)?.map(move |i| Tag::Short(i as i16)))
}
-#[inline]
fn read_tag_int(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_int(data)?.map(move |i| Tag::Int(i as i32)))
}
-#[inline]
fn read_tag_long(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_long(data)?.map(move |i| Tag::Long(i as i64)))
}
-#[inline]
fn read_tag_float(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_int(data)?.map(move |i| Tag::Float(f32::from_bits(i as u32))))
}
-#[inline]
fn read_tag_double(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_long(data)?.map(move |i| Tag::Double(f64::from_bits(i as u64))))
}
-#[inline]
fn read_tag_byte_array(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_int(data)?
.and_then(move |size, rest| take(size as usize)(rest))?
.map(move |arr| Tag::ByteArray(Vec::from(arr))))
}
-#[inline]
fn read_tag_string(data: &[u8]) -> DeserializeResult<Tag> {
Ok(read_string(data)?.map(move |str| Tag::String(str)))
}
@@ -322,7 +311,6 @@ fn read_tag_compound(data: &[u8]) -> DeserializeResult<Tag> {
Deserialized::ok(Tag::Compound(out), remaining_data)
}
-#[inline]
fn read_tag_int_array(data: &[u8]) -> DeserializeResult<Tag> {
read_array_tag(
data,
@@ -331,7 +319,6 @@ fn read_tag_int_array(data: &[u8]) -> DeserializeResult<Tag> {
)
}
-#[inline]
fn read_tag_long_array(data: &[u8]) -> DeserializeResult<Tag> {
read_array_tag(
data,
@@ -340,7 +327,6 @@ fn read_tag_long_array(data: &[u8]) -> DeserializeResult<Tag> {
)
}
-#[inline]
fn read_array_tag<'a, R, F, M>(
data: &'a [u8],
parser: F,
@@ -369,7 +355,6 @@ fn read_array_tag<'a, R, F, M>(
}
}
-#[inline]
fn read_string(data: &[u8]) -> DeserializeResult<String> {
read_short(data)?
.and_then(move |length, data| take(length as usize)(data))?
diff --git a/src/utils.rs b/src/utils.rs
index bb8ea36..fcfcb70 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -1,7 +1,6 @@
use crate::{DeserializeErr, DeserializeResult, Deserialized};
use alloc::string::String;
-#[inline]
pub fn read_one_byte(data: &[u8]) -> DeserializeResult<u8> {
match data.split_first() {
Some((byte, rest)) => Deserialized::ok(*byte, rest),
@@ -9,7 +8,6 @@ pub fn read_one_byte(data: &[u8]) -> DeserializeResult<u8> {
}
}
-#[inline]
pub fn take(amount: usize) -> impl for<'b> Fn(&'b [u8]) -> DeserializeResult<'b, &'b [u8]> {
move |data| {
if data.len() < amount {
@@ -20,7 +18,6 @@ pub fn take(amount: usize) -> impl for<'b> Fn(&'b [u8]) -> DeserializeResult<'b,
}
}
-#[inline]
pub fn read_long(data: &[u8]) -> DeserializeResult<u64> {
Ok(take(8)(data)?.map(move |bytes| {
(bytes[0] as u64) << 56
@@ -34,7 +31,6 @@ pub fn read_long(data: &[u8]) -> DeserializeResult<u64> {
}))
}
-#[inline]
pub fn write_long(v: u64) -> [u8; 8] {
[
(v >> 56) as u8,
@@ -48,7 +44,6 @@ pub fn write_long(v: u64) -> [u8; 8] {
]
}
-#[inline]
pub fn read_int(data: &[u8]) -> DeserializeResult<u32> {
Ok(take(4)(data)?.map(move |bytes| {
(bytes[0] as u32) << 24
@@ -58,22 +53,18 @@ pub fn read_int(data: &[u8]) -> DeserializeResult<u32> {
}))
}
-#[inline]
pub fn write_int(v: u32) -> [u8; 4] {
[(v >> 24) as u8, (v >> 16) as u8, (v >> 8) as u8, v as u8]
}
-#[inline]
pub fn read_short(data: &[u8]) -> DeserializeResult<u16> {
Ok(take(2)(data)?.map(move |bytes| (bytes[0] as u16) << 8 | (bytes[1] as u16)))
}
-#[inline]
pub fn write_short(v: u16) -> [u8; 2] {
[(v >> 8) as u8, v as u8]
}
-#[inline]
pub fn hex(data: &[u8]) -> String {
let mut str = String::with_capacity(data.len() * 2);
for byte_ref in data {
@@ -87,7 +78,6 @@ pub fn hex(data: &[u8]) -> String {
const ZERO_ASCII_CODE: u8 = 48;
const LOWER_A_ASCII_CODE: u8 = 97;
-#[inline]
fn hex_char_for(half: u8) -> char {
if half > 0xF {
panic!("not defined for > 0xF (operates on half a byte)");
@@ -100,7 +90,6 @@ fn hex_char_for(half: u8) -> char {
}
}
-#[inline]
pub fn parse_hex_char(data: u8) -> Option<u8> {
const UPPER_A_ASCII_CODE: u8 = 65;
const LOWER_F_ASCII_CODE: u8 = 102;
diff --git a/src/v1_15_2.rs b/src/v1_15_2.rs
index 661fcac..7abca58 100644
--- a/src/v1_15_2.rs
+++ b/src/v1_15_2.rs
@@ -821,12 +821,10 @@ proto_byte_enum!(HandshakeNextState,
0x02 :: Login
);
-#[inline]
fn varint_to_usize(v: VarInt) -> usize {
v.into()
}
-#[inline]
fn varint_from_usize(u: usize) -> VarInt {
u.into()
}
@@ -837,34 +835,28 @@ counted_array_type!(
varint_from_usize
);
-#[inline]
fn i16_to_usize(v: i16) -> usize {
v as usize
}
-#[inline]
fn i16_from_usize(u: usize) -> i16 {
u as i16
}
counted_array_type!(ShortCountedArray, i16, i16_to_usize, i16_from_usize);
-#[inline]
fn i32_to_usize(v: i32) -> usize {
v as usize
}
-#[inline]
fn i32_from_usize(u: usize) -> i32 {
u as i32
}
counted_array_type!(IntCountedArray, i32, i32_to_usize, i32_from_usize);
-#[inline]
fn i8_to_usize(v: i8) -> usize {
v as usize
}
-#[inline]
fn i8_from_usize(u: usize) -> i8 {
u as i8
}