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

// Package util provides auxiliary functions internally used in webrtc package
package util import ( ) const ( runesAlpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) // Use global random generator to properly seed by crypto grade random. var globalMathRandomGenerator = randutil.NewMathRandomGenerator() // nolint:gochecknoglobals // MathRandAlpha generates a mathematical random alphabet sequence of the requested length. func ( int) string { return globalMathRandomGenerator.GenerateString(, runesAlpha) } // RandUint32 generates a mathematical random uint32. func () uint32 { return globalMathRandomGenerator.Uint32() } // FlattenErrs flattens multiple errors into one. func ( []error) error { := []error{} for , := range { if != nil { = append(, ) } } if len() == 0 { return nil } return multiError() } type multiError []error //nolint:errname 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:errorlint if .() { return true } } } return false }