Use f32 in Length::Units and rename it to Fixed

This commit is contained in:
Héctor Ramón Jiménez 2023-02-04 12:24:13 +01:00
parent f75e020257
commit 7b8b01f560
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
43 changed files with 269 additions and 262 deletions

View file

@ -1,5 +1,5 @@
/// The strategy used to fill space in a specific dimension.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum Length {
/// Fill all the remaining space
Fill,
@ -17,7 +17,7 @@ pub enum Length {
Shrink,
/// Fill a fixed amount of space
Units(u16),
Fixed(f32),
}
impl Length {
@ -31,13 +31,19 @@ impl Length {
Length::Fill => 1,
Length::FillPortion(factor) => *factor,
Length::Shrink => 0,
Length::Units(_) => 0,
Length::Fixed(_) => 0,
}
}
}
impl From<f32> for Length {
fn from(amount: f32) -> Self {
Length::Fixed(amount)
}
}
impl From<u16> for Length {
fn from(units: u16) -> Self {
Length::Units(units)
Length::Fixed(f32::from(units))
}
}

View file

@ -35,6 +35,7 @@ mod content_fit;
mod font;
mod length;
mod padding;
mod pixels;
mod point;
mod rectangle;
mod size;
@ -47,6 +48,7 @@ pub use content_fit::ContentFit;
pub use font::Font;
pub use length::Length;
pub use padding::Padding;
pub use pixels::Pixels;
pub use point::Point;
pub use rectangle::Rectangle;
pub use size::Size;

22
core/src/pixels.rs Normal file
View file

@ -0,0 +1,22 @@
/// An amount of logical pixels.
///
/// Normally used to represent an amount of space, or the size of something.
///
/// This type is normally asked as an argument in a generic way
/// (e.g. `impl Into<Pixels>`) and, since `Pixels` implements `From` both for
/// `f32` and `u16`, you should be able to provide both integers and float
/// literals as needed.
#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
pub struct Pixels(pub f32);
impl From<f32> for Pixels {
fn from(amount: f32) -> Self {
Self(amount)
}
}
impl From<u16> for Pixels {
fn from(amount: u16) -> Self {
Self(f32::from(amount))
}
}