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[16]
benches/bench.rs::benches::bench_common_prefix_length
Regression
CodSpeed Performance Gauge
-12%
213.6 ns242.8 ns
common_prefix_length[8]
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[64]
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[16]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
+15%
459.2 ns400.8 ns
from_start[8]
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[16]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 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
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[32]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
set_at[16]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
276.7 ns276.7 ns
push[16]
benches/bench.rs::benches::bench_push
CodSpeed Performance Gauge
0%
374.2 ns374.2 ns
unpack[4]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
306.1 ns306.1 ns
set_at[32]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
403.3 ns403.3 ns
unpack[8]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
309.2 ns309.2 ns
set_at[64]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
656.7 ns656.7 ns
set_at[8]
benches/bench.rs::benches::bench_set_at
CodSpeed Performance Gauge
0%
213.3 ns213.3 ns
cmp[16]
benches/bench.rs::benches::bench_cmp
CodSpeed Performance Gauge
0%
215.6 ns215.6 ns
middle[16]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
601.4 ns601.4 ns
pop[16]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-4%
623.1 ns652.2 ns
clear[8]
benches/bench.rs::benches::bench_clear
CodSpeed Performance Gauge
N/A
< 1 ns< 1 ns
pack_to[8]
benches/bench.rs::benches::bench_pack::pack
CodSpeed Performance Gauge
+9%
340.6 ns311.4 ns
truncate[64]
benches/bench.rs::benches::bench_truncate
CodSpeed Performance Gauge
0%
61.7 ns61.7 ns
truncate[8]
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
naive[32]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
0%
1.6 µs1.6 µs
middle[32]
benches/bench.rs::benches::bench_slice::slice
CodSpeed Performance Gauge
0%
601.4 ns601.4 ns
naive[32]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
0%
1.7 µs1.7 µs
pop[64]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-1%
1.9 µs2 µs
pop[32]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-3%
1 µs1.1 µs
pop[8]
benches/bench.rs::benches::bench_pop
CodSpeed Performance Gauge
-6%
474.2 ns503.3 ns
clone[16]
benches/bench.rs::benches::bench_clone
CodSpeed Performance Gauge
N/A
< 1 ns< 1 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
unpack[16]
benches/bench.rs::benches::bench_unpack
CodSpeed Performance Gauge
0%
304.2 ns304.2 ns
naive[16]
benches/bench.rs::benches::nibbles_benchmark::pack
CodSpeed Performance Gauge
-2%
1.6 µs1.6 µs
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
naive[16]
benches/bench.rs::benches::nibbles_benchmark::unpack
CodSpeed Performance Gauge
0%
1.6 µs1.6 µs
cmp[32]
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
cmp[64]
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
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[16]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
0%
250 ns250 ns
get_byte_unchecked[8]
benches/bench.rs::benches::bench_get_byte::get_byte
CodSpeed Performance Gauge
0%
194.4 ns194.4 ns
last[64]
benches/bench.rs::benches::bench_last
CodSpeed Performance Gauge
0%
123.1 ns123.1 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[64]
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
starts_with[32]
benches/bench.rs::benches::bench_starts_with
CodSpeed Performance Gauge
0%
334.7 ns334.7 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
1 month ago
by mediocregopher
+0.64%
Fix serde
553e810
1 month ago
by mediocregopher
+0.99%
Merge branch 'main' into from-str
ace5966
1 month ago
by mattsse
0%
fmt
d85422e
1 month ago
by mattsse
© 2025 CodSpeed Technology
Home Terms Privacy Docs