|
1 | 1 | using Accessors, ConstructionBase, BenchmarkTools |
2 | 2 |
|
3 | | -optic = Accessors.Query(x -> x isa Int) |
4 | | -obj = (7, (a=17.0, b=2.0f0), ("3", 4, 5)) |
| 3 | +optic = Accessors.Query(; select=x -> x isa Float64, ignore=x -> x isa Tuple) |
| 4 | +obj = (7, (a=17.0, b=2.0f0), ("3", 4, 5.0), (x=6.0,), ) |
5 | 5 | vals = (1.0, 2.0, 3.0, 4.0) |
6 | 6 |
|
7 | 7 | @btime $optic($obj) |
8 | | -@btime set($obj, $optic, $vals) |
| 8 | +@btime Accessors.set($obj, $optic, $vals) |
9 | 9 | # Compiles away |
10 | | -@btime modify(x -> 2x, $vals, $optic) |
| 10 | +@btime Accessors.modify(x -> 2x, $vals, $optic) |
11 | 11 |
|
12 | 12 |
|
13 | | -unstable_optic = Accessors.Query(x -> x isa Number && x > 2) |
14 | | - |
15 | 13 | # This is slow |
16 | | -@btime set($x, $unstable_optic, $y) |
17 | | - |
18 | | -# This still compiles away |
19 | | -@btime modify(x -> 2x, $vals, $unstable_optic) |
20 | | - |
| 14 | +unstable_optic = Accessors.Query(x -> x isa Number && x > 4) |
| 15 | +@btime Accessors.set($obj, $unstable_optic, $vals) |
| 16 | +@btime Accessors.modify(x -> 2x, $obj, $unstable_optic) |
0 commit comments