mirror of
https://github.com/bestnite/go-igdb.git
synced 2025-04-20 00:45:54 +08:00
42 lines
650 B
Go
42 lines
650 B
Go
package igdb
|
|
|
|
import "fmt"
|
|
|
|
func AssertSingle[T any](data any, err error) (*T, error) {
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if data == nil {
|
|
return nil, fmt.Errorf("data is nil")
|
|
}
|
|
|
|
datas, ok := data.([]*T)
|
|
if !ok {
|
|
return nil, fmt.Errorf("failed to convert to []*T")
|
|
}
|
|
|
|
if len(datas) == 0 {
|
|
return nil, fmt.Errorf("no results")
|
|
}
|
|
|
|
return datas[0], nil
|
|
}
|
|
|
|
func AssertSlice[T any](data any, err error) ([]*T, error) {
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if data == nil {
|
|
return nil, fmt.Errorf("data is nil")
|
|
}
|
|
|
|
datas, ok := data.([]*T)
|
|
if !ok {
|
|
return nil, fmt.Errorf("failed to convert to []*T")
|
|
}
|
|
|
|
return datas, nil
|
|
}
|