MCPcopy Index your code
hub / github.com/go-openapi/jsonpointer / set

Method set

pointer.go:260–281  ·  view source on GitHub ↗
(node, data any, nameProvider NameProvider)

Source from the content-addressed store, hash-verified

258}
259
260func (p *Pointer) set(node, data any, nameProvider NameProvider) (any, error) {
261 knd := reflect.ValueOf(node).Kind()
262
263 if knd != reflect.Pointer && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {
264 return node, errors.Join(
265 fmt.Errorf("unexpected type: %T", node), //nolint:err113 // err wrapping is carried out by errors.Join, not fmt.Errorf.
266 ErrUnsupportedValueType,
267 ErrPointer,
268 )
269 }
270
271 // full document when empty
272 if len(p.referenceTokens) == 0 {
273 return node, nil
274 }
275
276 if nameProvider == nil {
277 nameProvider = defaultOptions.provider
278 }
279
280 return p.setAt(node, p.referenceTokens, data, nameProvider)
281}
282
283// setAt recursively walks the token list, setting the data at the terminal token and rebinding any
284// new child reference (e.g. a slice header returned by an "-" append) into its parent on the way

Callers 2

SetMethod · 0.95
TestFullDocumentFunction · 0.80

Calls 1

setAtMethod · 0.95

Tested by 1

TestFullDocumentFunction · 0.64