drone/types/enum/space.go
2023-09-15 15:19:53 +00:00

50 lines
1.1 KiB
Go

// Copyright 2022 Harness Inc. All rights reserved.
// Use of this source code is governed by the Polyform Free Trial License
// that can be found in the LICENSE.md file for this repository.
package enum
import "strings"
// SpaceAttr defines space attributes that can be used for sorting and filtering.
type SpaceAttr int
// Order enumeration.
const (
SpaceAttrNone SpaceAttr = iota
SpaceAttrUID
SpaceAttrCreated
SpaceAttrUpdated
)
// ParseSpaceAttr parses the space attribute string
// and returns the equivalent enumeration.
func ParseSpaceAttr(s string) SpaceAttr {
switch strings.ToLower(s) {
case uid:
return SpaceAttrUID
case created, createdAt:
return SpaceAttrCreated
case updated, updatedAt:
return SpaceAttrUpdated
default:
return SpaceAttrNone
}
}
// String returns the string representation of the attribute.
func (a SpaceAttr) String() string {
switch a {
case SpaceAttrUID:
return uid
case SpaceAttrCreated:
return created
case SpaceAttrUpdated:
return updated
case SpaceAttrNone:
return ""
default:
return undefined
}
}