Skip to content

Commit 8dce051

Browse files
make lowercase comparison (#645)
1 parent 6132174 commit 8dce051

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

structs/structs.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package structs
33
import (
44
"errors"
55
"reflect"
6+
"strings"
67
)
78

89
// CallbackFunc on the struct field
@@ -58,18 +59,18 @@ func FilterStruct[T any](input T, includeFields, excludeFields []string) (T, err
5859
excludeMap := make(map[string]bool)
5960

6061
for _, field := range includeFields {
61-
includeMap[field] = true
62+
includeMap[strings.ToLower(field)] = true
6263
}
6364
for _, field := range excludeFields {
64-
excludeMap[field] = true
65+
excludeMap[strings.ToLower(field)] = true
6566
}
6667

6768
typeOfStruct := val.Type()
6869
filteredStruct := reflect.New(typeOfStruct).Elem()
6970

7071
for i := 0; i < val.NumField(); i++ {
7172
field := typeOfStruct.Field(i)
72-
fieldName := field.Name
73+
fieldName := strings.ToLower(field.Name)
7374
fieldValue := val.Field(i)
7475

7576
if (len(includeMap) == 0 || includeMap[fieldName]) && !excludeMap[fieldName] {
@@ -96,7 +97,7 @@ func GetStructFields[T any](input T) ([]string, error) {
9697
fields := make([]string, 0, val.NumField())
9798
typeOfStruct := val.Type()
9899
for i := 0; i < val.NumField(); i++ {
99-
fields = append(fields, typeOfStruct.Field(i).Name)
100+
fields = append(fields, strings.ToLower(typeOfStruct.Field(i).Name))
100101
}
101102

102103
return fields, nil

structs/structs_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func TestFilterStruct(t *testing.T) {
3434
{
3535
name: "include specific fields",
3636
input: s,
37-
includeFields: []string{"Name", "Age"},
37+
includeFields: []string{"name", "Age"},
3838
excludeFields: []string{},
3939
want: TestStruct{
4040
Name: "John",
@@ -46,7 +46,7 @@ func TestFilterStruct(t *testing.T) {
4646
name: "exclude specific fields",
4747
input: s,
4848
includeFields: []string{},
49-
excludeFields: []string{"Address"},
49+
excludeFields: []string{"address"},
5050
want: TestStruct{
5151
Name: "John",
5252
Age: 30,
@@ -95,7 +95,7 @@ func TestGetStructFields(t *testing.T) {
9595
{
9696
name: "valid struct",
9797
input: s,
98-
want: []string{"Name", "Age", "Address"},
98+
want: []string{"name", "age", "address"},
9999
wantErr: false,
100100
},
101101
{

0 commit comments

Comments
 (0)