// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
// SPDX-License-Identifier: MIT

package interceptor

import (
	
	
)

func flattenErrs( []error) error {
	 := []error{}
	for ,  := range  {
		if  != nil {
			 = append(, )
		}
	}
	if len() == 0 {
		return nil
	}

	return multiError()
}

type multiError []error //nolint

func ( multiError) () string {
	var  []string

	for ,  := range  {
		if  != nil {
			 = append(, .Error())
		}
	}

	if len() == 0 {
		return "multiError must contain multiple error but is empty"
	}

	return strings.Join(, "\n")
}

func ( multiError) ( error) bool {
	for ,  := range  {
		if errors.Is(, ) {
			return true
		}
		if ,  := .(multiError);  { //nolint
			if .() {
				return true
			}
		}
	}

	return false
}