• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

facet-rs / facet / 19993677870
58%

Build:
DEFAULT BRANCH: main
Ran 06 Dec 2025 08:14PM UTC
Jobs 1
Files 196
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Dec 2025 08:12PM UTC coverage: 58.752% (+0.05%) from 58.705%
19993677870

push

github

fasterthanlime
Reduce/cordon bloat in facet, introduce bloatbench

Looks into codegen size, compile times etc. - again :) after adding a buuuunch of features.

- [x] Disable miette's default features (derive, which depends on syn) (`b.miette`)
- [x] Don't enable miette fancy by default in facet-json (`b.miette-fancy`)
- [x] Flatten closures in facet-json to avoid generic instantiations (`b.flatten-closures`)
- [x] Get rid of shape_of in Shape derive, use `#field_type` directly (`b.shape-of`)
- [x] Detect known derives in facet-macros, eschew impls! for them (`b.detect-derives`)
- [x] Gate nonzero impls, net impls (`b.gate-impls`)
- [x] Gate doc-comments, vtable-fmt, vtable-cmp, vtable-hash (`b.gate-vtable`)
- [x] Make 'auto trait detection' opt-in (`b.auto-traits-optin`)
- [x] Detect traits from `derive` and from `#[facet(default)]` (`b.derive-traits`)
- [x] Allow manual trait specification via `#[facet(traits(...))]` (`b.manual-traits`)
- [x] Go back to builders (they expand to less code) (`b.builders`)
- [x] VTable restructured with sub-vtables (`format`, `cmp`, `hash`, `markers`) (`b.vtable-substruct`)
- [x] Convert manual impls to ShapeBuilder (`scalar.rs`, `fn_ptr.rs`, `impls_num_complex.rs`) (`b.shapebuilder`)
- [x] **Confirmed**: `#![allow(uncommon_codepoints, nonstandard_style)]` in library = no warnings in consumers (`b.unicode-test`)
- [x] Add `FieldBuilder::new(name, shape_fn, offset)` builder (`b.field-builder`)
- [x] Add `StructTypeBuilder::new(kind, fields)` builder (`b.structtype-builder`)
- [x] Add `VariantBuilder::new(name, data)` builder (`b.variant-builder`)
- [x] Add `EnumTypeBuilder::new(enum_repr, variants)` builder (`b.enumtype-builder`)
- [x] Create `::facet::𝟋` module with type aliases and builder exports (`b.prelude-mod`)
- [x] Update derive macro to use builder pattern for Field, StructType, Variant, EnumType (`b.derive-builders`)

Based on analysis in `facet-bloatbench/MACRO-OPTIMIZATION-ANALYSIS.md`:

- [x] Remove `let mut vtable = const... (continued)

1199 of 3227 new or added lines in 72 files covered. (37.16%)

145 existing lines in 29 files now uncovered.

24253 of 41280 relevant lines covered (58.75%)

504.69 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
96.0
0.0% facet-core/src/impls_alloc/cow.rs
1
70.56
0.0% facet-json/src/serialize.rs
1
0.0
0.0% facet/src/lib.rs
2
62.32
0.0% facet-asn1/src/lib.rs
2
0.0
0.0% facet-core/src/impls_std/path.rs
2
0.0
0.0% facet-core/src/types/def/dynamic_value.rs
2
50.0
46.51% facet-core/src/types/def/list.rs
2
50.0
46.34% facet-core/src/types/def/ndarray.rs
2
70.54
0.0% facet-pretty/src/printer.rs
2
67.34
-2.01% facet-reflect/src/peek/value.rs
3
89.8
-6.76% facet-core/src/impls_alloc/string.rs
3
46.43
0.0% facet-core/src/impls_camino.rs
3
35.03
0.0% facet-core/src/impls_chrono.rs
3
93.48
-2.6% facet-core/src/impls_std/hashmap.rs
3
0.0
0.0% facet-core/src/types/def/iter.rs
3
0.0
0.0% facet-core/src/types/ty/user.rs
3
69.54
0.0% facet-kdl/src/deserialize.rs
4
88.37
-1.37% facet-core/src/impls_core/array.rs
4
33.33
27.88% facet-core/src/types/def/array.rs
4
61.74
0.72% facet-json/src/deserialize.rs
5
0.0
facet-bloatbench/src/main.rs
5
85.71
0.35% facet-core/src/impls_core/reference.rs
6
67.31
-2.69% facet-core/src/impls_core/pointer.rs
6
92.93
-1.19% facet-core/src/impls_std/hashset.rs
6
41.18
0.0% facet-core/src/impls_time.rs
6
0.0
facet-core/src/lib.rs
6
23.08
17.62% facet-core/src/types/def/slice.rs
7
73.75
0.0% facet-core/src/impls_alloc/boxed.rs
7
28.75
-2.76% facet-core/src/types/def/mod.rs
7
0.0
0.0% facet-core/src/types/ty/struct_.rs
7
90.6
0.91% facet-macros-impl/src/process_enum.rs
8
0.0
0.0% facet-core/src/types/def/function.rs
9
9.68
-3.23% facet-core/src/impls_core/tuple.rs
10
0.0
0.0% facet-macros-impl/src/attr_grammar/attr_error.rs
10
0.0
0.0% facet-macros-impl/src/attr_grammar/field_error.rs
10
34.52
-1.73% facet-reflect/src/partial/heap_value.rs
10
37.68
-0.55% facet-reflect/src/spanned.rs
11
88.89
0.39% facet-core/src/impls_alloc/btreeset.rs
12
14.0
10.26% facet-core/src/types/def/pointer.rs
13
0.0
0.0% facet-core/src/impls_core/nonnull.rs
14
0.0
0.0% facet-core/src/impls_core/ops.rs
14
14.29
9.81% facet-core/src/types/def/option.rs
14
25.0
17.11% facet-core/src/types/def/result.rs
14
14.29
9.81% facet-core/src/types/def/set.rs
16
68.63
0.11% facet-core/src/impls_alloc/btreemap.rs
16
23.08
16.02% facet-core/src/types/def/map.rs
17
26.09
-11.41% facet-core/src/impls_core/slice.rs
19
28.95
-71.05% facet-core/src/macros.rs
26
46.0
2.6% facet-core/src/impls_alloc/vec.rs
35
90.17
-5.23% facet-macros-impl/src/process_struct.rs
39
60.98
3.35% facet-core/src/types/ty/field.rs
42
53.4
4.28% facet-core/src/impls_bytes.rs
48
11.11
2.6% facet-core/src/types/ty/enum_.rs
60
37.63
-1.05% facet-core/src/shape_util/mod.rs
68
70.26
-8.41% facet-macros-impl/src/parsed.rs
78
35.25
-4.41% facet-core/src/impls_core/option.rs
80
23.15
-1.4% facet-core/src/impls_core/result.rs
103
53.55
-12.18% facet-core/src/impls_alloc/rc.rs
109
74.26
-11.98% facet-core/src/impls_alloc/arc.rs
177
36.24
-1.5% facet-core/src/impls_core/scalar.rs
179
38.15
-11.08% facet-core/src/types/mod.rs
279
13.67
-9.24% facet-core/src/types/value.rs
370
0.0
0.0% xtask/src/main.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
89.8
-6.76% facet-core/src/impls_alloc/string.rs
1
46.0
2.6% facet-core/src/impls_alloc/vec.rs
1
88.37
-1.37% facet-core/src/impls_core/array.rs
1
35.25
-4.41% facet-core/src/impls_core/option.rs
1
0.0
0.0% facet-core/src/types/def/dynamic_value.rs
1
50.0
46.51% facet-core/src/types/def/list.rs
1
23.08
16.02% facet-core/src/types/def/map.rs
1
50.0
46.34% facet-core/src/types/def/ndarray.rs
1
14.29
9.81% facet-core/src/types/def/option.rs
1
25.0
17.11% facet-core/src/types/def/result.rs
1
14.29
9.81% facet-core/src/types/def/set.rs
1
23.08
17.62% facet-core/src/types/def/slice.rs
1
90.6
0.91% facet-macros-impl/src/process_enum.rs
2
0.0
0.0% facet-core/src/impls_std/path.rs
2
37.63
-1.05% facet-core/src/shape_util/mod.rs
2
33.33
27.88% facet-core/src/types/def/array.rs
2
14.0
10.26% facet-core/src/types/def/pointer.rs
2
38.15
-11.08% facet-core/src/types/mod.rs
3
74.26
-11.98% facet-core/src/impls_alloc/arc.rs
3
23.15
-1.4% facet-core/src/impls_core/result.rs
3
43.79
-1.96% facet-reflect/src/peek/enum_.rs
6
36.24
-1.5% facet-core/src/impls_core/scalar.rs
6
34.52
-1.73% facet-reflect/src/partial/heap_value.rs
7
67.34
-2.01% facet-reflect/src/peek/value.rs
8
28.95
-71.05% facet-core/src/macros.rs
9
29.55
-20.45% facet-reflect/src/peek/ndarray.rs
11
38.89
-20.37% facet-core/src/spez/mod.rs
25
13.67
-9.24% facet-core/src/types/value.rs
41
62.08
-17.08% facet-core/src/ptr.rs
Jobs
ID Job ID Ran Files Coverage
1 19993677870.1 06 Dec 2025 08:14PM UTC 196
58.75
GitHub Action Run
Source Files on build 19993677870
  • Tree
  • List 196
  • Changed 81
  • Source Changed 0
  • Coverage Changed 81
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 3971cf5e on github
  • Prev Build on main (#19986940450)
  • Next Build on main (#19993864132)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc