Skip to content

Re-export app_units::Au or disable serde for app_units #3045

@fschutt

Description

@fschutt

In order to create a AddFontInstance struct, you have to use an app_units::Au. This is very annoying because:

  • app_units depends 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 Au is used
  • app_units isn'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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions