From 6b6185bf77d5a029d570e6d202a5c53d81c22858 Mon Sep 17 00:00:00 2001 From: Admin <2762713521@qq.com> Date: Sun, 1 Dec 2024 19:32:22 +0800 Subject: [PATCH] init --- mylog/safeStream_gen.go | 2 +- safemap/safemap.go | 7 +++++++ safemap/safemap_test.go | 8 ++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mylog/safeStream_gen.go b/mylog/safeStream_gen.go index 960f79c7..8d4b0275 100644 --- a/mylog/safeStream_gen.go +++ b/mylog/safeStream_gen.go @@ -27,7 +27,7 @@ import ( "unicode/utf8" "github.com/dc0d/caseconv" - + "github.com/rivo/uniseg" "mvdan.cc/gofumpt/format" ) diff --git a/safemap/safemap.go b/safemap/safemap.go index 6d16f499..b72cbb9a 100644 --- a/safemap/safemap.go +++ b/safemap/safemap.go @@ -107,6 +107,13 @@ func (s *M[K, V]) Has(key K) (exists bool) { return exists } +func (s *M[K, V]) GetMust(key K) (value V) { + get, exist := s.Get(key) + if !exist { + panic("key not found") + } + return get +} func (s *M[K, V]) Get(key K) (value V, exist bool) { s.RLock() defer s.RUnlock() diff --git a/safemap/safemap_test.go b/safemap/safemap_test.go index 43003de9..02fff07d 100644 --- a/safemap/safemap_test.go +++ b/safemap/safemap_test.go @@ -42,7 +42,7 @@ func TestSafeMap_StoreAndLoad(t *testing.T) { sm := New[int, string]() sm.Update(1, "one") - value, ok := sm.Get(1) + value, ok := sm.GetMust(1) if !ok || value != "one" { t.Errorf("expected 'one', got '%v'", value) } @@ -128,7 +128,7 @@ func TestSafeMap_StoreAndLoad_Ordered(t *testing.T) { sm := New[int, string](Ordered) sm.Update(1, "one") - value, ok := sm.Get(1) + value, ok := sm.GetMust(1) if !ok || value != "one" { t.Errorf("expected 'one', got '%v'", value) } @@ -233,7 +233,7 @@ func BenchmarkSafeMap_Load(b *testing.B) { sm.Update(1, "value") b.ResetTimer() for i := 0; i < b.N; i++ { - sm.Get(1) + sm.GetMust(1) } } @@ -257,7 +257,7 @@ func BenchmarkSafeMap_Ordered_Load(b *testing.B) { sm.Update(1, "value") b.ResetTimer() for i := 0; i < b.N; i++ { - sm.Get(1) + sm.GetMust(1) } }