From 527b83e6004deb0f5e780eb9ecd76c29be327504 Mon Sep 17 00:00:00 2001 From: jo <ljonas@riseup.net> Date: Tue, 21 Jan 2025 16:58:54 +0000 Subject: [PATCH] add MustGenerateID function --- hcloud/exp/kit/randutil/id.go | 18 +++++++++++++----- hcloud/exp/kit/randutil/id_test.go | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/hcloud/exp/kit/randutil/id.go b/hcloud/exp/kit/randutil/id.go index d44e903b..57043b99 100644 --- a/hcloud/exp/kit/randutil/id.go +++ b/hcloud/exp/kit/randutil/id.go @@ -8,13 +8,21 @@ import ( // GenerateID returns a hex encoded random string with a len of 8 chars similar to // "2873fce7". -// -// This function panics if [rand.Read] returns an error. -func GenerateID() string { +func GenerateID() (string, error) { b := make([]byte, 4) _, err := rand.Read(b) if err != nil { - panic(fmt.Errorf("failed to generate random string: %w", err)) + return "", fmt.Errorf("failed to generate random string: %w", err) } - return hex.EncodeToString(b) + return hex.EncodeToString(b), nil +} + +// MustGenerateID returns the result of [GenerateID], and panics if [rand.Read] returns +// an error. +func MustGenerateID() string { + result, err := GenerateID() + if err != nil { + panic(err) + } + return result } diff --git a/hcloud/exp/kit/randutil/id_test.go b/hcloud/exp/kit/randutil/id_test.go index 58116f30..4e69e1ef 100644 --- a/hcloud/exp/kit/randutil/id_test.go +++ b/hcloud/exp/kit/randutil/id_test.go @@ -7,8 +7,8 @@ import ( ) func TestGenerateRandomID(t *testing.T) { - found1 := GenerateID() - found2 := GenerateID() + found1 := MustGenerateID() + found2 := MustGenerateID() assert.Len(t, found1, 8) assert.Len(t, found2, 8)