Compare commits

...

1 Commits

Author SHA1 Message Date
39314e3403
Handle all pointer types generically 2025-02-22 11:18:50 +05:30
2 changed files with 13 additions and 6 deletions

@ -10,6 +10,10 @@ https://pypi.org/project/template-nest/.
* News * News
** v0.1.5 - 2025-02-22
+ Handle all pointer types generically.
** v0.1.4 - 2025-01-09 ** v0.1.4 - 2025-01-09
+ Fix nil pointer dereference error. + Fix nil pointer dereference error.

@ -283,6 +283,15 @@ func (nest *TemplateNest) Render(toRender interface{}) (string, error) {
return "", nil return "", nil
} }
// Handle pointer types generically
if reflect.TypeOf(toRender).Kind() == reflect.Ptr {
if reflect.ValueOf(toRender).IsNil() {
return "", nil
}
// Dereference the pointer and recursively call Render
return nest.Render(reflect.ValueOf(toRender).Elem().Interface())
}
if reflect.TypeOf(toRender).Kind() == reflect.Slice { if reflect.TypeOf(toRender).Kind() == reflect.Slice {
return nest.renderSlice(toRender) return nest.renderSlice(toRender)
} }
@ -294,12 +303,6 @@ func (nest *TemplateNest) Render(toRender interface{}) (string, error) {
case bool: case bool:
return fmt.Sprintf("%t", v), nil return fmt.Sprintf("%t", v), nil
case *string:
if v == nil {
return "", nil
}
return nest.Render(*v)
case string: case string:
if nest.option.NoEscapeInput { if nest.option.NoEscapeInput {
return v, nil return v, nil