- 1
Политота #36
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Политота #36
#6: (vanished) https://govnokod.xyz/_26648
#7: https://govnokod.ru/26673 https://govnokod.xyz/_26673
#8: https://govnokod.ru/27052 https://govnokod.xyz/_27052
#9: (vanished) https://govnokod.xyz/_27852
#10: https://govnokod.ru/28060 https://govnokod.xyz/_28060
#11: https://govnokod.ru/28091 https://govnokod.xyz/_28091
#12: https://govnokod.ru/28103 https://govnokod.xyz/_28103
#13: https://govnokod.ru/28144 https://govnokod.xyz/_28144
#14: https://govnokod.ru/28270 https://govnokod.xyz/_28270
#15: https://govnokod.ru/28341 https://govnokod.xyz/_28341
#16: https://govnokod.ru/28379 https://govnokod.xyz/_28379
#17: https://govnokod.ru/28394 https://govnokod.xyz/_28394
#18: https://govnokod.ru/28440 https://govnokod.xyz/_28440
#19: https://govnokod.ru/28572 https://govnokod.xyz/_28572
#20: https://govnokod.ru/28656 https://govnokod.xyz/_28656
#21: (vanished) https://govnokod.xyz/_28666
#22: https://govnokod.ru/28676 https://govnokod.xyz/_28676
#23: https://govnokod.ru/28684 https://govnokod.xyz/_28684
#24: https://govnokod.ru/28691 https://govnokod.xyz/_28691
#25: https://govnokod.ru/28698 https://govnokod.xyz/_28698
#26: https://govnokod.ru/28704 https://govnokod.xyz/_28704
#27: https://govnokod.ru/28711 https://govnokod.xyz/_28711
#28: https://govnokod.ru/28721 https://govnokod.xyz/_28721
#29: https://govnokod.ru/28728 https://govnokod.xyz/_28728
#30: (vanished) https://govnokod.xyz/_28747
#31: https://govnokod.ru/28757 https://govnokod.xyz/_28757
#32: https://govnokod.ru/28770 https://govnokod.xyz/_28770
#33: https://govnokod.ru/28835 https://govnokod.xyz/_28835
#34: https://govnokod.ru/28924 https://govnokod.xyz/_28924
#35: https://govnokod.ru/29080 https://govnokod.xyz/_29080
0
pub trait Normalize<T> {
type Output;
fn normalize(&self, baseline_value: &T) -> Self::Output;
fn denormalize(&self, baseline_value: &T) -> Self::Output;
}
impl<T, U, W> Normalize<T> for U
where
T: Copy,
U: Copy + Div<T, Output = W> + Mul<T, Output = W>,
{
type Output = W;
fn normalize(&self, baseline_value: &T) -> Self::Output { *self / *baseline_value }
fn denormalize(&self, baseline_value: &T) -> Self::Output { *self * *baseline_value }
}
impl<T> Normalize<CanvasSize<T>> for Rectangle
where
T: Copy,
f32: Normalize<T, Output = f32>
{
type Output = Rectangle;
fn normalize(&self, baseline_value: &CanvasSize<T>) -> Self::Output {
Rectangle {
x1: self.x1.normalize(&baseline_value.width),
y1: self.y1.normalize(&baseline_value.height),
x2: self.x2.normalize(&baseline_value.width),
y2: self.y2.normalize(&baseline_value.height),
}
}
fn denormalize(&self, baseline_value: &CanvasSize<T>) -> Self::Output {
Rectangle {
x1: self.x1.denormalize(&baseline_value.width),
y1: self.y1.denormalize(&baseline_value.height),
x2: self.x2.denormalize(&baseline_value.width),
y2: self.y2.denormalize(&baseline_value.height),
}
}
}