code: func (impl *repoImpl) GetRolesInPrefix(c context.Context, r *api.PrefixRequest) (resp *api.RolesInPrefixResponse, err error) {
  	defer func() { err = grpcutil.GRPCifyAndLogErr(c, err) }()
  
  	r.Prefix, err = common.ValidatePackagePrefix(r.Prefix)
  	if err != nil {
  		return nil, status.Errorf(codes.InvalidArgument, "bad 'prefix' - %s", err)
  	}
  
  	metas, err := impl.meta.GetMetadata(c, r.Prefix)
  	if err != nil {
  		return nil, err
  	}
  
  	roles, err := rolesInPrefix(c, metas)
  	if err != nil {
  		return nil, err
  	}
  
  	resp = &api.RolesInPrefixResponse{
  		Roles: make([]*api.RolesInPrefixResponse_RoleInPrefix, len(roles)),
  	}
  	for i, r := range roles {
  		resp.Roles[i] = &api.RolesInPrefixResponse_RoleInPrefix{Role: r}
  	}
  	return resp, nil
  }
docs: // GetRolesInPrefix implements the corresponding RPC method, see the proto doc.