header.go 545 B

123456789101112131415161718192021222324
  1. package gax
  2. import "bytes"
  3. // XGoogHeader is for use by the Google Cloud Libraries only.
  4. //
  5. // XGoogHeader formats key-value pairs.
  6. // The resulting string is suitable for x-goog-api-client header.
  7. func XGoogHeader(keyval ...string) string {
  8. if len(keyval) == 0 {
  9. return ""
  10. }
  11. if len(keyval)%2 != 0 {
  12. panic("gax.Header: odd argument count")
  13. }
  14. var buf bytes.Buffer
  15. for i := 0; i < len(keyval); i += 2 {
  16. buf.WriteByte(' ')
  17. buf.WriteString(keyval[i])
  18. buf.WriteByte('/')
  19. buf.WriteString(keyval[i+1])
  20. }
  21. return buf.String()[1:]
  22. }