Procházet zdrojové kódy

Marshalling of config to string

tags/v2.0.0-rc1
9seconds před 5 roky
rodič
revize
098a9c411a
1 změnil soubory, kde provedl 57 přidání a 0 odebrání
  1. 57
    0
      config.go

+ 57
- 0
config.go Zobrazit soubor

43
 	return nil
43
 	return nil
44
 }
44
 }
45
 
45
 
46
+func (c configTypeHostPort) MarshalText() ([]byte, error) {
47
+	return []byte(c.String()), nil
48
+}
49
+
46
 func (c configTypeHostPort) String() string {
50
 func (c configTypeHostPort) String() string {
47
 	return c.Value(net.IP{}, 0)
51
 	return c.Value(net.IP{}, 0)
48
 }
52
 }
75
 	return nil
79
 	return nil
76
 }
80
 }
77
 
81
 
82
+func (c *configTypePort) MarshalJSON() ([]byte, error) {
83
+	return json.Marshal(c.value)
84
+}
85
+
78
 func (c configTypePort) String() string {
86
 func (c configTypePort) String() string {
79
 	return strconv.Itoa(int(c.value))
87
 	return strconv.Itoa(int(c.value))
80
 }
88
 }
110
 	return nil
118
 	return nil
111
 }
119
 }
112
 
120
 
121
+func (c configTypeBytes) MarshalText() ([]byte, error) {
122
+	return []byte(c.String()), nil
123
+}
124
+
113
 func (c configTypeBytes) String() string {
125
 func (c configTypeBytes) String() string {
114
 	return units.ToString(int64(c.value), 1024, "ib", "b")
126
 	return units.ToString(int64(c.value), 1024, "ib", "b")
115
 }
127
 }
143
 	return nil
155
 	return nil
144
 }
156
 }
145
 
157
 
158
+func (c configTypePreferIP) MarshalText() ([]byte, error) {
159
+	return []byte(c.value), nil
160
+}
161
+
146
 func (c *configTypePreferIP) String() string {
162
 func (c *configTypePreferIP) String() string {
147
 	return c.value
163
 	return c.value
148
 }
164
 }
178
 	return nil
194
 	return nil
179
 }
195
 }
180
 
196
 
197
+func (c configTypeDuration) MarshalText() ([]byte, error) {
198
+	return []byte(c.value.String()), nil
199
+}
200
+
181
 func (c configTypeDuration) String() string {
201
 func (c configTypeDuration) String() string {
182
 	return c.value.String()
202
 	return c.value.String()
183
 }
203
 }
209
 	return nil
229
 	return nil
210
 }
230
 }
211
 
231
 
232
+func (c *configTypeFloat) MarshalText() ([]byte, error) {
233
+	return []byte(c.String()), nil
234
+}
235
+
212
 func (c configTypeFloat) String() string {
236
 func (c configTypeFloat) String() string {
213
 	return strconv.FormatFloat(c.value, 'f', -1, 64)
237
 	return strconv.FormatFloat(c.value, 'f', -1, 64)
214
 }
238
 }
240
 	return nil
264
 	return nil
241
 }
265
 }
242
 
266
 
267
+func (c *configTypeIP) MarshalText() ([]byte, error) {
268
+	return []byte(c.String()), nil
269
+}
270
+
243
 func (c configTypeIP) String() string {
271
 func (c configTypeIP) String() string {
272
+	if c.value == nil {
273
+		return ""
274
+	}
275
+
244
 	return c.value.String()
276
 	return c.value.String()
245
 }
277
 }
246
 
278
 
271
 	return nil
303
 	return nil
272
 }
304
 }
273
 
305
 
306
+func (c *configTypeURL) MarshalText() ([]byte, error) {
307
+	return []byte(c.String()), nil
308
+}
309
+
274
 func (c configTypeURL) String() string {
310
 func (c configTypeURL) String() string {
275
 	if c.value == nil {
311
 	if c.value == nil {
276
 		return ""
312
 		return ""
307
 	return nil
343
 	return nil
308
 }
344
 }
309
 
345
 
346
+func (c configTypeMetricPrefix) MarshalText() ([]byte, error) {
347
+	return []byte(c.String()), nil
348
+}
349
+
310
 func (c configTypeMetricPrefix) String() string {
350
 func (c configTypeMetricPrefix) String() string {
311
 	return c.value
351
 	return c.value
312
 }
352
 }
331
 	return nil
371
 	return nil
332
 }
372
 }
333
 
373
 
374
+func (c configTypeHTTPPath) MarshalText() ([]byte, error) {
375
+	return []byte(c.String()), nil
376
+}
377
+
334
 func (c configTypeHTTPPath) String() string {
378
 func (c configTypeHTTPPath) String() string {
335
 	return c.value
379
 	return c.value
336
 }
380
 }
392
 	return nil
436
 	return nil
393
 }
437
 }
394
 
438
 
439
+func (c *config) String() string {
440
+	buf := &bytes.Buffer{}
441
+	encoder := json.NewEncoder(buf)
442
+
443
+	encoder.SetEscapeHTML(false)
444
+
445
+	if err := encoder.Encode(c); err != nil {
446
+		panic(err)
447
+	}
448
+
449
+	return buf.String()
450
+}
451
+
395
 type configRaw struct {
452
 type configRaw struct {
396
 	Debug     bool   `toml:"debug" json:"debug"`
453
 	Debug     bool   `toml:"debug" json:"debug"`
397
 	Secret    string `toml:"secret" json:"secret"`
454
 	Secret    string `toml:"secret" json:"secret"`

Načítá se…
Zrušit
Uložit