mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 01:38:10 +00:00
Travis seems to be having issues pulling deps, so we'll have to check in the vendor directory and prevent the makefile from trying to regenerate it normally.
83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
// Copyright 2016 Google Inc. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package uuid
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
// MarshalText implements encoding.TextMarshaler.
|
|
func (u UUID) MarshalText() ([]byte, error) {
|
|
if len(u) != 16 {
|
|
return nil, nil
|
|
}
|
|
var js [36]byte
|
|
encodeHex(js[:], u)
|
|
return js[:], nil
|
|
}
|
|
|
|
// UnmarshalText implements encoding.TextUnmarshaler.
|
|
func (u *UUID) UnmarshalText(data []byte) error {
|
|
if len(data) == 0 {
|
|
return nil
|
|
}
|
|
id := Parse(string(data))
|
|
if id == nil {
|
|
return errors.New("invalid UUID")
|
|
}
|
|
*u = id
|
|
return nil
|
|
}
|
|
|
|
// MarshalBinary implements encoding.BinaryMarshaler.
|
|
func (u UUID) MarshalBinary() ([]byte, error) {
|
|
return u[:], nil
|
|
}
|
|
|
|
// UnmarshalBinary implements encoding.BinaryUnmarshaler.
|
|
func (u *UUID) UnmarshalBinary(data []byte) error {
|
|
if len(data) == 0 {
|
|
return nil
|
|
}
|
|
if len(data) != 16 {
|
|
return fmt.Errorf("invalid UUID (got %d bytes)", len(data))
|
|
}
|
|
var id [16]byte
|
|
copy(id[:], data)
|
|
*u = id[:]
|
|
return nil
|
|
}
|
|
|
|
// MarshalText implements encoding.TextMarshaler.
|
|
func (u Array) MarshalText() ([]byte, error) {
|
|
var js [36]byte
|
|
encodeHex(js[:], u[:])
|
|
return js[:], nil
|
|
}
|
|
|
|
// UnmarshalText implements encoding.TextUnmarshaler.
|
|
func (u *Array) UnmarshalText(data []byte) error {
|
|
id := Parse(string(data))
|
|
if id == nil {
|
|
return errors.New("invalid UUID")
|
|
}
|
|
*u = id.Array()
|
|
return nil
|
|
}
|
|
|
|
// MarshalBinary implements encoding.BinaryMarshaler.
|
|
func (u Array) MarshalBinary() ([]byte, error) {
|
|
return u[:], nil
|
|
}
|
|
|
|
// UnmarshalBinary implements encoding.BinaryUnmarshaler.
|
|
func (u *Array) UnmarshalBinary(data []byte) error {
|
|
if len(data) != 16 {
|
|
return fmt.Errorf("invalid UUID (got %d bytes)", len(data))
|
|
}
|
|
copy(u[:], data)
|
|
return nil
|
|
}
|