Generalize LengthPercentageOrAuto impl to Generic Type (#30824)

* Generalize LengthPercentageOrAuto impl to Generic Type

* review fix
This commit is contained in:
atbrakhi 2023-12-06 11:20:43 +01:00 committed by GitHub
parent a326a60c16
commit 9028c90332
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -68,13 +68,13 @@ impl<LengthPercentage> LengthPercentageOrAuto<LengthPercentage> {
}
}
impl<LengthPercentage> LengthPercentageOrAuto<LengthPercentage>
impl<T> LengthPercentageOrAuto<T>
where
LengthPercentage: Clone,
T: Clone,
{
/// Resolves `auto` values by calling `f`.
#[inline]
pub fn auto_is(&self, f: impl FnOnce() -> LengthPercentage) -> LengthPercentage {
pub fn auto_is(&self, f: impl FnOnce() -> T) -> T {
match self {
LengthPercentageOrAuto::LengthPercentage(length) => length.clone(),
LengthPercentageOrAuto::Auto => f(),
@ -83,7 +83,7 @@ where
/// Returns the non-`auto` value, if any.
#[inline]
pub fn non_auto(&self) -> Option<LengthPercentage> {
pub fn non_auto(&self) -> Option<T> {
match self {
LengthPercentageOrAuto::LengthPercentage(length) => Some(length.clone()),
LengthPercentageOrAuto::Auto => None,
@ -91,7 +91,7 @@ where
}
/// Maps the length of this value.
pub fn map<T>(&self, f: impl FnOnce(LengthPercentage) -> T) -> LengthPercentageOrAuto<T> {
pub fn map<U>(&self, f: impl FnOnce(T) -> U) -> LengthPercentageOrAuto<U> {
match self {
LengthPercentageOrAuto::LengthPercentage(l) => {
LengthPercentageOrAuto::LengthPercentage(f(l.clone()))