Home / Function/ forEachMediaRange() — fiber Function Reference

forEachMediaRange() — fiber Function Reference

Architecture documentation for the forEachMediaRange() function in helpers.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  b98f3fa5_2e76_2ad8_cd62_dbccbf59f37e["forEachMediaRange()"]
  bec0e401_e4cd_f765_6df3_a79059073e50["helpers.go"]
  b98f3fa5_2e76_2ad8_cd62_dbccbf59f37e -->|defined in| bec0e401_e4cd_f765_6df3_a79059073e50
  e3cc6318_07a4_ecac_7c64_699264bff354["getOffer()"]
  e3cc6318_07a4_ecac_7c64_699264bff354 -->|calls| b98f3fa5_2e76_2ad8_cd62_dbccbf59f37e
  style b98f3fa5_2e76_2ad8_cd62_dbccbf59f37e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

helpers.go lines 469–514

func forEachMediaRange(header []byte, functor func([]byte)) {
	hasDQuote := bytes.IndexByte(header, '"') != -1

	for len(header) > 0 {
		n := 0
		header = utils.TrimLeft(header, ' ')
		quotes := 0
		escaping := false

		if hasDQuote {
			// Complex case. We need to keep track of quotes and quoted-pairs (i.e.,  characters escaped with \ )
		loop:
			for n < len(header) {
				switch header[n] {
				case ',':
					if quotes%2 == 0 {
						break loop
					}
				case '"':
					if !escaping {
						quotes++
					}
				case '\\':
					if quotes%2 == 1 {
						escaping = !escaping
					}
				default:
					// all other characters are ignored
				}
				n++
			}
		} else {
			// Simple case. Just look for the next comma.
			if n = bytes.IndexByte(header, ','); n == -1 {
				n = len(header)
			}
		}

		functor(header[:n])

		if n >= len(header) {
			return
		}
		header = header[n+1:]
	}
}

Domain

Subdomains

Defined In

Called By

Frequently Asked Questions

What does forEachMediaRange() do?
forEachMediaRange() is a function in the fiber codebase, defined in helpers.go.
Where is forEachMediaRange() defined?
forEachMediaRange() is defined in helpers.go at line 469.
What calls forEachMediaRange()?
forEachMediaRange() is called by 1 function(s): getOffer.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free