Home / Function/ makeBuildVaryKeyFunc() — fiber Function Reference

makeBuildVaryKeyFunc() — fiber Function Reference

Architecture documentation for the makeBuildVaryKeyFunc() function in cache.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  94a0c0d9_758b_e1dd_a717_293b190ce2c3["makeBuildVaryKeyFunc()"]
  af95e058_7e86_ec88_42f0_cd294e342508["cache.go"]
  94a0c0d9_758b_e1dd_a717_293b190ce2c3 -->|defined in| af95e058_7e86_ec88_42f0_cd294e342508
  96447356_67b9_a364_148e_b703c487e1ba["New()"]
  96447356_67b9_a364_148e_b703c487e1ba -->|calls| 94a0c0d9_758b_e1dd_a717_293b190ce2c3
  style 94a0c0d9_758b_e1dd_a717_293b190ce2c3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/cache/cache.go lines 1277–1312

func makeBuildVaryKeyFunc(hexBufPool *sync.Pool) func([]string, *fasthttp.RequestHeader) string {
	return func(names []string, hdr *fasthttp.RequestHeader) string {
		sum := sha256.New()
		for _, name := range names {
			_, _ = sum.Write(utils.UnsafeBytes(name)) //nolint:errcheck // hash.Hash.Write for std hashes never errors
			_, _ = sum.Write([]byte{0})               //nolint:errcheck // hash.Hash.Write for std hashes never errors
			_, _ = sum.Write(hdr.Peek(name))          //nolint:errcheck // hash.Hash.Write for std hashes never errors
			_, _ = sum.Write([]byte{0})               //nolint:errcheck // hash.Hash.Write for std hashes never errors
		}

		var hashBytes [sha256.Size]byte
		sum.Sum(hashBytes[:0])

		v := hexBufPool.Get()
		bufPtr, ok := v.(*[]byte)
		if !ok || bufPtr == nil {
			b := make([]byte, hexLen)
			bufPtr = &b
		}

		buf := *bufPtr
		// Defensive in case someone changed Pool.New or Put a different sized buffer.
		if cap(buf) < hexLen {
			buf = make([]byte, hexLen)
		} else {
			buf = buf[:hexLen]
		}
		*bufPtr = buf

		hex.Encode(buf, hashBytes[:])
		result := "|vary|" + string(buf)

		hexBufPool.Put(bufPtr)
		return result
	}
}

Subdomains

Called By

Frequently Asked Questions

What does makeBuildVaryKeyFunc() do?
makeBuildVaryKeyFunc() is a function in the fiber codebase, defined in middleware/cache/cache.go.
Where is makeBuildVaryKeyFunc() defined?
makeBuildVaryKeyFunc() is defined in middleware/cache/cache.go at line 1277.
What calls makeBuildVaryKeyFunc()?
makeBuildVaryKeyFunc() is called by 1 function(s): New.

Analyze Your Own Codebase

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

Try Supermodel Free