| package pq |
| |
| import ( |
| "encoding/hex" |
| "fmt" |
| ) |
| |
| // decodeUUIDBinary interprets the binary format of a uuid, returning it in text format. |
| func decodeUUIDBinary(src []byte) ([]byte, error) { |
| if len(src) != 16 { |
| return nil, fmt.Errorf("pq: unable to decode uuid; bad length: %d", len(src)) |
| } |
| |
| dst := make([]byte, 36) |
| dst[8], dst[13], dst[18], dst[23] = '-', '-', '-', '-' |
| hex.Encode(dst[0:], src[0:4]) |
| hex.Encode(dst[9:], src[4:6]) |
| hex.Encode(dst[14:], src[6:8]) |
| hex.Encode(dst[19:], src[8:10]) |
| hex.Encode(dst[24:], src[10:16]) |
| |
| return dst, nil |
| } |