code: func ProtocolsWithString(s string) ([]Protocol, error) {
  	s = strings.Trim(s, "/")
  	sp := strings.Split(s, "/")
  	if len(sp) == 0 {
  		return nil, nil
  	}
  
  	t := make([]Protocol, len(sp))
  	for i, name := range sp {
  		p := ProtocolWithName(name)
  		if p.Code == 0 {
  			return nil, fmt.Errorf("no protocol with name: %s", name)
  		}
  		t[i] = p
  	}
  	return t, nil
  }
docs: // ProtocolsWithString returns a slice of protocols matching given string.