Skip to content
Snippets Groups Projects
Select Git revision
  • 6d759d64559a7f1975f13c310f3f1f8ff6b416a7
  • master default
2 results

dynafile_cache.go

Blame
  • span_id.go 618 B
    package model
    
    import (
    	"fmt"
    	"strconv"
    )
    
    // ID type
    type ID uint64
    
    // String outputs the 64-bit ID as hex string.
    func (i ID) String() string {
    	return fmt.Sprintf("%016x", uint64(i))
    }
    
    // MarshalJSON serializes an ID type (SpanID, ParentSpanID) to HEX.
    func (i ID) MarshalJSON() ([]byte, error) {
    	return []byte(fmt.Sprintf("%q", i.String())), nil
    }
    
    // UnmarshalJSON deserializes an ID type (SpanID, ParentSpanID) from HEX.
    func (i *ID) UnmarshalJSON(b []byte) (err error) {
    	var id uint64
    	if len(b) < 3 {
    		return nil
    	}
    	id, err = strconv.ParseUint(string(b[1:len(b)-1]), 16, 64)
    	*i = ID(id)
    	return err
    }