| 1234567891011121314151617181920212223242526272829 | // +build jsonpackage protocolimport "encoding/json"func (u *User) UnmarshalJSON(data []byte) error {	type rawUser struct {		EmailString string `json:"email"`		LevelByte   byte   `json:"level"`	}	var rawUserValue rawUser	if err := json.Unmarshal(data, &rawUserValue); err != nil {		return err	}	var rawAccount AccountJson	if err := json.Unmarshal(data, &rawAccount); err != nil {		return err	}	account, err := rawAccount.GetAccount()	if err != nil {		return err	}	*u = *NewUser(account, UserLevel(rawUserValue.LevelByte), rawUserValue.EmailString)	return nil}
 |