summaryrefslogtreecommitdiff
path: root/shrine/utils/env/validator.go
blob: 4c654cae37f642744e2bbed5acdb465888fbf7d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package env

import (
	"errors"
	"reflect"
	"shrine/messages"
)

func validateConfigInput(config any) (reflect.Value, reflect.Type, error) {
	v := reflect.ValueOf(config)
	if v.Kind() != reflect.Pointer || v.Elem().Kind() != reflect.Struct {
		return reflect.Value{}, nil, errors.New(messages.ConfigMustBePointer)
	}
	elem := v.Elem()
	return elem, elem.Type(), nil
}