From 2de4ae3b393437e5a3698c20c98a5301b18de476 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 21 Mar 2025 17:18:35 +0800 Subject: dereference_or_zero --- http_template_funcs.go | 8 ++++++++ resources.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/http_template_funcs.go b/http_template_funcs.go index 5395b92..2a7d826 100644 --- a/http_template_funcs.go +++ b/http_template_funcs.go @@ -29,3 +29,11 @@ func queryEscape(s string) string { func dereference[T any](p *T) T { return *p } + +func dereference_or_zero[T any](p *T) T { + if p != nil { + return *p + } + var z T + return z +} diff --git a/resources.go b/resources.go index 2576c12..fb67102 100644 --- a/resources.go +++ b/resources.go @@ -44,7 +44,7 @@ func loadTemplates() (err error) { "base_name": baseName, "path_escape": pathEscape, "query_escape": queryEscape, - "dereference_error": dereference[error], + "dereference_error": dereference_or_zero[error], }) err = fs.WalkDir(resourcesFS, "templates", func(path string, d fs.DirEntry, err error) error { -- cgit v1.2.3