func (usr *User) Info() (string, error) {
	if err := usr.init(); err != nil {
		return usr.info, err
	}
	return usr.info, nil
}
Info loads data from iRODS if needed, and returns the user's info attribute.
package gorods
import "C"
import (
	"fmt"
	"strconv"
	"strings"
	"time"
	"unsafe"
)
type User struct {
	name        string
	zone        *Zone
	createTime  time.Time
	modifyTime  time.Time
	id          int
	typ         int
	info        string
	comment     string
	parentSlice *Users
	hasInit bool
	groups Groups
	con    *Connection
	metaCol *MetaCollection
}
type Users []*User
func initUser(name string, zone *Zone, con *Connection) (*User, error) {
	usr := new(User)
	usr.name = name
	usr.zone = zone
	usr.con = con
	return usr, nil
}
func (usr *User) Remove() bool {
	for n, p := range *usr.parentSlice {
		if p.name == usr.name {
			usr.parentSlice.Remove(n)
			return true
		}
	}
	return false
}
func (usr *User) Name() string {
	return usr.name
}
func (usr *User) Path() string {
	return usr.name
}
func (usr *User) Zone() *Zone {
	return usr.zone
}
func (usr *User) Comment() (string, error) {
	if err := usr.init(); err != nil {
		return usr.comment, err
	}
	return usr.comment, nil
}