[![Build status](https://travis-ci.org/biluohc/bench_timer.svg?branch=master)](https://github.com/biluohc/bench_timer)
[![Latest version](https://img.shields.io/crates/v/bench_timer.svg)](https://crates.io/crates/bench_timer)
[![All downloads](https://img.shields.io/crates/d/bench_timer.svg)](https://crates.io/crates/bench_timer)
[![Downloads of latest version](https://img.shields.io/crates/dv/bench_timer.svg)](https://crates.io/crates/bench_timer)
[![Documentation](https://docs.rs/bench_timer/badge.svg)](https://docs.rs/bench_timer)
# bench_timer
## bench library for rust
### Notice: **Have to use release mod(with optimizations)**
### example:
#### on cargo.toml:
```toml
[dependencies]
stderr = "0.8.0"
bench_timer = "0.1.1"
```
or
```toml
[dependencies]
stderr = "0.8.0"
bench_timer = { git = "https://github.com/biluohc/bench_timer", branch = "master", version = "0.1.1"}
```
#### on code:
```rust
#[macro_use]
extern crate stderr;
#[macro_use]
extern crate bench_timer;
fn main() {
let msg = std::env::args()
.skip(1)
.next()
.unwrap_or_else(|| "fuck u".to_owned());
timer_sort!(3,
100000,
to_owed(),
new(),
default(),
format(),
insert_e(&msg),
push_str(&msg),
format_s(&msg),
insert_0(&msg),
mul_args_add(&msg, ": cargo"),
mul_args_like_push_str(&msg, ": cargo")
);
}
#[inline(always)]
fn to_owed() {
let s = "".to_owned();
dbln!("{}", s);
}
#[inline(always)]
fn new() {
let s = String::new();
dbln!("{}", s);
}
#[inline(always)]
fn default() {
let s = String::default();
dbln!("{}", s);
}
#[inline(always)]
fn format() {
let s = format!("{}", "");
dbln!("{}", s);
}
#[inline(always)]
fn push_str(msg: &str) {
let mut s = msg.to_owned();
s.push_str(": cargo");
dbln!("{}", s);
}
#[inline(always)]
fn format_s(msg: &str) {
let s = format!("{}: cargo", msg);
dbln!("{}", s);
}
#[inline(always)]
fn insert_0(msg: &str) {
let mut s = ": cargo".to_owned();
s.insert_str(0, msg);
dbln!("{}", s);
}
#[inline(always)]
fn insert_e(msg: &str) {
let mut s = ": cargo".to_owned();
let len = s.len();
s.insert_str(len, msg);
dbln!("{}", s);
}
#[inline(always)]
fn mul_args_add(msg0: &str, msg1: &str) {
let s = msg0.to_owned() + msg1;
dbln!("{}", s);
}
#[inline(always)]
fn mul_args_like_push_str(msg0: &str, msg1: &str) {
let mut s = msg0.to_owned();
s.push_str(msg1);
dbln!("{}", s);
}
```