diff options
Diffstat (limited to 'bug/label.go')
-rw-r--r-- | bug/label.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/bug/label.go b/bug/label.go index 889bf455..c84c56cd 100644 --- a/bug/label.go +++ b/bug/label.go @@ -1,7 +1,29 @@ package bug +import ( + "fmt" + "io" +) + type Label string func (l Label) String() string { return string(l) } + +// UnmarshalGQL implements the graphql.Marshaler interface +func (l *Label) UnmarshalGQL(v interface{}) error { + _, ok := v.(string) + if !ok { + return fmt.Errorf("labels must be strings") + } + + *l = v.(Label) + + return nil +} + +// MarshalGQL implements the graphql.Marshaler interface +func (l Label) MarshalGQL(w io.Writer) { + w.Write([]byte(l)) +} |