prometheus/storage/remote
beorn7 5b53aa1108 style: Replace else if cascades with switch
Wiser coders than myself have come to the conclusion that a `switch`
statement is almost always superior to a statement that includes any
`else if`.

The exceptions that I have found in our codebase are just these two:

* The `if else` is followed by an additional statement before the next
  condition (separated by a `;`).
* The whole thing is within a `for` loop and `break` statements are
  used. In this case, using `switch` would require tagging the `for`
  loop, which probably tips the balance.

Why are `switch` statements more readable?

For one, fewer curly braces. But more importantly, the conditions all
have the same alignment, so the whole thing follows the natural flow
of going down a list of conditions. With `else if`, in contrast, all
conditions but the first are "hidden" behind `} else if `, harder to
spot and (for no good reason) presented differently from the first
condition.

I'm sure the aforemention wise coders can list even more reasons.

In any case, I like it so much that I have found myself recommending
it in code reviews. I would like to make it a habit in our code base,
without making it a hard requirement that we would test on the CI. But
for that, there has to be a role model, so this commit eliminates all
`if else` occurrences, unless it is autogenerated code or fits one of
the exceptions above.

Signed-off-by: beorn7 <beorn@grafana.com>
2023-04-19 17:22:31 +02:00
..
chunked.go (storage): move from github.com/pkg/errors to 'errors' and 'fmt' (#10946) 2022-07-01 18:59:50 +02:00
chunked_test.go Testify: move to require (#8122) 2020-10-29 09:43:23 +00:00
client.go remote.Client: store urlString 2023-03-16 09:53:10 +01:00
client_test.go remote: Convert to RecoverableError using errors.As (#12103) 2023-03-08 13:58:09 -07:00
codec.go style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
codec_test.go lint: Adjust to the lint warnings raised by current versions of golint-ci 2023-04-19 17:10:10 +02:00
ewma.go style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
intern.go Move away from testutil, refactor imports (#8087) 2020-10-22 11:00:08 +02:00
intern_test.go Testify: move to require (#8122) 2020-10-29 09:43:23 +00:00
max_timestamp.go Remote: Do not collect non-initialized timestamp metrics (#8060) 2020-10-15 23:53:59 +02:00
metadata_watcher.go (storage): move from github.com/pkg/errors to 'errors' and 'fmt' (#10946) 2022-07-01 18:59:50 +02:00
metadata_watcher_test.go (storage): move from github.com/pkg/errors to 'errors' and 'fmt' (#10946) 2022-07-01 18:59:50 +02:00
queue_manager.go style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
queue_manager_test.go lint: Adjust to the lint warnings raised by current versions of golint-ci 2023-04-19 17:10:10 +02:00
read.go labels: simplify call to get Labels from Builder 2023-03-22 17:05:20 +00:00
read_handler.go remote/read_handler: pool input to Marshal() (#11357) 2022-11-15 16:29:16 +01:00
read_handler_test.go Remove hacky promql.Test native histogram thing 2023-03-09 11:05:53 -08:00
read_test.go Handle native histograms in remote read 2023-03-09 09:13:53 -08:00
storage.go storage/remote: in tests use labels.FromStrings 2022-09-09 13:34:49 +02:00
storage_test.go Update package storage/remote tests for new labels.Labels type 2022-12-19 15:22:09 +00:00
write.go Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
write_handler.go Add support for native histograms to concreteSeriesIterator 2023-04-06 09:54:15 -07:00
write_handler_test.go lint: Adjust to the lint warnings raised by current versions of golint-ci 2023-04-19 17:10:10 +02:00
write_test.go Update package storage/remote tests for new labels.Labels type 2022-12-19 15:22:09 +00:00