@@ -12,25 +12,26 @@ namespace Web::CSS {
12
12
13
13
GridSize::GridSize (LengthPercentage length_percentage)
14
14
: m_type(Type::LengthPercentage)
15
- , m_length_percentage(length_percentage) {};
15
+ , m_value(move(length_percentage))
16
+ {
17
+ }
16
18
17
19
GridSize::GridSize (Flex flex_factor)
18
20
: m_type(Type::FlexibleLength)
19
- , m_length_percentage { Length::make_px (0 ) }
20
- , m_flex_factor(flex_factor)
21
+ , m_value(move(flex_factor))
21
22
{
22
23
}
23
24
24
25
GridSize::GridSize (Type type)
25
- : m_length_percentage { Length::make_auto () }
26
+ : m_value { Empty () }
26
27
{
27
28
VERIFY (type == Type::MinContent || type == Type::MaxContent);
28
29
m_type = type;
29
30
}
30
31
31
32
GridSize::GridSize ()
32
33
: m_type(Type::LengthPercentage)
33
- , m_length_percentage { Length::make_auto () }
34
+ , m_value { Length::make_auto () }
34
35
{
35
36
}
36
37
@@ -39,9 +40,10 @@ GridSize::~GridSize() = default;
39
40
bool GridSize::is_auto (Layout::AvailableSize const & available_size) const
40
41
{
41
42
if (m_type == Type::LengthPercentage) {
42
- if (m_length_percentage.contains_percentage ())
43
+ auto & length_percentage = m_value.get <LengthPercentage>();
44
+ if (length_percentage.contains_percentage ())
43
45
return !available_size.is_definite ();
44
- return m_length_percentage .is_auto ();
46
+ return length_percentage .is_auto ();
45
47
}
46
48
47
49
return false ;
@@ -50,9 +52,10 @@ bool GridSize::is_auto(Layout::AvailableSize const& available_size) const
50
52
bool GridSize::is_fixed (Layout::AvailableSize const & available_size) const
51
53
{
52
54
if (m_type == Type::LengthPercentage) {
53
- if (m_length_percentage.contains_percentage ())
55
+ auto & length_percentage = m_value.get <LengthPercentage>();
56
+ if (length_percentage.contains_percentage ())
54
57
return available_size.is_definite ();
55
- return !m_length_percentage .is_auto ();
58
+ return !length_percentage .is_auto ();
56
59
}
57
60
58
61
return false ;
@@ -71,23 +74,23 @@ GridSize GridSize::make_auto()
71
74
Size GridSize::css_size () const
72
75
{
73
76
VERIFY (m_type == Type::LengthPercentage);
74
- if (m_length_percentage.is_auto ())
77
+ auto & length_percentage = m_value.get <LengthPercentage>();
78
+ if (length_percentage.is_auto ())
75
79
return CSS::Size::make_auto ();
76
- if (m_length_percentage.is_length ())
77
- return CSS::Size::make_length (m_length_percentage.length ());
78
- if (m_length_percentage.is_calculated ()) {
79
- return CSS::Size::make_calculated (m_length_percentage.calculated ());
80
- }
81
- return CSS::Size::make_percentage (m_length_percentage.percentage ());
80
+ if (length_percentage.is_length ())
81
+ return CSS::Size::make_length (length_percentage.length ());
82
+ if (length_percentage.is_calculated ())
83
+ return CSS::Size::make_calculated (length_percentage.calculated ());
84
+ return CSS::Size::make_percentage (length_percentage.percentage ());
82
85
}
83
86
84
87
String GridSize::to_string () const
85
88
{
86
89
switch (m_type) {
87
90
case Type::LengthPercentage:
88
- return m_length_percentage .to_string ();
91
+ return m_value. get <LengthPercentage>() .to_string ();
89
92
case Type::FlexibleLength:
90
- return m_flex_factor .to_string ();
93
+ return m_value. get <Flex>() .to_string ();
91
94
case Type::MaxContent:
92
95
return " max-content" _string;
93
96
case Type::MinContent:
0 commit comments