Original post

In my application I store a map of all my templates (map[string]*template.Template) in an ApplicationEngine struct, which is my application framework instance. I am currently using the standard context.Context to pass request scoped values between my middlewares and handlers. I need a way to access that map of templates in order to render a specific template file. What is the best way to do this? Is storing a map of templates even a good idea?

I know that contexts are a controversial issue and just want to hear the available options.

I am currently thinking of adopting a way similar to the gin framework’s context. Gin uses a custom struct that stores a pointer to go.Engine, which is their application framework instance. They then have a HTML() function on the context struct, which accesses the template map stored in the go.Engine pointer.

While my question is specific to my need, there is a broader discussion here. Should you use custom structs instead of context.Context?