code: func (ha *Argument) Get(headers, query, payload *map[string]interface{}) (string, bool) {
  	var source *map[string]interface{}
  	key := ha.Name
  
  	switch ha.Source {
  	case SourceHeader:
  		source = headers
  		key = textproto.CanonicalMIMEHeaderKey(ha.Name)
  	case SourceQuery, SourceQueryAlias:
  		source = query
  	case SourcePayload:
  		source = payload
  	case SourceString:
  		return ha.Name, true
  	case SourceEntirePayload:
  		r, err := json.Marshal(payload)
  
  		if err != nil {
  			return "", false
  		}
  
  		return string(r), true
  	case SourceEntireHeaders:
  		r, err := json.Marshal(headers)
  
  		if err != nil {
  			return "", false
  		}
  
  		return string(r), true
  	case SourceEntireQuery:
  		r, err := json.Marshal(query)
  
  		if err != nil {
  			return "", false
  		}
  
  		return string(r), true
  	}
  
  	if source != nil {
  		return ExtractParameterAsString(key, *source)
  	}
  
  	return "", false
  }
docs: // Get Argument method returns the value for the Argument's key name
  // based on the Argument's source