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()) +}