Home / Function/ CopyContextToFiberContext() — fiber Function Reference

CopyContextToFiberContext() — fiber Function Reference

Architecture documentation for the CopyContextToFiberContext() function in adaptor.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  396b545e_ec69_3ad2_77c3_848b4e5253dd["CopyContextToFiberContext()"]
  69780622_2588_e0fa_ab5a_13dcfd3559e7["adaptor.go"]
  396b545e_ec69_3ad2_77c3_848b4e5253dd -->|defined in| 69780622_2588_e0fa_ab5a_13dcfd3559e7
  519ca005_b5e3_d33c_7eee_42ac83141d1c["HTTPMiddleware()"]
  519ca005_b5e3_d33c_7eee_42ac83141d1c -->|calls| 396b545e_ec69_3ad2_77c3_848b4e5253dd
  style 396b545e_ec69_3ad2_77c3_848b4e5253dd fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/adaptor/adaptor.go lines 97–151

func CopyContextToFiberContext(src any, requestContext *fasthttp.RequestCtx) {
	v := reflect.ValueOf(src)
	if !v.IsValid() {
		return
	}
	// Deref pointer chains
	for v.Kind() == reflect.Ptr {
		if v.IsNil() {
			return
		}
		v = v.Elem()
	}
	t := v.Type()
	if t.Kind() != reflect.Struct {
		return
	}
	// Ensure addressable for safe unsafe-access of unexported fields
	if !v.CanAddr() {
		tmp := reflect.New(t)
		tmp.Elem().Set(v)
		v = tmp.Elem()
	}
	contextValues := v
	contextKeys := t

	var lastKey any
	for i := 0; i < contextValues.NumField(); i++ {
		reflectValue := contextValues.Field(i)
		reflectField := contextKeys.Field(i)

		if reflectField.Name == "noCopy" {
			break
		}

		// Avoid unsafe access for unexported fields; use safe reflection where possible
		if !reflectValue.CanInterface() {
			/* #nosec */
			reflectValue = reflect.NewAt(reflectValue.Type(), unsafe.Pointer(reflectValue.UnsafeAddr())).Elem()
		}

		switch reflectField.Name {
		case "Context":
			CopyContextToFiberContext(reflectValue.Interface(), requestContext)
		case "key":
			lastKey = reflectValue.Interface()
		case "val":
			if lastKey != nil {
				requestContext.SetUserValue(lastKey, reflectValue.Interface())
				lastKey = nil
			}
		default:
			continue
		}
	}
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does CopyContextToFiberContext() do?
CopyContextToFiberContext() is a function in the fiber codebase, defined in middleware/adaptor/adaptor.go.
Where is CopyContextToFiberContext() defined?
CopyContextToFiberContext() is defined in middleware/adaptor/adaptor.go at line 97.
What calls CopyContextToFiberContext()?
CopyContextToFiberContext() is called by 1 function(s): HTTPMiddleware.

Analyze Your Own Codebase

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

Try Supermodel Free