Package types
Overview ▹
Index ▹
type BitBool ¶
BitBool is an implementation of a bool for the MySQL type BIT(1). This type allows you to avoid wasting an entire byte for MySQL's boolean type TINYINT.
type BitBool bool
func (*BitBool) Scan ¶
func (b *BitBool) Scan(src interface{}) error
Scan implements the sql.Scanner interface, and turns the bitfield incoming from MySQL into a BitBool
func (BitBool) Value ¶
func (b BitBool) Value() (driver.Value, error)
Value implements the driver.Valuer interface, and turns the BitBool into a bitfield (BIT(1)) for MySQL storage.
type GzippedText ¶
GzippedText is a []byte which transparently gzips data being submitted to a database and ungzips data being Scanned from a database.
type GzippedText []byte
func (*GzippedText) Scan ¶
func (g *GzippedText) Scan(src interface{}) error
Scan implements the sql.Scanner interface, ungzipping the value coming off the wire and storing the raw result in the GzippedText.
func (GzippedText) Value ¶
func (g GzippedText) Value() (driver.Value, error)
Value implements the driver.Valuer interface, gzipping the raw value of this GzippedText.
type JSONText ¶
JSONText is a json.RawMessage, which is a []byte underneath. Value() validates the json format in the source, and returns an error if the json is not valid. Scan does no validation. JSONText additionally implements `Unmarshal`, which unmarshals the json within to an interface{}
type JSONText json.RawMessage
func (JSONText) MarshalJSON ¶
func (j JSONText) MarshalJSON() ([]byte, error)
MarshalJSON returns the *j as the JSON encoding of j.
func (*JSONText) Scan ¶
func (j *JSONText) Scan(src interface{}) error
Scan stores the src in *j. No validation is done.
func (JSONText) String ¶
func (j JSONText) String() string
String supports pretty printing for JSONText types.
func (*JSONText) Unmarshal ¶
func (j *JSONText) Unmarshal(v interface{}) error
Unmarshal unmarshal's the json in j to v, as in json.Unmarshal.
func (*JSONText) UnmarshalJSON ¶
func (j *JSONText) UnmarshalJSON(data []byte) error
UnmarshalJSON sets *j to a copy of data
func (JSONText) Value ¶
func (j JSONText) Value() (driver.Value, error)
Value returns j as a value. This does a validating unmarshal into another RawMessage. If j is invalid json, it returns an error.
type NullJSONText ¶
NullJSONText represents a JSONText that may be null. NullJSONText implements the scanner interface so it can be used as a scan destination, similar to NullString.
type NullJSONText struct {
JSONText
Valid bool // Valid is true if JSONText is not NULL
}
func (*NullJSONText) Scan ¶
func (n *NullJSONText) Scan(value interface{}) error
Scan implements the Scanner interface.
func (NullJSONText) Value ¶
func (n NullJSONText) Value() (driver.Value, error)
Value implements the driver Valuer interface.