Fast abstraction for converting human-like times into milliseconds.
Like, are 1d
to 86400000
.
There are two ways to calculate milliseconds:
- In the runtime
crate::ms_converter::ms
- In the compilation time
crate::ms_converter::ms_expr
Add this to your Cargo.toml:
[dependencies]
ms-converter = "1.4"
use crate::ms_converter::ms;
let value = ms("1d").unwrap();
assert_eq!(value, 86400000)
use crate::ms_converter::ms_expr;
const VALUE: i64 = ms_expr!(i64, 1 d);
assert_eq!(VALUE, 86400000)
use crate::ms_converter::ms_into_time;
let value = ms_into_time("1d").unwrap();
assert_eq!(value.as_millis(), 86400000)
use crate::ms_converter::{get_duration_by_postfix, DAY};
let value = get_duration_by_postfix(DAY as i64, " day").unwrap();
assert_eq!(value, "1 day")
use crate::ms_converter::{get_max_possible_duration, DAY};
let value = get_max_possible_duration(DAY as i64).unwrap();
assert_eq!(value, "1d")
use crate::ms_converter::{get_max_possible_duration_long, WEEK};
let value = get_max_possible_duration_long(2 * WEEK as i64).unwrap();
assert_eq!(value, "14 days") // Max possible period is a day
- Years:
years
,year
,yrs
,yr
,y
- Weeks:
weeks
,week
,w
- Days:
days
,day
,d
- Hours:
hours
,hour
,hrs
,hr
,h
- Minutes:
minutes
,minute
,mins
,min
,m
- Seconds:
seconds
,second
,secs
,sec
,s
- Milliseconds:
milliseconds
,millisecond
,msecs
,msec
,ms
and empty postfix
You can check the performance diff between ms_converter
and ms
libraries here.
Also, the macro has no time in the runtime! It will be converted into the const value.
cargo test
Running code style tests
cargo fmt --all -- --check
Just create pr or issue. You welcome.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Mikhail Panfilov - Initial work - Mnwa
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details