code: func NewIdentityMapping(username, groupname string) (*IdentityMapping, error) {
  	subuidRanges, err := parseSubuid(username)
  	if err != nil {
  		return nil, err
  	}
  	subgidRanges, err := parseSubgid(groupname)
  	if err != nil {
  		return nil, err
  	}
  	if len(subuidRanges) == 0 {
  		return nil, fmt.Errorf("No subuid ranges found for user %q", username)
  	}
  	if len(subgidRanges) == 0 {
  		return nil, fmt.Errorf("No subgid ranges found for group %q", groupname)
  	}
  
  	return &IdentityMapping{
  		uids: createIDMap(subuidRanges),
  		gids: createIDMap(subgidRanges),
  	}, nil
  }
docs: // NewIdentityMapping takes a requested user and group name and
  // using the data from /etc/sub{uid,gid} ranges, creates the
  // proper uid and gid remapping ranges for that user/group pair