area: infrastructuredifficulty: easyhelp wantedtype: enhancement
仓库指标
- 星标
- (3,355 个星标)
- PR 合并指标
- (平均合并 20天 5小时) (30 天内合并 1 个 PR)
描述
In order to create a AddFontInstance struct, you have to use an app_units::Au. This is very annoying because:
app_unitsdepends on serde and num_traits, both very compile-time heavy crates that are completely unused, yet they still need to be compiled in- This is the only place in the entire public webrender API where
Auis used app_unitsisn't re-exported, so other crates have to add the exact version that webrender uses to their Cargo.toml manually.
So my proposal is to create a function that creates an Au from an i32 value, this way you don't have to re-export the Au, i.e.:
pub fn webrender_create_au_from_px(value: i32) -> Option<Au> {
let value = value * AU_PER_PX;
if value < MIN_AU || value > MAX_AU {
None
} else {
Some(Au(value))
}
}
And please make serde and num-traits in the app-units crate optional - for a regular webrender application, these crates go completely unused because serde serialization is only used for the debugger, but these crates still have to be compiled, leading to bad compile times.