github.com/go-courier/sqlx/v2@v2.23.13/connectors/postgresql/opts.go (about)

     1  package postgresql
     2  
     3  import (
     4  	"bytes"
     5  	"sort"
     6  	"strings"
     7  )
     8  
     9  func FromConfigString(s string) PostgreSQLOpts {
    10  	opts := PostgreSQLOpts{}
    11  	for _, kv := range strings.Split(s, " ") {
    12  		kvs := strings.Split(kv, "=")
    13  		if len(kvs) > 1 {
    14  			opts[kvs[0]] = kvs[1]
    15  		}
    16  	}
    17  	return opts
    18  }
    19  
    20  type PostgreSQLOpts map[string]string
    21  
    22  func (opts PostgreSQLOpts) String() string {
    23  	buf := bytes.NewBuffer(nil)
    24  
    25  	kvs := make([]string, 0)
    26  	for k := range opts {
    27  		kvs = append(kvs, k)
    28  	}
    29  	sort.Strings(kvs)
    30  
    31  	for i, k := range kvs {
    32  		if i > 0 {
    33  			buf.WriteByte(' ')
    34  		}
    35  		buf.WriteString(k)
    36  		buf.WriteByte('=')
    37  		buf.WriteString(opts[k])
    38  	}
    39  
    40  	return buf.String()
    41  }