| 123456789101112131415161718192021222324252627282930 | 
							- package types
 
- import (
 
- 	"database/sql/driver"
 
- )
 
- // 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
 
- // Value implements the driver.Valuer interface,
 
- // and turns the BitBool into a bitfield (BIT(1)) for MySQL storage.
 
- func (b BitBool) Value() (driver.Value, error) {
 
- 	if b {
 
- 		return []byte{1}, nil
 
- 	}
 
- 	return []byte{0}, nil
 
- }
 
- // Scan implements the sql.Scanner interface,
 
- // and turns the bitfield incoming from MySQL into a BitBool
 
- func (b *BitBool) Scan(src interface{}) error {
 
- 	v, ok := src.([]byte)
 
- 	if !ok {
 
- 		*b = false
 
- 		return nil
 
- 	}
 
- 	*b = v[0] == 1
 
- 	return nil
 
- }
 
 
  |