tailscale/util/must/must.go
Joe Tsai 622d80c007
util/must: new package (#5307)
The Do function assists in calling functions that must succeed.
It only interacts well with functions that return (T, err).
Signatures with more return arguments are not supported.

Signed-off-by: Joe Tsai <joetsai@digital-static.net>
2022-08-05 12:20:50 -07:00

18 lines
443 B
Go

// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package must assists in calling functions that must succeed.
//
// Example usage:
// var target = must.Do(url.Parse(...))
package must
// Do returns v as is. It panics if err is non-nil.
func Do[T any](v T, err error) T {
if err != nil {
panic(err)
}
return v
}