github.com/Nothing-no/viper@v0.0.0-20230922064921-68b4373f7378/viper_convert.go (about) 1 package viper 2 3 import "github.com/spf13/viper/internal/convert" 4 5 //MapTo quick map to struct if know what the value carries 6 //using `viper:"key"`` tag to specify keys 7 /* 8 EG: 9 type Service struct { 10 Port int `viper:"port"` 11 IP string `viper:"ip"` 12 } 13 14 SetDefault("service", map[string]interface{}{ 15 "ip": "127.0.0.1", 16 "port": 1234, 17 }) 18 19 var service Service 20 err := MapTo("service", &service) 21 assert.NoError(t, err) 22 assert.Equal(t, Get("service.port"), service.Port) 23 assert.Equal(t, Get("service.ip"), service.IP) 24 */ 25 func MapTo(key string, target interface{}) error { 26 return v.MapTo(key, target) 27 } 28 29 func (v *Viper) MapTo(key string, target interface{}) error { 30 return convert.Convert(v.Get(key), target) 31 }