collapse method
Auto margins already have a "value" of zero so can be considered collapsed.
Implementation
Margins collapse() {
return Margins(
left: left?.unit == Unit.auto ? left : Margin(0, Unit.px),
right: right?.unit == Unit.auto ? right : Margin(0, Unit.px),
inlineEnd:
inlineEnd?.unit == Unit.auto ? inlineEnd : Margin(0, Unit.px),
inlineStart:
inlineStart?.unit == Unit.auto ? inlineStart : Margin(0, Unit.px),
top: top?.unit == Unit.auto ? top : Margin(0, Unit.px),
bottom: bottom?.unit == Unit.auto ? bottom : Margin(0, Unit.px),
blockEnd: blockEnd?.unit == Unit.auto ? blockEnd : Margin(0, Unit.px),
blockStart:
blockStart?.unit == Unit.auto ? blockStart : Margin(0, Unit.px));
}