# XRUnits XRUnits is a unit library # **My english is NOT very good !!** ## Motivation We usually use some real-world unit. If we need to develop a program to deal with these units, like creating a downloader which need to calculate the data transfer speed or set the frequency of MCU,we need do lots of duplicate works to convert these unit, so I want to develop a unit library with STRONG TYPE and Easily using to deal with these situations. ## Details To avoid duplicate code,I use lots of macro to automatically generate code. ## Examples To create 2Kg ``` # use xrunits::mass::BuildKilogram; let mass = 2.kg(); ``` Convert it to ton and gram ``` # use xrunits::mass::{Ton, BuildKilogram, Gram}; # use xrunits::CastTo; let mass : Ton = 2.kg().cast_to(); let mass : Gram = mass.cast_to(); ``` Print to screen ``` # use xrunits::time::BuildSecond; println!("time:{}",3.sec()); //time:3s ``` Calculate the Frequency from Period ``` # use xrunits::time::{BuildMicrosecond, IntoFrequency}; # use xrunits::frequency::Megahertz; let us = 1.us(); let mhz : Megahertz = us.into_frequency(); ```