func (hideid *ID) UnmarshalJSON(data []byte) error {
	if strings.TrimSpace(string(data)) == "null" {
		*hideid = 0
		return nil
	}
	if len(data) >= 2 {
		data = data[1 : len(data)-1]
	}
	result, err := hash.Decode(data)
	if err != nil {
		return err
	}
	*hideid = ID(result)
	return nil
}
UnmarshalJSON implements the encoding json interface.
package hide
import (
	"database/sql/driver"
	"encoding/json"
	"errors"
	"strings"
)
type ID int64
func (hideid *ID) Scan(value interface{}) error {
	if value == nil {
		*hideid = 0
		return nil
	}
	id, ok := value.(int64)
	if !ok {
		return errors.New("unexpected type")
	}
	*hideid = ID(id)
	return nil
}
func (hideid ID) Value() (driver.Value, error) {
	if hideid == 0 {
		return nil, nil
	}
	return int64(hideid), nil
}
func (hideid ID) MarshalJSON() ([]byte, error) {
	if hideid == 0 {
		return json.Marshal(nil)
	}
	result, err := hash.Encode(hideid)
	if err != nil {
		return nil, err
	}
	return json.Marshal(string(result))
}