35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// SPDX-FileCopyrightText: Copyright (c) 2015-2025 go-swagger maintainers
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package jsonpointer
|
|
|
|
import "fmt"
|
|
|
|
type pointerError string
|
|
|
|
func (e pointerError) Error() string {
|
|
return string(e)
|
|
}
|
|
|
|
const (
|
|
// ErrPointer is a sentinel error raised by all errors from this package.
|
|
ErrPointer pointerError = "JSON pointer error"
|
|
|
|
// ErrInvalidStart states that a JSON pointer must start with a separator ("/").
|
|
ErrInvalidStart pointerError = `JSON pointer must be empty or start with a "` + pointerSeparator
|
|
|
|
// ErrUnsupportedValueType indicates that a value of the wrong type is being set.
|
|
ErrUnsupportedValueType pointerError = "only structs, pointers, maps and slices are supported for setting values"
|
|
)
|
|
|
|
func errNoKey(key string) error {
|
|
return fmt.Errorf("object has no key %q: %w", key, ErrPointer)
|
|
}
|
|
|
|
func errOutOfBounds(length, idx int) error {
|
|
return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", length-1, idx, ErrPointer)
|
|
}
|
|
|
|
func errInvalidReference(token string) error {
|
|
return fmt.Errorf("invalid token reference %q: %w", token, ErrPointer)
|
|
}
|