From 74abb2d3f1d74af57743e9aef5f86a05a8ce279f Mon Sep 17 00:00:00 2001 From: chentong Date: Thu, 23 Oct 2025 11:20:43 +0800 Subject: [PATCH] feat(struct): add struct name function (#328) * feat(struct): add struct name function - Add Name() method to Struct type to return the struct name - Implement unit tests for the new Name() method * refactor(structs): rename Struct.Name to Struct.TypeName - Rename method Name to TypeName for clarity and accuracy - Update corresponding test cases --- structs/struct.go | 5 +++++ structs/struct_test.go | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/structs/struct.go b/structs/struct.go index 5481918..1760c02 100644 --- a/structs/struct.go +++ b/structs/struct.go @@ -122,3 +122,8 @@ func (s *Struct) IsStruct() bool { func ToMap(v any) (map[string]any, error) { return New(v).ToMap() } + +// TypeName return struct type name +func (s *Struct) TypeName() string { + return s.rtype.Name() +} diff --git a/structs/struct_test.go b/structs/struct_test.go index 8040ced..5a2f6aa 100644 --- a/structs/struct_test.go +++ b/structs/struct_test.go @@ -177,3 +177,21 @@ func TestStruct_IsStruct(t *testing.T) { assert.Equal(true, s1.IsStruct()) assert.Equal(false, s2.IsStruct()) } + +func TestStruct_TypeName(t *testing.T) { + t.Parallel() + + assert := internal.NewAssert(t, "TestStruct_TypeName") + + type Test1 struct{} + t1 := &Test1{} + + s1 := New(t1) + assert.Equal("Test1", s1.TypeName()) + + type Test2 struct{} + t2 := Test2{} + + s2 := New(t2) + assert.Equal("Test2", s2.TypeName()) +}