alloy-rs
nybbles
BlogDocsChangelog

feat: implement FromStr

#38Merged
Comparing
from-str
(
d85422e
) with
main
(
6c61a90
)
CodSpeed Performance Gauge
-14%
Improvements
32
Regressions
3
Untouched
76

Benchmarks

Failed

common_prefix_length[8]
benches/bench.rs::benches::bench_common_prefix_length
Regression
CodSpeed Performance Gauge
-12%
213.6 ns242.8 ns
common_prefix_length[16]
benches/bench.rs::benches::bench_common_prefix_length
Regression
CodSpeed Performance Gauge
-12%
213.6 ns242.8 ns
ends_with[16]
benches/bench.rs::benches::bench_ends_with
Regression
CodSpeed Performance Gauge
-14%
371.4 ns432.8 ns

Improved

first[16]
benches/bench.rs::benches::bench_first
CodSpeed Performance Gauge
+32%
120.3 ns91.1 ns
first[8]
benches/bench.rs::benches::bench_first
CodSpeed Performance Gauge
+32%
120.3 ns91.1 ns
first[32]
benches/bench.rs::benches::bench_first
CodSpeed Performance Gauge
+32%
120.3 ns91.1 ns
first[64]
benches/bench.rs::benches::bench_first
CodSpeed Performance Gauge
+32%
120.3 ns91.1 ns
last[16]
benches/bench.rs::benches::bench_last
CodSpeed Performance Gauge
+24%
152.2 ns123.1 ns
last[8]
benches/bench.rs::benches::bench_last
CodSpeed Performance Gauge
+24%
152.2 ns123.1 ns
nybbles[32]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+21%
337.8 ns279.4 ns
increment[16]
benches/bench.rs::benches::bench_increment
CodSpeed Performance Gauge
+17%
395 ns336.7 ns
increment[32]
benches/bench.rs::benches::bench_increment
CodSpeed Performance Gauge
+17%
395 ns336.7 ns
increment[64]
benches/bench.rs::benches::bench_increment
CodSpeed Performance Gauge
+17%
395 ns336.7 ns
increment[8]
benches/bench.rs::benches::bench_increment
CodSpeed Performance Gauge
+17%
395 ns336.7 ns
ends_with[64]
benches/bench.rs::benches::bench_ends_with
CodSpeed Performance Gauge
+16%
431.4 ns371.4 ns
from_start[8]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+15%
459.2 ns400.8 ns
from_start[32]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+15%
459.2 ns400.8 ns
from_start[64]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+15%
459.2 ns400.8 ns
from_start[16]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+15%
459.2 ns400.8 ns
nybbles[8]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
+15%
459.4 ns401.1 ns
pack[4]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+15%
459.4 ns401.1 ns
nybbles[16]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
+14%
462.5 ns404.2 ns
pack[8]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+14%
462.5 ns404.2 ns
nybbles[64]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
+14%
463.3 ns405 ns
pack[32]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+14%
463.3 ns405 ns
nybbles[32]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
+14%
468.6 ns410.3 ns
pack[16]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+14%
468.6 ns410.3 ns
to_end[64]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+13%
253.9 ns224.7 ns
to_end[32]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+13%
253.9 ns224.7 ns
to_end[16]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+13%
260.8 ns231.7 ns
to_end[8]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+13%
260.8 ns231.7 ns
join[64]
benches/bench.rs::benches::bench_join
CodSpeed Performance Gauge
+12%
276.7 ns247.5 ns
nybbles[4]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+12%
277.5 ns248.3 ns
nybbles[8]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+12%
280.6 ns251.4 ns
nybbles[16]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+11%
304.7 ns275.6 ns

Passed

clear[32]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
clear[8]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
clear[16]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
pop[32]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-3%
1 µs1.1 µs
pop[16]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-4%
623.1 ns652.2 ns
clear[64]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
pack_to[4]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+9%
337.5 ns308.3 ns
pack_to[8]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+9%
340.6 ns311.4 ns
push[64]
benches/bench.rs::benches::bench_push
CodSpeed Performance Gauge
+3%
709.4 ns685.8 ns
push[8]
benches/bench.rs::benches::bench_push
CodSpeed Performance Gauge
+2%
320.8 ns315.3 ns
naive[64]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
+2%
1.7 µs1.7 µs
push[32]
benches/bench.rs::benches::bench_push
CodSpeed Performance Gauge
+1%
475.3 ns469.7 ns
unpack[32]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
308.1 ns308.1 ns
truncate[64]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
truncate[16]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
unpack[16]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
304.2 ns304.2 ns
cmp[16]
benches/bench.rs::benches::bench_cmp
CodSpeed Performance Gauge
0%
215.6 ns215.6 ns
pop[64]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-1%
1.9 µs2 µs
clone[16]
benches/bench.rs::benches::bench_clone
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
set_at[16]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
276.7 ns276.7 ns
truncate[32]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
push[16]
benches/bench.rs::benches::bench_push
CodSpeed Performance Gauge
0%
374.2 ns374.2 ns
set_at[32]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
403.3 ns403.3 ns
naive[32]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
0%
1.6 µs1.6 µs
truncate[8]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
unpack[4]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
306.1 ns306.1 ns
unpack[8]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
309.2 ns309.2 ns
middle[32]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
601.4 ns601.4 ns
set_at[64]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
656.7 ns656.7 ns
naive[32]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
0%
1.7 µs1.7 µs
naive[16]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
-2%
1.6 µs1.6 µs
pop[8]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-6%
474.2 ns503.3 ns
clone[64]
benches/bench.rs::benches::bench_clone
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
clone[32]
benches/bench.rs::benches::bench_clone
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
naive[16]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
0%
1.6 µs1.6 µs
middle[16]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
601.4 ns601.4 ns
naive[8]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
-2%
1.6 µs1.6 µs
clone[8]
benches/bench.rs::benches::bench_clone
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
pack_to[32]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+9%
341.4 ns312.2 ns
get_byte[8]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+9%
342.2 ns313.1 ns
pack_to[16]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+9%
346.7 ns317.5 ns
get_byte_unchecked[32]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+8%
390.3 ns361.1 ns
join[32]
benches/bench.rs::benches::bench_join
CodSpeed Performance Gauge
+8%
409.7 ns380.6 ns
join[16]
benches/bench.rs::benches::bench_join
CodSpeed Performance Gauge
+8%
413.9 ns384.7 ns
join[8]
benches/bench.rs::benches::bench_join
CodSpeed Performance Gauge
+8%
416.7 ns387.5 ns
get_byte[16]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+7%
432.2 ns403.1 ns
get_byte[32]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+5%
612.2 ns583.1 ns
get_byte_unchecked[64]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+5%
612.5 ns583.3 ns
get_byte[64]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
+3%
972.2 ns943.1 ns
naive[4]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+2%
1.6 µs1.6 µs
naive[8]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
+2%
1.6 µs1.6 µs
from_nibbles[32]
benches/bench.rs::benches::bench_from_nibbles
CodSpeed Performance Gauge
+1%
544.4 ns539.4 ns
ends_with[32]
benches/bench.rs::benches::bench_ends_with
CodSpeed Performance Gauge
+1%
374.2 ns371.4 ns
cmp[32]
benches/bench.rs::benches::bench_cmp
CodSpeed Performance Gauge
0%
215.6 ns215.6 ns
cmp[64]
benches/bench.rs::benches::bench_cmp
CodSpeed Performance Gauge
0%
215.6 ns215.6 ns
cmp[8]
benches/bench.rs::benches::bench_cmp
CodSpeed Performance Gauge
0%
215.6 ns215.6 ns
common_prefix_length[64]
benches/bench.rs::benches::bench_common_prefix_length
CodSpeed Performance Gauge
0%
366.4 ns366.4 ns
set_at[8]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
213.3 ns213.3 ns
common_prefix_length[32]
benches/bench.rs::benches::bench_common_prefix_length
CodSpeed Performance Gauge
0%
366.4 ns366.4 ns
from_nibbles[16]
benches/bench.rs::benches::bench_from_nibbles
CodSpeed Performance Gauge
0%
406.1 ns406.1 ns
get_byte_unchecked[8]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
0%
194.4 ns194.4 ns
get_byte_unchecked[16]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
0%
250 ns250 ns
last[64]
benches/bench.rs::benches::bench_last
CodSpeed Performance Gauge
0%
123.1 ns123.1 ns
starts_with[64]
benches/bench.rs::benches::bench_starts_with
CodSpeed Performance Gauge
0%
334.7 ns334.7 ns
middle[64]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
596.7 ns596.7 ns
starts_with[8]
benches/bench.rs::benches::bench_starts_with
CodSpeed Performance Gauge
0%
334.7 ns334.7 ns
starts_with[32]
benches/bench.rs::benches::bench_starts_with
CodSpeed Performance Gauge
0%
334.7 ns334.7 ns
starts_with[16]
benches/bench.rs::benches::bench_starts_with
CodSpeed Performance Gauge
0%
334.7 ns334.7 ns
middle[8]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
601.4 ns601.4 ns
last[32]
benches/bench.rs::benches::bench_last
CodSpeed Performance Gauge
0%
123.1 ns123.1 ns
from_nibbles[64]
benches/bench.rs::benches::bench_from_nibbles
CodSpeed Performance Gauge
0%
742.8 ns745.3 ns
from_nibbles[8]
benches/bench.rs::benches::bench_from_nibbles
CodSpeed Performance Gauge
-1%
352.8 ns355.3 ns
extend[8]
benches/bench.rs::benches::bench_extend
CodSpeed Performance Gauge
-6%
445 ns474.2 ns
extend[16]
benches/bench.rs::benches::bench_extend
CodSpeed Performance Gauge
-6%
442.2 ns471.4 ns
extend[32]
benches/bench.rs::benches::bench_extend
CodSpeed Performance Gauge
-6%
438.1 ns467.2 ns
ends_with[8]
benches/bench.rs::benches::bench_ends_with
CodSpeed Performance Gauge
-7%
368.9 ns398.1 ns

Commits

Click on a commit to change the comparison range
Base
main
6c61a90
-15.82%
feat: implement FromStr Add an implementation of FromStr. This uses the logic previously only implemented by serde deserialize. Will make it more convenient to accept Nibble arguments in CLI parameters.
9667ddd
12 days ago
by mediocregopher
+0.64%
Fix serde
553e810
9 days ago
by mediocregopher
+0.99%
Merge branch 'main' into from-str
ace5966
9 days ago
by mattsse
0%
fmt
d85422e
9 days ago
by mattsse
© 2025 CodSpeed Technology
Home Terms Privacy Docs