openmeter / pkg /ref /ref.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 10)
6380833 verified
Raw
History Blame Contribute Delete
617 Bytes
package ref
import (
"fmt"
"github.com/oklog/ulid/v2"
)
type IDOrKey struct {
ID string `json:"id"`
Key string `json:"key"`
}
func (i IDOrKey) GetIDs() []string {
if i.ID == "" {
return nil
}
return []string{i.ID}
}
func (i IDOrKey) GetKeys() []string {
if i.Key == "" {
return nil
}
return []string{i.Key}
}
func (i IDOrKey) Validate() error {
if i.ID == "" && i.Key == "" {
return fmt.Errorf("either id or key is required")
}
return nil
}
func ParseIDOrKey(s string) IDOrKey {
n := IDOrKey{}
_, err := ulid.Parse(s)
if err != nil {
n.Key = s
} else {
n.ID = s
}
return n
}