rustmotion_core/traits/
rounded.rs1pub trait Rounded {
3 fn corner_radius(&self) -> f32;
4}
5
6pub trait RoundedMut: Rounded {
8 fn set_corner_radius(&mut self, radius: f32);
9}
10
11pub trait RoundedExt: RoundedMut + Sized {
13 fn rounded(mut self, radius: f32) -> Self {
14 self.set_corner_radius(radius);
15 self
16 }
17
18 fn rounded_none(self) -> Self {
19 self.rounded(0.0)
20 }
21 fn rounded_sm(self) -> Self {
22 self.rounded(4.0)
23 }
24 fn rounded_md(self) -> Self {
25 self.rounded(8.0)
26 }
27 fn rounded_lg(self) -> Self {
28 self.rounded(12.0)
29 }
30 fn rounded_xl(self) -> Self {
31 self.rounded(16.0)
32 }
33 fn rounded_2xl(self) -> Self {
34 self.rounded(24.0)
35 }
36 fn rounded_full(self) -> Self {
37 self.rounded(9999.0)
38 }
39}
40
41impl<T: RoundedMut + Sized> RoundedExt for T {}