|
1 | 1 | package geom |
2 | 2 |
|
| 3 | +import "fmt" |
| 4 | + |
3 | 5 | // Padding represents a 2D padding. |
4 | 6 | type Padding[T Number] struct { |
5 | | - Top, Right, Bottom, Left T |
| 7 | + Top T `json:"t"` |
| 8 | + Right T `json:"r"` |
| 9 | + Bottom T `json:"b"` |
| 10 | + Left T `json:"l"` |
6 | 11 | } |
7 | 12 |
|
8 | 13 | // Pad is shorthand for Padding{top, right, bottom, left}. |
9 | 14 | func Pad[T Number](top, right, bottom, left T) Padding[T] { |
10 | 15 | return Padding[T]{top, right, bottom, left} |
11 | 16 | } |
12 | 17 |
|
13 | | -// PadU is shorthand for Padding{padding, padding, padding, padding}. |
14 | | -func PadU[T Number](padding T) Padding[T] { |
15 | | - return Padding[T]{padding, padding, padding, padding} |
16 | | -} |
17 | | - |
18 | | -// PadXY is shorthand for Padding{topBottom, leftRight, topBottom, leftRight}. |
19 | | -func PadXY[T Number](topBottom, leftRight T) Padding[T] { |
20 | | - return Padding[T]{topBottom, leftRight, topBottom, leftRight} |
21 | | -} |
22 | | - |
23 | 18 | // Width returns the width of the padding. |
24 | 19 | func (p Padding[T]) Width() T { |
25 | 20 | return p.Left + p.Right |
@@ -49,3 +44,18 @@ func (p Padding[T]) Int() Padding[int] { |
49 | 44 | func (p Padding[T]) Float() Padding[float64] { |
50 | 45 | return Padding[float64]{float64(p.Top), float64(p.Right), float64(p.Bottom), float64(p.Left)} |
51 | 46 | } |
| 47 | + |
| 48 | +// String returns a string representation of the Padding. |
| 49 | +func (p Padding[T]) String() string { |
| 50 | + return fmt.Sprintf("Pad(%s;%s;%s;%s)", String(p.Top), String(p.Right), String(p.Bottom), String(p.Left)) |
| 51 | +} |
| 52 | + |
| 53 | +// PadU is shorthand for Padding{padding, padding, padding, padding}. |
| 54 | +func PadU[T Number](padding T) Padding[T] { |
| 55 | + return Padding[T]{padding, padding, padding, padding} |
| 56 | +} |
| 57 | + |
| 58 | +// PadXY is shorthand for Padding{topBottom, leftRight, topBottom, leftRight}. |
| 59 | +func PadXY[T Number](topBottom, leftRight T) Padding[T] { |
| 60 | + return Padding[T]{topBottom, leftRight, topBottom, leftRight} |
| 61 | +} |
0 commit comments