| package repository | |
| import ( | |
| "errors" | |
| "fmt" | |
| ) | |
| var ( | |
| ErrNotFound = errors.New("repository: not found") | |
| ErrConflict = errors.New("repository: conflict") | |
| ErrLimitExceeded = errors.New("repository: limit exceeded") | |
| ErrInvalidRecord = errors.New("repository: invalid record") | |
| ErrAccountPoolMismatch = errors.New("repository: account pool mismatch") | |
| ErrEgressFallbackInUse = errors.New("repository: egress fallback node in use") | |
| ) | |
| // InvalidBatchRecordError identifies a deterministic invalid record without | |
| // classifying transient database failures as record-local errors. | |
| type InvalidBatchRecordError struct { | |
| Index int | |
| Err error | |
| } | |
| func (e *InvalidBatchRecordError) Error() string { | |
| if e == nil { | |
| return ErrInvalidRecord.Error() | |
| } | |
| if e.Err == nil { | |
| return fmt.Sprintf("%s at batch index %d", ErrInvalidRecord, e.Index) | |
| } | |
| return fmt.Sprintf("%s at batch index %d: %v", ErrInvalidRecord, e.Index, e.Err) | |
| } | |
| func (e *InvalidBatchRecordError) Unwrap() error { | |
| if e == nil || e.Err == nil { | |
| return ErrInvalidRecord | |
| } | |
| return e.Err | |
| } | |
| func (e *InvalidBatchRecordError) Is(target error) bool { | |
| return target == ErrInvalidRecord | |
| } | |