Skip to content

Commit e88d5d3

Browse files
elichaipepyakin
authored andcommitted
Removed Byteorder now that rust supports it natively (#171)
* Removed byteorder now that from_le_bytes is stabilized * Rust fmt
1 parent 23b054c commit e88d5d3

File tree

3 files changed

+43
-18
lines changed

3 files changed

+43
-18
lines changed

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ exclude = [ "/res/*", "/tests/*", "/fuzz/*", "/benches/*" ]
1313
[features]
1414
default = ["std"]
1515
# Disable for no_std support
16-
std = ["parity-wasm/std", "byteorder/std"]
16+
std = ["parity-wasm/std"]
1717
# Enable for no_std support
1818
# hashbrown only works on no_std
1919
core = ["hashbrown", "libm"]
2020

2121
[dependencies]
2222
parity-wasm = { version = "0.31", default-features = false }
23-
byteorder = { version = "1.0", default-features = false }
2423
hashbrown = { version = "0.1.8", optional = true }
2524
memory_units = "0.3.0"
2625
libm = { version = "0.1.2", optional = true }

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ extern crate wabt;
115115
#[macro_use]
116116
extern crate assert_matches;
117117

118-
extern crate byteorder;
119118
#[cfg(not(feature = "std"))]
120119
extern crate hashbrown;
121120
extern crate memory_units as memory_units_crate;

src/value.rs

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use byteorder::{ByteOrder, LittleEndian};
21
use core::{f32, i32, i64, u32, u64};
32
use nan_preserving_float::{F32, F64};
43
use types::ValueType;
@@ -601,91 +600,119 @@ impl LittleEndianConvert for u8 {
601600

602601
impl LittleEndianConvert for i16 {
603602
fn into_little_endian(self, buffer: &mut [u8]) {
604-
LittleEndian::write_i16(buffer, self);
603+
buffer.copy_from_slice(&self.to_le_bytes());
605604
}
606605

607606
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
607+
let mut res = [0u8; 2];
608608
buffer
609609
.get(0..2)
610-
.map(LittleEndian::read_i16)
610+
.map(|s| {
611+
res.copy_from_slice(s);
612+
Self::from_le_bytes(res)
613+
})
611614
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
612615
}
613616
}
614617

615618
impl LittleEndianConvert for u16 {
616619
fn into_little_endian(self, buffer: &mut [u8]) {
617-
LittleEndian::write_u16(buffer, self);
620+
buffer.copy_from_slice(&self.to_le_bytes());
618621
}
619622

620623
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
624+
let mut res = [0u8; 2];
621625
buffer
622626
.get(0..2)
623-
.map(LittleEndian::read_u16)
627+
.map(|s| {
628+
res.copy_from_slice(s);
629+
Self::from_le_bytes(res)
630+
})
624631
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
625632
}
626633
}
627634

628635
impl LittleEndianConvert for i32 {
629636
fn into_little_endian(self, buffer: &mut [u8]) {
630-
LittleEndian::write_i32(buffer, self);
637+
buffer.copy_from_slice(&self.to_le_bytes());
631638
}
632639

633640
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
641+
let mut res = [0u8; 4];
634642
buffer
635643
.get(0..4)
636-
.map(LittleEndian::read_i32)
644+
.map(|s| {
645+
res.copy_from_slice(s);
646+
Self::from_le_bytes(res)
647+
})
637648
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
638649
}
639650
}
640651

641652
impl LittleEndianConvert for u32 {
642653
fn into_little_endian(self, buffer: &mut [u8]) {
643-
LittleEndian::write_u32(buffer, self);
654+
buffer.copy_from_slice(&self.to_le_bytes());
644655
}
645656

646657
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
658+
let mut res = [0u8; 4];
647659
buffer
648660
.get(0..4)
649-
.map(LittleEndian::read_u32)
661+
.map(|s| {
662+
res.copy_from_slice(s);
663+
Self::from_le_bytes(res)
664+
})
650665
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
651666
}
652667
}
653668

654669
impl LittleEndianConvert for i64 {
655670
fn into_little_endian(self, buffer: &mut [u8]) {
656-
LittleEndian::write_i64(buffer, self);
671+
buffer.copy_from_slice(&self.to_le_bytes());
657672
}
658673

659674
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
675+
let mut res = [0u8; 8];
660676
buffer
661677
.get(0..8)
662-
.map(LittleEndian::read_i64)
678+
.map(|s| {
679+
res.copy_from_slice(s);
680+
Self::from_le_bytes(res)
681+
})
663682
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
664683
}
665684
}
666685

667686
impl LittleEndianConvert for f32 {
668687
fn into_little_endian(self, buffer: &mut [u8]) {
669-
LittleEndian::write_f32(buffer, self);
688+
buffer.copy_from_slice(&self.to_bits().to_le_bytes());
670689
}
671690

672691
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
692+
let mut res = [0u8; 4];
673693
buffer
674694
.get(0..4)
675-
.map(LittleEndian::read_f32)
695+
.map(|s| {
696+
res.copy_from_slice(s);
697+
Self::from_bits(u32::from_le_bytes(res))
698+
})
676699
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
677700
}
678701
}
679702

680703
impl LittleEndianConvert for f64 {
681704
fn into_little_endian(self, buffer: &mut [u8]) {
682-
LittleEndian::write_f64(buffer, self);
705+
buffer.copy_from_slice(&self.to_bits().to_le_bytes());
683706
}
684707

685708
fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
709+
let mut res = [0u8; 8];
686710
buffer
687711
.get(0..8)
688-
.map(LittleEndian::read_f64)
712+
.map(|s| {
713+
res.copy_from_slice(s);
714+
Self::from_bits(u64::from_le_bytes(res))
715+
})
689716
.ok_or_else(|| Error::InvalidLittleEndianBuffer)
690717
}
691718
}

0 commit comments

Comments
 (0)