package errorutil

import (
	"fmt"
)

// PanicError can be used to not print stacktrace twice
type PanicError struct {
	recovered interface{}
	stack     []byte
}

func NewPanicError(recovered interface{}, stack []byte) *PanicError {
	return &PanicError{recovered: recovered, stack: stack}
}

func (e PanicError) Error() string {
	return fmt.Sprint(e.recovered)
}

func (e PanicError) Stack() []byte {
	return e.stack
}