1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
- //
- // This Source Code Form is subject to the terms of the MIT License.
- // If a copy of the MIT was not distributed with this file,
- // You can obtain one at https://github.com/gogf/gf.
- package gtrace
- import (
- "github.com/gogf/gf/internal/json"
- "github.com/gogf/gf/util/gconv"
- )
- // Carrier is the storage medium used by a TextMapPropagator.
- type Carrier map[string]interface{}
- func NewCarrier(data ...map[string]interface{}) Carrier {
- if len(data) > 0 && data[0] != nil {
- return data[0]
- } else {
- return make(map[string]interface{})
- }
- }
- // Get returns the value associated with the passed key.
- func (c Carrier) Get(k string) string {
- return gconv.String(c[k])
- }
- // Set stores the key-value pair.
- func (c Carrier) Set(k, v string) {
- c[k] = v
- }
- // Keys lists the keys stored in this carrier.
- func (c Carrier) Keys() []string {
- keys := make([]string, 0, len(c))
- for k := range c {
- keys = append(keys, k)
- }
- return keys
- }
- func (c Carrier) MustMarshal() []byte {
- b, err := json.Marshal(c)
- if err != nil {
- panic(err)
- }
- return b
- }
- func (c Carrier) String() string {
- return string(c.MustMarshal())
- }
- func (c Carrier) UnmarshalJSON(b []byte) error {
- carrier := NewCarrier(nil)
- return json.UnmarshalUseNumber(b, carrier)
- }
|