github.com/ManabuSeki/goa-v1@v1.4.3/uuid/uuid.go (about)

     1  // +build !js
     2  
     3  //This is just a declaration of the uuid.UUID which doesn't work with gopherjs
     4  //See uuid_js.go for the JS implementation
     5  
     6  package uuid
     7  
     8  import "github.com/gofrs/uuid"
     9  
    10  // FromString Wrapper around the real FromString
    11  func FromString(input string) (UUID, error) {
    12  	u, err := uuid.FromString(input)
    13  	return UUID(u), err
    14  }
    15  
    16  // NewV4 Wrapper over the real NewV4 method
    17  func NewV4() UUID {
    18  	return UUID(uuid.Must(uuid.NewV4()))
    19  }
    20  
    21  // String Wrapper over the real String method
    22  func (u UUID) String() string {
    23  	return uuid.UUID(u).String()
    24  }
    25  
    26  // MarshalText Wrapper over the real MarshalText method
    27  func (u UUID) MarshalText() (text []byte, err error) {
    28  	return uuid.UUID(u).MarshalText()
    29  }
    30  
    31  // MarshalBinary Wrapper over the real MarshalBinary method
    32  func (u UUID) MarshalBinary() ([]byte, error) {
    33  	return uuid.UUID(u).MarshalBinary()
    34  }
    35  
    36  // UnmarshalBinary Wrapper over the real UnmarshalBinary method
    37  func (u *UUID) UnmarshalBinary(data []byte) error {
    38  	t := uuid.UUID{}
    39  	err := t.UnmarshalBinary(data)
    40  	for i, b := range t.Bytes() {
    41  		u[i] = b
    42  	}
    43  	return err
    44  }
    45  
    46  // UnmarshalText Wrapper over the real UnmarshalText method
    47  func (u *UUID) UnmarshalText(text []byte) error {
    48  	t := uuid.UUID{}
    49  	err := t.UnmarshalText(text)
    50  	for i, b := range t.Bytes() {
    51  		u[i] = b
    52  	}
    53  	return err
    54  }