Open
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)
}