Skip to content

Commit de0a24c

Browse files
committed
Fix benches to work with stuff
1 parent 8234211 commit de0a24c

File tree

1 file changed

+21
-27
lines changed

1 file changed

+21
-27
lines changed

benches/simple.rs

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,27 @@
11
use std::time::Instant;
22

3-
use compact_encoding::{CompactEncoding, State};
3+
use compact_encoding::{
4+
fixed_buffer_from_encoded_size, map_decode, map_encode, sum_encoded_size, CompactEncoding,
5+
EncodingError,
6+
};
47
use criterion::{black_box, criterion_group, criterion_main, Criterion};
58

69
const U32_VALUE: u32 = 0xF0E1D2C3;
710
const STR_VALUE: &str = "foo";
811
const U64_VALUE: u64 = u64::MAX;
912

10-
fn preencode() -> State {
11-
let mut enc_state = State::new();
12-
enc_state.preencode(&U32_VALUE).unwrap();
13-
enc_state.preencode_str(STR_VALUE).unwrap();
14-
enc_state.preencode(&U64_VALUE).unwrap();
15-
enc_state
13+
fn preencode() -> Result<usize, EncodingError> {
14+
Ok(sum_encoded_size!(U32_VALUE, STR_VALUE, U64_VALUE))
1615
}
1716

18-
fn encode(enc_state: &mut State, buffer: &mut [u8]) {
19-
enc_state.encode(&U32_VALUE, buffer).unwrap();
20-
enc_state.encode_str(STR_VALUE, buffer).unwrap();
21-
enc_state.encode(&U64_VALUE, buffer).unwrap();
17+
fn encode(buffer: &mut Box<[u8]>) -> Result<(), EncodingError> {
18+
let _ = map_encode!(buffer, U32_VALUE, STR_VALUE, U64_VALUE);
19+
Ok(())
2220
}
2321

24-
fn decode(dec_state: &mut State, buffer: &[u8]) {
25-
let _: u32 = dec_state.decode(buffer).unwrap();
26-
let _: String = dec_state.decode(buffer).unwrap();
27-
let _: u64 = dec_state.decode(buffer).unwrap();
22+
fn decode(buffer: &[u8]) -> Result<(), EncodingError> {
23+
map_decode!(buffer, [u32, String, u64]);
24+
Ok(())
2825
}
2926

3027
fn preencode_generic_simple(c: &mut Criterion) {
@@ -36,10 +33,10 @@ fn preencode_generic_simple(c: &mut Criterion) {
3633
fn create_buffer_generic_simple(c: &mut Criterion) {
3734
c.bench_function("create buffer generic simple", |b| {
3835
b.iter_custom(|iters| {
39-
let enc_state = preencode();
36+
let encoded_size = preencode().unwrap();
4037
let start = Instant::now();
4138
for _ in 0..iters {
42-
black_box(enc_state.create_buffer());
39+
black_box(fixed_buffer_from_encoded_size(encoded_size));
4340
}
4441
start.elapsed()
4542
});
@@ -50,13 +47,12 @@ fn create_buffer_generic_simple(c: &mut Criterion) {
5047
fn encode_generic_simple(c: &mut Criterion) {
5148
c.bench_function("encode generic simple", |b| {
5249
b.iter_custom(|iters| {
53-
let enc_state = preencode();
54-
let buffer = enc_state.create_buffer();
50+
let encoded_size = preencode().unwrap();
51+
let buffer = fixed_buffer_from_encoded_size(encoded_size);
5552
let start = Instant::now();
5653
for _ in 0..iters {
57-
let mut enc_state = enc_state.clone();
5854
let mut buffer = buffer.clone();
59-
black_box(encode(&mut enc_state, &mut buffer));
55+
black_box(encode(&mut buffer).unwrap());
6056
}
6157
start.elapsed()
6258
});
@@ -67,15 +63,13 @@ fn encode_generic_simple(c: &mut Criterion) {
6763
fn decode_generic_simple(c: &mut Criterion) {
6864
c.bench_function("decode generic simple", |b| {
6965
b.iter_custom(|iters| {
70-
let mut enc_state = preencode();
71-
let mut buffer = enc_state.create_buffer();
72-
encode(&mut enc_state, &mut buffer);
73-
let dec_state = State::from_buffer(&buffer);
66+
let encoded_size = preencode().unwrap();
67+
let mut buffer = fixed_buffer_from_encoded_size(encoded_size);
68+
encode(&mut buffer).unwrap();
7469
let start = Instant::now();
7570
for _ in 0..iters {
76-
let mut dec_state = dec_state.clone();
7771
let buffer = buffer.clone();
78-
black_box(decode(&mut dec_state, &buffer));
72+
black_box(decode(&buffer).unwrap());
7973
}
8074
start.elapsed()
8175
});

0 commit comments

Comments
 (0)