package internal

import "errors"

type UnavailableError struct {
	wrappedError error
}

func NewUnavailableError(wrappedError error) *UnavailableError {
	return &UnavailableError{wrappedError: wrappedError}
}

func (u *UnavailableError) Error() string {
	return u.wrappedError.Error()
}

func (u *UnavailableError) Unwrap() error {
	return u.wrappedError
}

func IsUnavailable(err error) bool {
	var uae *UnavailableError
	return errors.As(err, &uae)
}
