From 8ae59008fefd8140268a42704737f44d70c3f340 Mon Sep 17 00:00:00 2001 From: Jason Travis Smith Date: Wed, 30 Dec 2015 17:54:23 -0500 Subject: [PATCH] This is an example of how to use the library. This example converts a 32-bit floating point value to and from a byte array. --- examples/convert_f32.rs | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 examples/convert_f32.rs diff --git a/examples/convert_f32.rs b/examples/convert_f32.rs new file mode 100644 index 0000000..dd5b209 --- /dev/null +++ b/examples/convert_f32.rs @@ -0,0 +1,72 @@ +#![feature(convert)] + +extern crate alchemy; + + +use std::f32; + +use alchemy::{PlatformEndian, Transmutable}; + + + +pub fn main() +{ + let num: f32; + let mut final_num: f32; + let mut buffer: [u8; 4]; + + // Initialize the variables. + num = 6.291985f32; + final_num = f32::NAN; + buffer = [0u8; 4]; + + println!("Converting the value {} into and out of an array of bytes.", num); + println!("Buffer starts as: {}", stringify_array(&buffer)); + + // Convert the floating point number into an array of bytes. + PlatformEndian::f32_to_bytes(&mut buffer, num); + + println!("Buffer contains: {}", stringify_array(&buffer)); + + // Convert the array of bytes into a floating point number. + final_num = PlatformEndian::bytes_to_f32(&buffer); + println!("The buffer converts back to: {}", final_num); +} + +/// This just help pretty up the printing of an array of bytes. +fn stringify_array(buffer: &[u8]) -> String +{ + let mut result: String; + let mut count: usize; + + // Create a new string that starts with just + // the array opening bracket. + result = String::new(); + result.push_str("["); + + // Loop through the buffer keeping track + // of our place in it. + count = 0usize; + for byte in buffer + { + // Handle priting the last value differently. + if count >= buffer.len() - 1 + { + result.push_str(byte.to_string().as_str()); + } + else + { + result.push_str(byte.to_string().as_str()); + result.push_str(", "); + } + + // Mark that we are going to look at + // the next byte in the array. + count += 1; + } + + // Add the array closing bracket and + // return the new String. + result.push_str("]"); + result +}