1 impl ISizeAndMarginsComputer for AbsoluteNonReplaced {
2 fn solve_inline_size_constraints(&self,
4 input: &ISizeConstraintInput)
5 -> ISizeConstraintSolution {
10 margin_inline_end) = match (inline_startssssssxxxxxxsssssxxxxxxxxxssssssxxx,
11 inline_startssssssxxxxxxsssssxxxxxxxxxssssssxxx) {
12 (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) => {
13 let margin_start = inline_start_margin.specified_or_zero();
14 let margin_end = inline_end_margin.specified_or_zero();
15 // Now it is the same situation as inline-start Specified and inline-end
16 // and inline-size Auto.
18 // Set inline-end to zero to calculate inline-size.
19 let inline_size = block.get_shrink_to_fit_inline_size(available_inline_size -
20 (margin_start + margin_end));
21 (Au(0), inline_size, margin_start, margin_end)
25 // FIXME(#501): tuple width heuristic may not be optimal for patterns.
29 margin_inline_end) = match (inline_start, inline_end, computed_inline_size) {
30 (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) => {
31 let margin_start = inline_start_margin.specified_or_zero();
32 let margin_end = inline_end_margin.specified_or_zero();
33 // Now it is the same situation as inline-start Specified and inline-end
34 // and inline-size Auto.
36 // Set inline-end to zero to calculate inline-size.
37 let inline_size = block.get_shrink_to_fit_inline_size(available_inline_size -
38 (margin_start + margin_end));
39 (Au(0), inline_size, margin_start, margin_end)