Skip to content

Commit f8aef44

Browse files
committed
chore: introduce breaking changes
- package no longer supports converting from bool true/false are no longer converted to 1/0 These values cannot overflow. - Convert no longer supports converting from string You can now use Parse function - string to number conversion no longer uses base 0 (auto-detect in Go strconv library) Use Parse function with proper base instead - Convert no longer returns 0 when conversion fails It now returns the invalid converted value with the error - Removed `Input` type (Input=string|bool|Number) This type was used by Convert function to represent input value. Now Convert function uses Number type directly. - Fixed float overflow handling with parse float from string Previously, it returned an ErrStringConversion error while it's an overflow. Now it returns the proper overflow error.
1 parent e16fe30 commit f8aef44

File tree

11 files changed

+788
-349
lines changed

11 files changed

+788
-349
lines changed

asserters_test.go

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"strings"
77
"testing"
88

9-
"github.com/ccoveille/go-safecast"
9+
"github.com/ccoveille/go-safecast/v2"
1010
)
1111

1212
// mockTestingT is a mock implementation of the safecast.TestingT interface
@@ -114,9 +114,8 @@ func assertInt8Error[in safecast.Number](t *testing.T, tests []caseInt8[in]) {
114114

115115
for _, tt := range tests {
116116
t.Run(tt.name, func(t *testing.T) {
117-
got, err := safecast.ToInt8(tt.input)
117+
_, err := safecast.ToInt8(tt.input)
118118
requireErrorIs(t, err, safecast.ErrConversionIssue)
119-
assertEqual(t, tt.want, got)
120119
})
121120
}
122121
}
@@ -163,9 +162,8 @@ func assertUint8Error[in safecast.Number](t *testing.T, tests []caseUint8[in]) {
163162
t.Run(tt.name, func(t *testing.T) {
164163
t.Helper()
165164

166-
got, err := safecast.ToUint8(tt.input)
165+
_, err := safecast.ToUint8(tt.input)
167166
requireErrorIs(t, err, safecast.ErrConversionIssue)
168-
assertEqual(t, tt.want, got)
169167
})
170168
}
171169
}
@@ -193,9 +191,8 @@ func assertInt16Error[in safecast.Number](t *testing.T, tests []caseInt16[in]) {
193191

194192
for _, tt := range tests {
195193
t.Run(tt.name, func(t *testing.T) {
196-
got, err := safecast.ToInt16(tt.input)
194+
_, err := safecast.ToInt16(tt.input)
197195
requireErrorIs(t, err, safecast.ErrConversionIssue)
198-
assertEqual(t, tt.want, got)
199196
})
200197
}
201198
}
@@ -225,9 +222,8 @@ func assertUint16Error[in safecast.Number](t *testing.T, tests []caseUint16[in])
225222
t.Run(tt.name, func(t *testing.T) {
226223
t.Helper()
227224

228-
got, err := safecast.ToUint16(tt.input)
225+
_, err := safecast.ToUint16(tt.input)
229226
requireErrorIs(t, err, safecast.ErrConversionIssue)
230-
assertEqual(t, tt.want, got)
231227
})
232228
}
233229
}
@@ -255,9 +251,8 @@ func assertInt32Error[in safecast.Number](t *testing.T, tests []caseInt32[in]) {
255251

256252
for _, tt := range tests {
257253
t.Run(tt.name, func(t *testing.T) {
258-
got, err := safecast.ToInt32(tt.input)
254+
_, err := safecast.ToInt32(tt.input)
259255
requireErrorIs(t, err, safecast.ErrConversionIssue)
260-
assertEqual(t, tt.want, got)
261256
})
262257
}
263258
}
@@ -287,9 +282,8 @@ func assertUint32Error[in safecast.Number](t *testing.T, tests []caseUint32[in])
287282
t.Run(tt.name, func(t *testing.T) {
288283
t.Helper()
289284

290-
got, err := safecast.ToUint32(tt.input)
285+
_, err := safecast.ToUint32(tt.input)
291286
requireErrorIs(t, err, safecast.ErrConversionIssue)
292-
assertEqual(t, tt.want, got)
293287
})
294288
}
295289
}
@@ -317,9 +311,8 @@ func assertInt64Error[in safecast.Number](t *testing.T, tests []caseInt64[in]) {
317311

318312
for _, tt := range tests {
319313
t.Run(tt.name, func(t *testing.T) {
320-
got, err := safecast.ToInt64(tt.input)
314+
_, err := safecast.ToInt64(tt.input)
321315
requireErrorIs(t, err, safecast.ErrConversionIssue)
322-
assertEqual(t, tt.want, got)
323316
})
324317
}
325318
}
@@ -347,9 +340,8 @@ func assertUint64Error[in safecast.Number](t *testing.T, tests []caseUint64[in])
347340

348341
for _, tt := range tests {
349342
t.Run(tt.name, func(t *testing.T) {
350-
got, err := safecast.ToUint64(tt.input)
343+
_, err := safecast.ToUint64(tt.input)
351344
requireErrorIs(t, err, safecast.ErrConversionIssue)
352-
assertEqual(t, tt.want, got)
353345
})
354346
}
355347
}
@@ -377,9 +369,8 @@ func assertIntError[in safecast.Number](t *testing.T, tests []caseInt[in]) {
377369

378370
for _, tt := range tests {
379371
t.Run(tt.name, func(t *testing.T) {
380-
got, err := safecast.ToInt(tt.input)
372+
_, err := safecast.ToInt(tt.input)
381373
requireErrorIs(t, err, safecast.ErrConversionIssue)
382-
assertEqual(t, tt.want, got)
383374
})
384375
}
385376
}
@@ -407,9 +398,8 @@ func assertUintError[in safecast.Number](t *testing.T, tests []caseUint[in]) {
407398

408399
for _, tt := range tests {
409400
t.Run(tt.name, func(t *testing.T) {
410-
got, err := safecast.ToUint(tt.input)
401+
_, err := safecast.ToUint(tt.input)
411402
requireErrorIs(t, err, safecast.ErrConversionIssue)
412-
assertEqual(t, tt.want, got)
413403
})
414404
}
415405
}
@@ -437,9 +427,8 @@ func assertFloat32Error[in safecast.Number](t *testing.T, tests []caseFloat32[in
437427

438428
for _, tt := range tests {
439429
t.Run(tt.name, func(t *testing.T) {
440-
got, err := safecast.ToFloat32(tt.input)
430+
_, err := safecast.ToFloat32(tt.input)
441431
requireErrorIs(t, err, safecast.ErrConversionIssue)
442-
assertEqual(t, tt.want, got)
443432
})
444433
}
445434
}

0 commit comments

Comments
 (0)