Files
pmomusic/upnp/statevariable/utils_uuid.go
2025-07-13 06:59:56 +02:00

33 lines
623 B
Go

package stateVariables
import (
"fmt"
"github.com/google/uuid"
)
// toUUID converts a value to uuid.UUID if possible.
func toUUID(v interface{}) (uuid.UUID, error) {
switch val := v.(type) {
case uuid.UUID:
return val, nil
case string:
u, err := uuid.Parse(val)
if err != nil {
return uuid.UUID{}, fmt.Errorf("invalid UUID string %q: %v", val, err)
}
return u, nil
case []byte:
u, err := uuid.FromBytes(val)
if err != nil {
return uuid.UUID{}, fmt.Errorf("invalid UUID bytes: %v", err)
}
return u, nil
default:
return uuid.UUID{}, fmt.Errorf("cannot convert type %T to UUID", v)
}
}