File: mut_access.rs

package info (click to toggle)
rust-coreutils 0.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 505,620 kB
  • sloc: ansic: 103,594; asm: 28,570; sh: 8,910; python: 5,581; makefile: 472; cpp: 97; javascript: 72
file content (25 lines) | stat: -rw-r--r-- 484 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#![feature(test)]

extern crate test;

use bitvec::prelude::*;
use test::Bencher;

#[bench]
fn iter_mut(b: &mut Bencher) {
	let mut bits = bitarr![0; 500];
	b.iter(|| bits.iter_mut().for_each(|mut b| *b = !*b));
}

#[bench]
#[allow(deprecated)]
fn native_for_each(b: &mut Bencher) {
	let mut bits = bitarr![0; 500];
	b.iter(|| bits.for_each(|_, b| !b));
}

#[bench]
fn copy_within(b: &mut Bencher) {
	let mut a = bitarr![1, 1, 1, 1, 0, 0, 0, 0];
	b.iter(|| a.copy_within(.. 4, 2));
}