|
1 |
| -use byteorder::{ByteOrder, LittleEndian}; |
2 | 1 | use core::{f32, i32, i64, u32, u64};
|
3 | 2 | use nan_preserving_float::{F32, F64};
|
4 | 3 | use types::ValueType;
|
@@ -601,91 +600,119 @@ impl LittleEndianConvert for u8 {
|
601 | 600 |
|
602 | 601 | impl LittleEndianConvert for i16 {
|
603 | 602 | fn into_little_endian(self, buffer: &mut [u8]) {
|
604 |
| - LittleEndian::write_i16(buffer, self); |
| 603 | + buffer.copy_from_slice(&self.to_le_bytes()); |
605 | 604 | }
|
606 | 605 |
|
607 | 606 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 607 | + let mut res = [0u8; 2]; |
608 | 608 | buffer
|
609 | 609 | .get(0..2)
|
610 |
| - .map(LittleEndian::read_i16) |
| 610 | + .map(|s| { |
| 611 | + res.copy_from_slice(s); |
| 612 | + Self::from_le_bytes(res) |
| 613 | + }) |
611 | 614 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
612 | 615 | }
|
613 | 616 | }
|
614 | 617 |
|
615 | 618 | impl LittleEndianConvert for u16 {
|
616 | 619 | fn into_little_endian(self, buffer: &mut [u8]) {
|
617 |
| - LittleEndian::write_u16(buffer, self); |
| 620 | + buffer.copy_from_slice(&self.to_le_bytes()); |
618 | 621 | }
|
619 | 622 |
|
620 | 623 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 624 | + let mut res = [0u8; 2]; |
621 | 625 | buffer
|
622 | 626 | .get(0..2)
|
623 |
| - .map(LittleEndian::read_u16) |
| 627 | + .map(|s| { |
| 628 | + res.copy_from_slice(s); |
| 629 | + Self::from_le_bytes(res) |
| 630 | + }) |
624 | 631 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
625 | 632 | }
|
626 | 633 | }
|
627 | 634 |
|
628 | 635 | impl LittleEndianConvert for i32 {
|
629 | 636 | fn into_little_endian(self, buffer: &mut [u8]) {
|
630 |
| - LittleEndian::write_i32(buffer, self); |
| 637 | + buffer.copy_from_slice(&self.to_le_bytes()); |
631 | 638 | }
|
632 | 639 |
|
633 | 640 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 641 | + let mut res = [0u8; 4]; |
634 | 642 | buffer
|
635 | 643 | .get(0..4)
|
636 |
| - .map(LittleEndian::read_i32) |
| 644 | + .map(|s| { |
| 645 | + res.copy_from_slice(s); |
| 646 | + Self::from_le_bytes(res) |
| 647 | + }) |
637 | 648 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
638 | 649 | }
|
639 | 650 | }
|
640 | 651 |
|
641 | 652 | impl LittleEndianConvert for u32 {
|
642 | 653 | fn into_little_endian(self, buffer: &mut [u8]) {
|
643 |
| - LittleEndian::write_u32(buffer, self); |
| 654 | + buffer.copy_from_slice(&self.to_le_bytes()); |
644 | 655 | }
|
645 | 656 |
|
646 | 657 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 658 | + let mut res = [0u8; 4]; |
647 | 659 | buffer
|
648 | 660 | .get(0..4)
|
649 |
| - .map(LittleEndian::read_u32) |
| 661 | + .map(|s| { |
| 662 | + res.copy_from_slice(s); |
| 663 | + Self::from_le_bytes(res) |
| 664 | + }) |
650 | 665 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
651 | 666 | }
|
652 | 667 | }
|
653 | 668 |
|
654 | 669 | impl LittleEndianConvert for i64 {
|
655 | 670 | fn into_little_endian(self, buffer: &mut [u8]) {
|
656 |
| - LittleEndian::write_i64(buffer, self); |
| 671 | + buffer.copy_from_slice(&self.to_le_bytes()); |
657 | 672 | }
|
658 | 673 |
|
659 | 674 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 675 | + let mut res = [0u8; 8]; |
660 | 676 | buffer
|
661 | 677 | .get(0..8)
|
662 |
| - .map(LittleEndian::read_i64) |
| 678 | + .map(|s| { |
| 679 | + res.copy_from_slice(s); |
| 680 | + Self::from_le_bytes(res) |
| 681 | + }) |
663 | 682 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
664 | 683 | }
|
665 | 684 | }
|
666 | 685 |
|
667 | 686 | impl LittleEndianConvert for f32 {
|
668 | 687 | 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()); |
670 | 689 | }
|
671 | 690 |
|
672 | 691 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 692 | + let mut res = [0u8; 4]; |
673 | 693 | buffer
|
674 | 694 | .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 | + }) |
676 | 699 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
677 | 700 | }
|
678 | 701 | }
|
679 | 702 |
|
680 | 703 | impl LittleEndianConvert for f64 {
|
681 | 704 | 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()); |
683 | 706 | }
|
684 | 707 |
|
685 | 708 | fn from_little_endian(buffer: &[u8]) -> Result<Self, Error> {
|
| 709 | + let mut res = [0u8; 8]; |
686 | 710 | buffer
|
687 | 711 | .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 | + }) |
689 | 716 | .ok_or_else(|| Error::InvalidLittleEndianBuffer)
|
690 | 717 | }
|
691 | 718 | }
|
|
0 commit comments