code: func bindStruct(bindType int, query string, arg interface{}, m *reflectx.Mapper) (string, []interface{}, error) {
  	bound, names, err := compileNamedQuery([]byte(query), bindType)
  	if err != nil {
  		return "", []interface{}{}, err
  	}
  
  	arglist, err := bindArgs(names, arg, m)
  	if err != nil {
  		return "", []interface{}{}, err
  	}
  
  	return bound, arglist, nil
  }
docs: // bindStruct binds a named parameter query with fields from a struct argument.
  // The rules for binding field names to parameter names follow the same
  // conventions as for StructScan, including obeying the `db` struct tags.