-
-
Notifications
You must be signed in to change notification settings - Fork 452
Open
Labels
Description
👋 Hello,
I got the following error with this expression: merge_request.state in ["merged", "closed"]
reflect.Value.MapIndex: value of type gitlab.MergeRequestState is not assignable to type string
It would be very nice if types implementing fmt.Stringer
interface to be assignable to strings, or generally treated as strings.
Alternatively, a expr
interface types could implement, making them capable of self-casting to various scalar types.
For reference this is the gitlab.MergeRequestState
type (used in merge_request.state
) implementation
type MergeRequestState string
const (
// All available
MergeRequestStateAll MergeRequestState = "all"
// In closed state
MergeRequestStateClosed MergeRequestState = "closed"
// Discussion has been locked
MergeRequestStateLocked MergeRequestState = "locked"
// Merge request has been merged
MergeRequestStateMerged MergeRequestState = "merged"
// Opened merge request
MergeRequestStateOpened MergeRequestState = "opened"
)
var AllMergeRequestState = []MergeRequestState{
MergeRequestStateAll,
MergeRequestStateClosed,
MergeRequestStateLocked,
MergeRequestStateMerged,
MergeRequestStateOpened,
}
func (e MergeRequestState) IsValid() bool {
switch e {
case MergeRequestStateAll, MergeRequestStateClosed, MergeRequestStateLocked, MergeRequestStateMerged, MergeRequestStateOpened:
return true
}
return false
}
func (e MergeRequestState) String() string {
return string(e)
}