Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
92 lines (78 sloc) 2.19 KB
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package schema
import (
// KeyError is an error with a field key
type KeyError interface {
Key() string
SetKey(k string)
type errorKey struct {
key string
// Key returns the value of the field key
func (k *errorKey) Key() string {
return k.key
// SetKey sets the value of the field key
func (k *errorKey) SetKey(v string) {
k.key = v
// KeyNotFoundError is an error happening when a field key is not found
type KeyNotFoundError struct {
Err error
Optional bool
Required bool
// NewKeyNotFoundError builds a KeyNotFoundError
func NewKeyNotFoundError(key string) *KeyNotFoundError {
var e KeyNotFoundError
return &e
// Error returns the error message of a KeyNotFoundError
func (err *KeyNotFoundError) Error() string {
msg := fmt.Sprintf("key `%s` not found", err.Key())
if err.Err != nil {
msg += ": " + err.Err.Error()
return msg
// WrongFormatError is an error happening when a field format is incorrect
type WrongFormatError struct {
Msg string
// NewWrongFormatError builds a new WrongFormatError
func NewWrongFormatError(key string, msg string) *WrongFormatError {
e := WrongFormatError{
Msg: msg,
return &e
// Error returns the error message of a WrongFormatError
func (err *WrongFormatError) Error() string {
msg := fmt.Sprintf("wrong format in `%s`", err.Key())
if err.Msg != "" {
msg += ": " + err.Msg
return msg
You can’t perform that action at this time.