Files
zenfeed/pkg/util/runtime/runtime.go
glidea 8b33df8a05 init
2025-04-19 15:50:26 +08:00

47 lines
1.4 KiB
Go

// Copyright (C) 2025 wangyusong
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package runtime
// Must panics if err is not nil.
// It is useful for handling errors in initialization code where recovery is not possible.
func Must(err error) {
if err != nil {
panic(err)
}
}
// Must1 is like Must but returns the value if err is nil.
// It is useful for handling errors in initialization code where recovery is not possible
// and a value needs to be returned.
func Must1[T any](v T, err error) T {
if err != nil {
panic(err)
}
return v
}
// Must2 is like Must but returns two values if err is nil.
// It is useful for handling errors in initialization code where recovery is not possible
// and two values need to be returned.
func Must2[T1 any, T2 any](v1 T1, v2 T2, err error) (T1, T2) {
if err != nil {
panic(err)
}
return v1, v2
}