diff options
| author | Bobby <[email protected]> | 2026-03-29 22:52:46 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2026-03-29 22:52:46 +0530 |
| commit | 9eb9b7f4bd552a641235764f66483e1f940fcfd9 (patch) | |
| tree | da520b923b5e6758d5457b6233dd6671fc640914 /nexus/utils/env/extract.go | |
| parent | 65a143a0871c35989b7c7ea6723d39a0585c089e (diff) | |
| download | echoes-of-vaelun-main.tar.xz echoes-of-vaelun-main.zip | |
Diffstat (limited to 'nexus/utils/env/extract.go')
| -rw-r--r-- | nexus/utils/env/extract.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/nexus/utils/env/extract.go b/nexus/utils/env/extract.go new file mode 100644 index 0000000..72db69f --- /dev/null +++ b/nexus/utils/env/extract.go @@ -0,0 +1,33 @@ +package env
+
+import (
+ "errors"
+ "reflect"
+)
+
+func extractConfig(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(ConfigMustBePointer)
+ }
+ elem := v.Elem()
+ return elem, elem.Type(), nil
+}
+
+func extractFieldEnvInfo(element reflect.Value, elementType reflect.Type, index int) (*reflect.Value, string, string, bool) {
+ field := element.Field(index)
+ fieldType := elementType.Field(index)
+
+ if !field.CanSet() {
+ return nil, "", "", false
+ }
+
+ envKey := fieldType.Tag.Get(keyEnv)
+ defaultVal := fieldType.Tag.Get(keyDefault)
+
+ if envKey == "" {
+ return nil, "", "", false
+ }
+
+ return &field, envKey, defaultVal, true
+}
|
