All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.30.0 - 2024-06-01
- Changed NanoTome to not use linkname due to Go1.23 upcoming breaking changes.
5.29.1 - 2024-04-04
- Added HTTP 404 to non retryable status codes.
5.29.0 - 2024-03-24
asciiext
package for ASCII related functions.errorsext.Retrier
configurable retry helper for any fallible operation.httpext.Retrier
configurable retry helper for HTTP requests and parsing of responses.httpext.DecodeResponseAny
non-generic helper for decoding HTTP responses.httpext.HasRetryAfter
helper for checking if a response has aRetry-After
header and returning duration to wait.
5.28.1 - 2024-02-14
- Additional supported types, cast to
sql.Valuer
supported types, they need to be returned to the driver for evaluation.
5.28.0 - 2024-02-13
- Additionally supported types, cast to
sql.Valuer
supported types.
- Option scan to take advantage of new
sql.Null
andreflect.TypeFor
for go1.22+. BytesToString
&StringToBytes
to useunsafe.String
&unsafe.Slice
for go1.21+.
mathext.Min
&mathext.Max
in favour of std lib min & max.
- Some documentation typos.
5.27.0 - 2024-01-29
sliceext.Retain
&sliceext.Filter
to not shuffle data in the underlying slice array but create new slice referencing the data instead. In practice, it can cause unexpected behaviour and users expectations not met when the same data is also referenced elsewhere. If anyone still requires ashuffle
implementation for efficiency I'd be happy to add a separate function for that as well.
5.26.0 - 2024-01-28
stringsext.Join
a more ergonomic way to join strings with a separator when you don't have a slice of strings.
5.25.0 - 2024-01-22
- Add additional
Option.Scan
type support forsql.Scanner
interface of Uint, Uint16, Uint32, Uint64, Int, Int, Int8, Float32, []byte, json.RawValue.
5.24.0 - 2024-01-21
appext
package for application level helpers. Specifically added setting up os signal trapping and cancellation of context.Context.
5.23.0 - 2024-01-14
And
andAndThen
functions toOption
&Result
types.
5.22.0 - 2023-10-18
UnwrapOr
,UnwrapOrElse
andUnwrapOrDefault
functions toOption
&Result
types.
5.21.3 - 2023-10-11
- Fix SQL Scanner interface not returning None for Option when source data is nil.
5.21.2 - 2023-07-13
- Updated default form/url.Value encoder/decoder with fix for bubbling up invalid array index values.
5.21.1 - 2023-06-30
- Instant type to not be wrapped in a struct but a type itself.
5.21.0 - 2023-06-30
- Instant type to make working with monotonically increasing times more convenient.
5.20.0 - 2023-06-17
- Expanded Option type SQL Value support to handle value custom types and honour the
driver.Valuer
interface.
- Option sql.Scanner to support custom types.
5.19.0 - 2023-06-14
- strconvext.ParseBool(...) which is a drop-in replacement for the std lin strconv.ParseBool(..) with a few more supported values.
- Expanded Option type SQL Scan support to handle Scanning to an Interface, Struct, Slice, Map and anything that implements the sql.Scanner interface.
5.18.0 - 2023-05-21
- typesext.Nothing & valuesext.Nothing for better clarity in generic params and values that represent struct{}. This will provide better code readability and intent.
5.17.2 - 2023-05-09
- Prematurely closing http.Response Body before error with it can be intercepted for ErrUnexpectedResponse.
5.17.1 - 2023-05-09
- ErrRetryableStatusCode passing the *http.Response to have access to not only the status code but headers etc. related to retrying.
- Added ErrUnexpectedResponse to pass back when encountering an unexpected response code to allow the caller to decide what to do.
5.17.0 - 2023-05-08
- bytesext.Bytes alias to int64 for better code clarity.
- errorext.DoRetryable(...) building block for automating retryable errors.
- sqlext.DoTransaction(...) building block for abstracting away transactions.
- httpext.DoRetryableResponse(...) & httpext.DoRetryable(...) building blocks for automating retryable http requests.
- httpext.DecodeResponse(...) building block for decoding http responses.
- httpext.ErrRetryableStatusCode error for retryable http status code detection and handling.
- errorsext.ErrMaxAttemptsReached error for retryable retryable logic & reuse.
5.16.0 - 2023-04-16
- sliceext.Reverse(...)
5.15.2 - 2023-03-06
- Unnecessary second type param for Mutex2.
5.15.1 - 2023-03-06
- New Mutex2 functions and guards; checked in the wrong code accidentally last commit.
5.15.0 - 2023-03-05
- New Mutex2 and RWMutex2 which corrects the original Mutex's design issues.
- Deprecation warning for original Mutex usage.
5.14.0 - 2023-02-25
- Added
timext.NanoTime
for fast low level monotonic time with nanosecond precision.