github.com/Kartograf/gqlgen@v0.7.2/example/type-system-extension/models_gen.go (about) 1 // Code generated by github.com/99designs/gqlgen, DO NOT EDIT. 2 3 package type_system_extension 4 5 import ( 6 "fmt" 7 "io" 8 "strconv" 9 ) 10 11 type Data interface { 12 IsData() 13 } 14 15 type Node interface { 16 IsNode() 17 } 18 19 type Todo struct { 20 ID string `json:"id"` 21 Text string `json:"text"` 22 State State `json:"state"` 23 Verified bool `json:"verified"` 24 } 25 26 func (Todo) IsNode() {} 27 func (Todo) IsData() {} 28 29 type TodoInput struct { 30 Text string `json:"text"` 31 } 32 33 type State string 34 35 const ( 36 StateNotYet State = "NOT_YET" 37 StateDone State = "DONE" 38 ) 39 40 func (e State) IsValid() bool { 41 switch e { 42 case StateNotYet, StateDone: 43 return true 44 } 45 return false 46 } 47 48 func (e State) String() string { 49 return string(e) 50 } 51 52 func (e *State) UnmarshalGQL(v interface{}) error { 53 str, ok := v.(string) 54 if !ok { 55 return fmt.Errorf("enums must be strings") 56 } 57 58 *e = State(str) 59 if !e.IsValid() { 60 return fmt.Errorf("%s is not a valid State", str) 61 } 62 return nil 63 } 64 65 func (e State) MarshalGQL(w io.Writer) { 66 fmt.Fprint(w, strconv.Quote(e.String())) 67 }