Added Sized to aid in less typing so the trait can define common funcs.
Changed the use of Vectors to the Spellbook DynamicArray class.
This commit is contained in:
parent
3a1b847c51
commit
6a9e75a05c
@ -17,6 +17,9 @@ convert_sigils = ["sigils"]
|
|||||||
[dependencies.scribe]
|
[dependencies.scribe]
|
||||||
git = "ssh://git@gitlab.com/CyberMages/Core/scribe.git"
|
git = "ssh://git@gitlab.com/CyberMages/Core/scribe.git"
|
||||||
|
|
||||||
|
[dependencies.spellbook]
|
||||||
|
git = "ssh://git@gitlab.com/CyberMages/Core/spellbook.git"
|
||||||
|
|
||||||
[dependencies.sigils]
|
[dependencies.sigils]
|
||||||
git = "ssh://git@gitlab.com/CyberMages/Core/sigils.git"
|
git = "ssh://git@gitlab.com/CyberMages/Core/sigils.git"
|
||||||
optional = true
|
optional = true
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
|
use spellbook::components::DynamicArray;
|
||||||
|
|
||||||
use ::byte_sized::ByteSized;
|
use ::byte_sized::ByteSized;
|
||||||
|
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn i16_to_bytes(num: i16) -> Vec<u8>
|
fn i16_to_bytes(num: i16) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
Self::u16_to_bytes(num as u16)
|
Self::u16_to_bytes(num as u16)
|
||||||
}
|
}
|
||||||
@ -100,7 +102,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn i32_to_bytes(num: i32) -> Vec<u8>
|
fn i32_to_bytes(num: i32) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
Self::u32_to_bytes(num as u32)
|
Self::u32_to_bytes(num as u32)
|
||||||
}
|
}
|
||||||
@ -111,7 +113,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn i64_to_bytes(num: i64) -> Vec<u8>
|
fn i64_to_bytes(num: i64) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
Self::u64_to_bytes(num as u64)
|
Self::u64_to_bytes(num as u64)
|
||||||
}
|
}
|
||||||
@ -126,7 +128,7 @@ pub trait Converter
|
|||||||
/// This will panic if the number of bytes
|
/// This will panic if the number of bytes
|
||||||
/// passed in is less than the byte size of the given number
|
/// passed in is less than the byte size of the given number
|
||||||
/// or more than eight.
|
/// or more than eight.
|
||||||
fn isize_to_bytes(num: isize) -> Vec<u8>
|
fn isize_to_bytes(num: isize) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
let temp_num: usize;
|
let temp_num: usize;
|
||||||
|
|
||||||
@ -140,7 +142,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn f32_to_bytes(num: f32) -> Vec<u8>
|
fn f32_to_bytes(num: f32) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
@ -154,7 +156,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn f64_to_bytes(num: f64) -> Vec<u8>
|
fn f64_to_bytes(num: f64) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
@ -202,7 +204,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn u16_to_bytes(num: u16) -> Vec<u8>;
|
fn u16_to_bytes(num: u16) -> DynamicArray<u8>;
|
||||||
|
|
||||||
/// Converts an unsigned 32-bit integer to bytes
|
/// Converts an unsigned 32-bit integer to bytes
|
||||||
/// and places them into the given buffer.
|
/// and places them into the given buffer.
|
||||||
@ -210,7 +212,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn u32_to_bytes(num: u32) -> Vec<u8>;
|
fn u32_to_bytes(num: u32) -> DynamicArray<u8>;
|
||||||
|
|
||||||
/// Converts an unsigned 64-bit integer to bytes
|
/// Converts an unsigned 64-bit integer to bytes
|
||||||
/// and places them into the given buffer.
|
/// and places them into the given buffer.
|
||||||
@ -218,7 +220,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough space to store the converted value.
|
/// enough space to store the converted value.
|
||||||
fn u64_to_bytes(num: u64) -> Vec<u8>;
|
fn u64_to_bytes(num: u64) -> DynamicArray<u8>;
|
||||||
|
|
||||||
/// Converts an unsigned integer to bytes
|
/// Converts an unsigned integer to bytes
|
||||||
/// and places them into the given buffer.
|
/// and places them into the given buffer.
|
||||||
@ -230,7 +232,7 @@ pub trait Converter
|
|||||||
/// This will panic if the number of bytes
|
/// This will panic if the number of bytes
|
||||||
/// passed in is less than the byte size of the given number
|
/// passed in is less than the byte size of the given number
|
||||||
/// or more than eight.
|
/// or more than eight.
|
||||||
fn usize_to_bytes(num: usize) -> Vec<u8>;
|
fn usize_to_bytes(num: usize) -> DynamicArray<u8>;
|
||||||
|
|
||||||
|
|
||||||
/// Converts a String to bytes
|
/// Converts a String to bytes
|
||||||
@ -250,7 +252,7 @@ pub trait Converter
|
|||||||
/// # Panics
|
/// # Panics
|
||||||
/// This will panic if the buffer does not have
|
/// This will panic if the buffer does not have
|
||||||
/// enough information to convert.
|
/// enough information to convert.
|
||||||
fn string_to_bytes(string: String) -> Vec<u8>;
|
fn string_to_bytes(string: String) -> DynamicArray<u8>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
use spellbook::components::DynamicArray;
|
||||||
|
|
||||||
use ::byte_sized::ByteSized;
|
use ::byte_sized::ByteSized;
|
||||||
use ::byte_sized::U64_BYTES;
|
use ::byte_sized::U64_BYTES;
|
||||||
use ::converter::Converter;
|
use ::converter::Converter;
|
||||||
@ -144,25 +146,25 @@ impl Converter for BigEndian
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn u16_to_bytes(num: u16) -> Vec<u8>
|
fn u16_to_bytes(num: u16) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_big_endian!(num, u16::BYTES)
|
unpack_big_endian!(num, u16::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn u32_to_bytes(num: u32) -> Vec<u8>
|
fn u32_to_bytes(num: u32) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_big_endian!(num, u32::BYTES)
|
unpack_big_endian!(num, u32::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn u64_to_bytes(num: u64) -> Vec<u8>
|
fn u64_to_bytes(num: u64) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_big_endian!(num, u64::BYTES)
|
unpack_big_endian!(num, u64::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn usize_to_bytes(num: usize) -> Vec<u8>
|
fn usize_to_bytes(num: usize) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_big_endian!(num, usize::BYTES)
|
unpack_big_endian!(num, usize::BYTES)
|
||||||
@ -204,11 +206,11 @@ impl Converter for BigEndian
|
|||||||
new_string
|
new_string
|
||||||
}
|
}
|
||||||
|
|
||||||
fn string_to_bytes(string: String) -> Vec<u8>
|
fn string_to_bytes(string: String) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
let bytes: &[u8];
|
let bytes: &[u8];
|
||||||
let byte_count: u64;
|
let byte_count: u64;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Turn the string into a byte array.
|
// Turn the string into a byte array.
|
||||||
bytes = string.as_bytes();
|
bytes = string.as_bytes();
|
||||||
@ -218,7 +220,7 @@ impl Converter for BigEndian
|
|||||||
byte_count = bytes.len() as u64;
|
byte_count = bytes.len() as u64;
|
||||||
|
|
||||||
// Make sure the buffer has enough space for this string.
|
// Make sure the buffer has enough space for this string.
|
||||||
buffer = Vec::with_capacity(bytes.len() + U64_BYTES);
|
buffer = DynamicArray::with_capacity(bytes.len() + U64_BYTES);
|
||||||
|
|
||||||
// Add the count to the buffer.
|
// Add the count to the buffer.
|
||||||
buffer.append(&mut BigEndian::u64_to_bytes(byte_count));
|
buffer.append(&mut BigEndian::u64_to_bytes(byte_count));
|
||||||
@ -272,25 +274,25 @@ impl Converter for LittleEndian
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn u16_to_bytes(num: u16) -> Vec<u8>
|
fn u16_to_bytes(num: u16) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_little_endian!(num, u16::BYTES)
|
unpack_little_endian!(num, u16::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn u32_to_bytes(num: u32) -> Vec<u8>
|
fn u32_to_bytes(num: u32) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_little_endian!(num, u32::BYTES)
|
unpack_little_endian!(num, u32::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn u64_to_bytes(num: u64) -> Vec<u8>
|
fn u64_to_bytes(num: u64) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_little_endian!(num, u64::BYTES)
|
unpack_little_endian!(num, u64::BYTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn usize_to_bytes(num: usize) -> Vec<u8>
|
fn usize_to_bytes(num: usize) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// Unpack the value into it's byte form.
|
// Unpack the value into it's byte form.
|
||||||
unpack_little_endian!(num, usize::BYTES)
|
unpack_little_endian!(num, usize::BYTES)
|
||||||
@ -332,11 +334,11 @@ impl Converter for LittleEndian
|
|||||||
new_string
|
new_string
|
||||||
}
|
}
|
||||||
|
|
||||||
fn string_to_bytes(string: String) -> Vec<u8>
|
fn string_to_bytes(string: String) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
let bytes: &[u8];
|
let bytes: &[u8];
|
||||||
let byte_count: u64;
|
let byte_count: u64;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Turn the string into a byte array.
|
// Turn the string into a byte array.
|
||||||
bytes = string.as_bytes();
|
bytes = string.as_bytes();
|
||||||
@ -346,7 +348,7 @@ impl Converter for LittleEndian
|
|||||||
byte_count = bytes.len() as u64;
|
byte_count = bytes.len() as u64;
|
||||||
|
|
||||||
// Make sure the buffer has enough space for this string.
|
// Make sure the buffer has enough space for this string.
|
||||||
buffer = Vec::with_capacity(bytes.len() + U64_BYTES);
|
buffer = DynamicArray::with_capacity(bytes.len() + U64_BYTES);
|
||||||
|
|
||||||
// Add the count to the buffer.
|
// Add the count to the buffer.
|
||||||
buffer.append(&mut LittleEndian::u64_to_bytes(byte_count));
|
buffer.append(&mut LittleEndian::u64_to_bytes(byte_count));
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#![doc(html_logo_url="",
|
#![doc(html_logo_url="",
|
||||||
html_favicon_url="http://cybermagesllc.com/favicon.ico",
|
html_favicon_url="http://cybermagesllc.com/favicon.ico",
|
||||||
html_root_url="http://cybermagesllc.com")]
|
html_root_url="http://cybermagesllc.com")]
|
||||||
#![feature(associated_consts)]
|
|
||||||
#![warn(missing_docs)]
|
#![warn(missing_docs)]
|
||||||
|
|
||||||
|
|
||||||
@ -15,6 +14,8 @@ extern crate scribe;
|
|||||||
#[cfg(feature="sigils")]
|
#[cfg(feature="sigils")]
|
||||||
extern crate sigils;
|
extern crate sigils;
|
||||||
|
|
||||||
|
extern crate spellbook;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -63,11 +63,11 @@ macro_rules! unpack_big_endian
|
|||||||
($value: expr, $bytes: expr) =>
|
($value: expr, $bytes: expr) =>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: ::spellbook::components::DynamicArray<u8>;
|
||||||
|
|
||||||
// Create an array with enough space for this value
|
// Create an array with enough space for this value
|
||||||
// and then bit shift the value into a buffer of bytes.
|
// and then bit shift the value into a buffer of bytes.
|
||||||
buffer = Vec::with_capacity($bytes);
|
buffer = ::spellbook::components::DynamicArray::with_capacity($bytes);
|
||||||
for i in 0..$bytes
|
for i in 0..$bytes
|
||||||
{
|
{
|
||||||
buffer.push(($value >> (($bytes - i) - 1) * 8) as u8);
|
buffer.push(($value >> (($bytes - i) - 1) * 8) as u8);
|
||||||
@ -85,11 +85,11 @@ macro_rules! unpack_little_endian
|
|||||||
($value: expr, $bytes: expr) =>
|
($value: expr, $bytes: expr) =>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: ::spellbook::components::DynamicArray<u8>;
|
||||||
|
|
||||||
// Create an array with enough space for this value
|
// Create an array with enough space for this value
|
||||||
// and then bit shift the value into a buffer of bytes.
|
// and then bit shift the value into a buffer of bytes.
|
||||||
buffer = Vec::with_capacity($bytes);
|
buffer = ::spellbook::components::DynamicArray::with_capacity($bytes);
|
||||||
for i in 0..$bytes
|
for i in 0..$bytes
|
||||||
{
|
{
|
||||||
buffer.push(($value >> (i * 8)) as u8);
|
buffer.push(($value >> (i * 8)) as u8);
|
||||||
@ -107,7 +107,7 @@ macro_rules! swap_big_to_little_endian
|
|||||||
($value: expr, $target_type: ty, $bytes: expr) =>
|
($value: expr, $target_type: ty, $bytes: expr) =>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let buffer: Vec<u8>;
|
let buffer: ::spellbook::components::DynamicArray<u8>;
|
||||||
|
|
||||||
// Convert the big endian value to bytes.
|
// Convert the big endian value to bytes.
|
||||||
buffer = unpack_big_endian!($value, $bytes);
|
buffer = unpack_big_endian!($value, $bytes);
|
||||||
@ -124,7 +124,7 @@ macro_rules! swap_little_to_big_endian
|
|||||||
($value: expr, $target_type: ty, $bytes: expr) =>
|
($value: expr, $target_type: ty, $bytes: expr) =>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let buffer: Vec<u8>;
|
let buffer: ::spellbook::components::DynamicArray<u8>;
|
||||||
|
|
||||||
// Convert the little endian value to bytes.
|
// Convert the little endian value to bytes.
|
||||||
buffer = unpack_little_endian!($value, $bytes);
|
buffer = unpack_little_endian!($value, $bytes);
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
use spellbook::components::DynamicArray;
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
use sigils::{Zero, Number, Real};
|
use sigils::{Zero, Number, Real};
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
use sigils::vector::{Vector, Vector2, Vector3, Vector4};
|
use sigils::vector::{DynamicArraytor, DynamicArraytor2, DynamicArraytor3, DynamicArraytor4};
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
use sigils::quaternion::Quaternion;
|
use sigils::quaternion::Quaternion;
|
||||||
@ -17,11 +19,14 @@ use ::endian::Endianess;
|
|||||||
// From and Into are not used because we need to also
|
// From and Into are not used because we need to also
|
||||||
// know the endianess to use for converting.
|
// know the endianess to use for converting.
|
||||||
/// A type that can be converted to and from bytes.
|
/// A type that can be converted to and from bytes.
|
||||||
pub trait Transmutable
|
pub trait Transmutable: Sized
|
||||||
{
|
{
|
||||||
/// Transmute an array of bytes in the
|
/// Transmute an array of bytes in the
|
||||||
/// platform's endian to this type.
|
/// platform's endian to this type.
|
||||||
fn from_bytes(buffer: &[u8]) -> Self;
|
fn from_bytes(buffer: &[u8]) -> Self
|
||||||
|
{
|
||||||
|
Self::from_endian_bytes(buffer, Endianess::Platform)
|
||||||
|
}
|
||||||
|
|
||||||
/// Transmute an array of bytes in the
|
/// Transmute an array of bytes in the
|
||||||
/// given endian to this type.
|
/// given endian to this type.
|
||||||
@ -30,20 +35,29 @@ pub trait Transmutable
|
|||||||
|
|
||||||
/// Transmute this type to an array of bytes in
|
/// Transmute this type to an array of bytes in
|
||||||
/// the Platform's endian.
|
/// the Platform's endian.
|
||||||
fn to_bytes(self) -> Vec<u8>;
|
fn to_bytes(self) -> DynamicArray<u8>
|
||||||
|
{
|
||||||
|
self.as_endian_bytes(Endianess::Platform)
|
||||||
|
}
|
||||||
|
|
||||||
/// Transmute this type to an array of bytes in
|
/// Transmute this type to an array of bytes in
|
||||||
/// the desired endian.
|
/// the desired endian.
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>;
|
fn to_endian_bytes(self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
|
{
|
||||||
|
self.as_endian_bytes(endianess)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Transmute this type to an array of bytes in
|
/// Transmute this type to an array of bytes in
|
||||||
/// the Platform's endian.
|
/// the Platform's endian.
|
||||||
fn as_bytes(&self) -> Vec<u8>;
|
fn as_bytes(&self) -> DynamicArray<u8>
|
||||||
|
{
|
||||||
|
self.as_endian_bytes(Endianess::Platform)
|
||||||
|
}
|
||||||
|
|
||||||
/// Transmute this type to an array of bytes in
|
/// Transmute this type to an array of bytes in
|
||||||
/// the desired endian.
|
/// the desired endian.
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>;
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>;
|
||||||
|
|
||||||
|
|
||||||
/// Get the current size of this Transmutable in bytes.
|
/// Get the current size of this Transmutable in bytes.
|
||||||
@ -122,11 +136,6 @@ macro_rules! handle_endianess_from_bytes
|
|||||||
|
|
||||||
impl Transmutable for u8
|
impl Transmutable for u8
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
@ -139,23 +148,8 @@ impl Transmutable for u8
|
|||||||
buffer[0]
|
buffer[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
// A single byte has no endian form.
|
// A single byte has no endian form.
|
||||||
vec![*self]
|
vec![*self]
|
||||||
@ -169,11 +163,6 @@ impl Transmutable for u8
|
|||||||
|
|
||||||
impl Transmutable for u16
|
impl Transmutable for u16
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -184,22 +173,7 @@ impl Transmutable for u16
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u16)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u16)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Return the Endianess conversion.
|
// Return the Endianess conversion.
|
||||||
handle_endianess_to_bytes!(self, endianess, u16_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, u16_to_bytes)
|
||||||
@ -213,11 +187,6 @@ impl Transmutable for u16
|
|||||||
|
|
||||||
impl Transmutable for u32
|
impl Transmutable for u32
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -228,22 +197,7 @@ impl Transmutable for u32
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u32)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u32)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, u32_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, u32_to_bytes)
|
||||||
@ -257,11 +211,6 @@ impl Transmutable for u32
|
|||||||
|
|
||||||
impl Transmutable for u64
|
impl Transmutable for u64
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -272,22 +221,7 @@ impl Transmutable for u64
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u64)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_u64)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, u64_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, u64_to_bytes)
|
||||||
@ -301,11 +235,6 @@ impl Transmutable for u64
|
|||||||
|
|
||||||
impl Transmutable for usize
|
impl Transmutable for usize
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -316,22 +245,7 @@ impl Transmutable for usize
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_usize)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_usize)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, usize_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, usize_to_bytes)
|
||||||
@ -345,11 +259,6 @@ impl Transmutable for usize
|
|||||||
|
|
||||||
impl Transmutable for i8
|
impl Transmutable for i8
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
@ -360,23 +269,8 @@ impl Transmutable for i8
|
|||||||
buffer[0] as i8
|
buffer[0] as i8
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
{
|
||||||
vec![*self as u8]
|
vec![*self as u8]
|
||||||
}
|
}
|
||||||
@ -389,11 +283,6 @@ impl Transmutable for i8
|
|||||||
|
|
||||||
impl Transmutable for i16
|
impl Transmutable for i16
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -404,22 +293,7 @@ impl Transmutable for i16
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i16)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i16)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, i16_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, i16_to_bytes)
|
||||||
@ -433,11 +307,6 @@ impl Transmutable for i16
|
|||||||
|
|
||||||
impl Transmutable for i32
|
impl Transmutable for i32
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -448,22 +317,7 @@ impl Transmutable for i32
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i32)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i32)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, i32_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, i32_to_bytes)
|
||||||
@ -477,11 +331,6 @@ impl Transmutable for i32
|
|||||||
|
|
||||||
impl Transmutable for i64
|
impl Transmutable for i64
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -492,22 +341,7 @@ impl Transmutable for i64
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i64)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_i64)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, i64_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, i64_to_bytes)
|
||||||
@ -521,11 +355,6 @@ impl Transmutable for i64
|
|||||||
|
|
||||||
impl Transmutable for isize
|
impl Transmutable for isize
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -536,22 +365,7 @@ impl Transmutable for isize
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_isize)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_isize)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, isize_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, isize_to_bytes)
|
||||||
@ -565,11 +379,6 @@ impl Transmutable for isize
|
|||||||
|
|
||||||
impl Transmutable for f32
|
impl Transmutable for f32
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -580,22 +389,7 @@ impl Transmutable for f32
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_f32)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_f32)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, f32_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, f32_to_bytes)
|
||||||
@ -609,11 +403,6 @@ impl Transmutable for f32
|
|||||||
|
|
||||||
impl Transmutable for f64
|
impl Transmutable for f64
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Make sure that there is enough data to read
|
// Make sure that there is enough data to read
|
||||||
@ -624,22 +413,7 @@ impl Transmutable for f64
|
|||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_f64)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_f64)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
handle_endianess_to_bytes!(self, endianess, f64_to_bytes)
|
handle_endianess_to_bytes!(self, endianess, f64_to_bytes)
|
||||||
@ -653,33 +427,13 @@ impl Transmutable for f64
|
|||||||
|
|
||||||
impl Transmutable for String
|
impl Transmutable for String
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
// Convert the given bytes to this type and return it.
|
// Convert the given bytes to this type and return it.
|
||||||
handle_endianess_from_bytes!(buffer, endianess, bytes_to_string)
|
handle_endianess_from_bytes!(buffer, endianess, bytes_to_string)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
// We are not using the macro because *String is a str.
|
// We are not using the macro because *String is a str.
|
||||||
@ -714,22 +468,17 @@ impl Transmutable for String
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
impl<T> Transmutable for Vector2<T> where T: Number + ByteSized + Transmutable
|
impl<T> Transmutable for DynamicArraytor2<T> where T: Number + ByteSized + Transmutable
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut vec: Vector2<T>;
|
let mut vec: DynamicArraytor2<T>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector2.
|
// represent a DynamicArraytor2.
|
||||||
vec = Vector2::<T>::zero();
|
vec = DynamicArraytor2::<T>::zero();
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * vec.get_size() as usize;
|
num_bytes = byte_size * vec.get_size() as usize;
|
||||||
|
|
||||||
@ -745,35 +494,20 @@ impl<T> Transmutable for Vector2<T> where T: Number + ByteSized + Transmutable
|
|||||||
vec
|
vec
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector2.
|
// represent a DynamicArraytor2.
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * self.get_size() as usize;
|
num_bytes = byte_size * self.get_size() as usize;
|
||||||
|
|
||||||
// Make sure that there is enough space to store
|
// Make sure that there is enough space to store
|
||||||
// the bytes from this type.
|
// the bytes from this type.
|
||||||
buffer = Vec::with_capacity(num_bytes);
|
buffer = DynamicArray::with_capacity(num_bytes);
|
||||||
|
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
||||||
@ -790,22 +524,17 @@ impl<T> Transmutable for Vector2<T> where T: Number + ByteSized + Transmutable
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
impl<T> Transmutable for Vector3<T> where T: Number + ByteSized + Transmutable
|
impl<T> Transmutable for DynamicArraytor3<T> where T: Number + ByteSized + Transmutable
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut vec: Vector3<T>;
|
let mut vec: DynamicArraytor3<T>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector3.
|
// represent a DynamicArraytor3.
|
||||||
vec = Vector3::<T>::zero();
|
vec = DynamicArraytor3::<T>::zero();
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * vec.get_size() as usize;
|
num_bytes = byte_size * vec.get_size() as usize;
|
||||||
|
|
||||||
@ -823,35 +552,20 @@ impl<T> Transmutable for Vector3<T> where T: Number + ByteSized + Transmutable
|
|||||||
vec
|
vec
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector3.
|
// represent a DynamicArraytor3.
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * self.get_size() as usize;
|
num_bytes = byte_size * self.get_size() as usize;
|
||||||
|
|
||||||
// Make sure that there is enough space to store
|
// Make sure that there is enough space to store
|
||||||
// the bytes from this type.
|
// the bytes from this type.
|
||||||
buffer = Vec::with_capacity(num_bytes);
|
buffer = DynamicArray::with_capacity(num_bytes);
|
||||||
|
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
||||||
@ -869,22 +583,17 @@ impl<T> Transmutable for Vector3<T> where T: Number + ByteSized + Transmutable
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature="convert_sigils")]
|
#[cfg(feature="convert_sigils")]
|
||||||
impl<T> Transmutable for Vector4<T> where T: Number + ByteSized + Transmutable
|
impl<T> Transmutable for DynamicArraytor4<T> where T: Number + ByteSized + Transmutable
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut vec: Vector4<T>;
|
let mut vec: DynamicArraytor4<T>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector4.
|
// represent a DynamicArraytor4.
|
||||||
vec = Vector4::<T>::zero();
|
vec = DynamicArraytor4::<T>::zero();
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * vec.get_size() as usize;
|
num_bytes = byte_size * vec.get_size() as usize;
|
||||||
|
|
||||||
@ -904,35 +613,20 @@ impl<T> Transmutable for Vector4<T> where T: Number + ByteSized + Transmutable
|
|||||||
vec
|
vec
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Vector4.
|
// represent a DynamicArraytor4.
|
||||||
byte_size = T::get_byte_size();
|
byte_size = T::get_byte_size();
|
||||||
num_bytes = byte_size * self.get_size() as usize;
|
num_bytes = byte_size * self.get_size() as usize;
|
||||||
|
|
||||||
// Make sure that there is enough space to store
|
// Make sure that there is enough space to store
|
||||||
// the bytes from this type.
|
// the bytes from this type.
|
||||||
buffer = Vec::with_capacity(num_bytes);
|
buffer = DynamicArray::with_capacity(num_bytes);
|
||||||
|
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
buffer.append(&mut self.x.as_endian_bytes(endianess));
|
||||||
@ -954,11 +648,6 @@ impl<T> Transmutable for Vector4<T> where T: Number + ByteSized + Transmutable
|
|||||||
impl<T> Transmutable for Quaternion<T>
|
impl<T> Transmutable for Quaternion<T>
|
||||||
where T: Real + ByteSized + Transmutable
|
where T: Real + ByteSized + Transmutable
|
||||||
{
|
{
|
||||||
fn from_bytes(buffer: &[u8]) -> Self
|
|
||||||
{
|
|
||||||
Self::from_endian_bytes(buffer, Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
fn from_endian_bytes(buffer: &[u8], endianess: Endianess) -> Self
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
@ -978,31 +667,16 @@ impl<T> Transmutable for Quaternion<T>
|
|||||||
// Convert the given bytes to this type and return it.
|
// Convert the given bytes to this type and return it.
|
||||||
quat.scalar = T::from_endian_bytes(&buffer[0..byte_size], endianess);
|
quat.scalar = T::from_endian_bytes(&buffer[0..byte_size], endianess);
|
||||||
quat.vector =
|
quat.vector =
|
||||||
Vector3::<T>::from_endian_bytes(&buffer[byte_size..num_bytes],
|
DynamicArraytor3::<T>::from_endian_bytes(&buffer[byte_size..num_bytes],
|
||||||
endianess);
|
endianess);
|
||||||
quat
|
quat
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_bytes(self) -> Vec<u8>
|
fn as_endian_bytes(&self, endianess: Endianess) -> DynamicArray<u8>
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn to_endian_bytes(self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(endianess)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_bytes(&self) -> Vec<u8>
|
|
||||||
{
|
|
||||||
self.as_endian_bytes(Endianess::Platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn as_endian_bytes(&self, endianess: Endianess) -> Vec<u8>
|
|
||||||
{
|
{
|
||||||
let byte_size: usize;
|
let byte_size: usize;
|
||||||
let num_bytes: usize;
|
let num_bytes: usize;
|
||||||
let mut buffer: Vec<u8>;
|
let mut buffer: DynamicArray<u8>;
|
||||||
|
|
||||||
// Determine the number of bytes requires to
|
// Determine the number of bytes requires to
|
||||||
// represent a Quaternion.
|
// represent a Quaternion.
|
||||||
@ -1011,7 +685,7 @@ impl<T> Transmutable for Quaternion<T>
|
|||||||
|
|
||||||
// Make sure that there is enough space to store
|
// Make sure that there is enough space to store
|
||||||
// the bytes from this type.
|
// the bytes from this type.
|
||||||
buffer = Vec::with_capacity(num_bytes);
|
buffer = DynamicArray::with_capacity(num_bytes);
|
||||||
|
|
||||||
// Convert this to bytes and add it to the buffer.
|
// Convert this to bytes and add it to the buffer.
|
||||||
buffer.append(&mut self.scalar.as_endian_bytes(endianess));
|
buffer.append(&mut self.scalar.as_endian_bytes(endianess));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user