assignValues assigns the values that were returned from sql.Rows (after scanning) to the Node fields.
(columns []string, values []any)
| 91 | // assignValues assigns the values that were returned from sql.Rows (after scanning) |
| 92 | // to the Node fields. |
| 93 | func (n *Node) assignValues(columns []string, values []any) error { |
| 94 | if m, n := len(values), len(columns); m < n { |
| 95 | return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) |
| 96 | } |
| 97 | for i := range columns { |
| 98 | switch columns[i] { |
| 99 | case node.FieldID: |
| 100 | value, ok := values[i].(*sql.NullInt64) |
| 101 | if !ok { |
| 102 | return fmt.Errorf("unexpected type %T for field id", value) |
| 103 | } |
| 104 | n.ID = int(value.Int64) |
| 105 | case node.FieldCreatedAt: |
| 106 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 107 | return fmt.Errorf("unexpected type %T for field created_at", values[i]) |
| 108 | } else if value.Valid { |
| 109 | n.CreatedAt = value.Time |
| 110 | } |
| 111 | case node.FieldUpdatedAt: |
| 112 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 113 | return fmt.Errorf("unexpected type %T for field updated_at", values[i]) |
| 114 | } else if value.Valid { |
| 115 | n.UpdatedAt = value.Time |
| 116 | } |
| 117 | case node.FieldDeletedAt: |
| 118 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 119 | return fmt.Errorf("unexpected type %T for field deleted_at", values[i]) |
| 120 | } else if value.Valid { |
| 121 | n.DeletedAt = new(time.Time) |
| 122 | *n.DeletedAt = value.Time |
| 123 | } |
| 124 | case node.FieldStatus: |
| 125 | if value, ok := values[i].(*sql.NullString); !ok { |
| 126 | return fmt.Errorf("unexpected type %T for field status", values[i]) |
| 127 | } else if value.Valid { |
| 128 | n.Status = node.Status(value.String) |
| 129 | } |
| 130 | case node.FieldName: |
| 131 | if value, ok := values[i].(*sql.NullString); !ok { |
| 132 | return fmt.Errorf("unexpected type %T for field name", values[i]) |
| 133 | } else if value.Valid { |
| 134 | n.Name = value.String |
| 135 | } |
| 136 | case node.FieldType: |
| 137 | if value, ok := values[i].(*sql.NullString); !ok { |
| 138 | return fmt.Errorf("unexpected type %T for field type", values[i]) |
| 139 | } else if value.Valid { |
| 140 | n.Type = node.Type(value.String) |
| 141 | } |
| 142 | case node.FieldServer: |
| 143 | if value, ok := values[i].(*sql.NullString); !ok { |
| 144 | return fmt.Errorf("unexpected type %T for field server", values[i]) |
| 145 | } else if value.Valid { |
| 146 | n.Server = value.String |
| 147 | } |
| 148 | case node.FieldSlaveKey: |
| 149 | if value, ok := values[i].(*sql.NullString); !ok { |
| 150 | return fmt.Errorf("unexpected type %T for field slave_key", values[i]) |