import SwiftUI

public extension EdgeInsets {
    static let zero = EdgeInsets(top: 0.0, leading: 0.0, bottom: 0.0, trailing: 0.0)

    init(all value: CGFloat = 0) {
        self = .init(top: value, leading: value, bottom: value, trailing: value)
    }

    init(horizontal: CGFloat = 0, vertical: CGFloat = 0) {
        self = .init(top: vertical, leading: horizontal, bottom: vertical, trailing: horizontal)
    }

    // Similar to the native initializer but allows specifying only the relevant edge insets
    init(top: CGFloat? = nil, leading: CGFloat? = nil, bottom: CGFloat? = nil, trailing: CGFloat? = nil) {
        self.init(
            top: top ?? 0.0,
            leading: leading ?? 0.0,
            bottom: bottom ?? 0.0,
            trailing: trailing ?? 0.0
        )
    }
}
