text: // 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 "fmt"
  
  // MarshalText implements encoding.TextMarshaler.
  func (uuid UUID) MarshalText() ([]byte, error) {
  	var js [36]byte
  	encodeHex(js[:], uuid)
  	return js[:], nil
  }
  
  // UnmarshalText implements encoding.TextUnmarshaler.
  func (uuid *UUID) UnmarshalText(data []byte) error {
  	id, err := ParseBytes(data)
  	if err == nil {
  		*uuid = id
  	}
  	return err
  }
  
  // MarshalBinary implements encoding.BinaryMarshaler.
  func (uuid UUID) MarshalBinary() ([]byte, error) {
  	return uuid[:], nil
  }
  
  // UnmarshalBinary implements encoding.BinaryUnmarshaler.
  func (uuid *UUID) UnmarshalBinary(data []byte) error {
  	if len(data) != 16 {
  		return fmt.Errorf("invalid UUID (got %d bytes)", len(data))
  	}
  	copy(uuid[:], data)
  	return nil
  }
  