code: func Copy(dst, src interface{}) {
  	dstval := reflect.ValueOf(dst)
  	if !dstval.IsValid() {
  		panic("Copy dst cannot be nil")
  	}
  
  	rcopy(dstval, reflect.ValueOf(src), true)
  }
docs: // Copy deeply copies a src structure to dst. Useful for copying request and
  // response structures.
  //
  // Can copy between structs of different type, but will only copy fields which
  // are assignable, and exist in both structs. Fields which are not assignable,
  // or do not exist in both structs are ignored.