Would enable support for margin, padding and border. Most efficient would be to use different single-property structs (i.e. separate Margin), and implement extension methods for View objects.
i.e.:
let view = SomeView(...).border(1, BinaryColor::On); // view: Border<SomeView, BinaryColor>
This single wrapper approach only requires a single spacing property (only margin or only padding) as well as enables multiple borders.