aboutsummaryrefslogtreecommitdiff
path: root/factory
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-12-19 09:42:17 +0000
committerdakkar <dakkar@thenautilus.net>2024-12-19 09:42:17 +0000
commitc940ac4f72e7e55ef1a7aa35cc0fc32684716977 (patch)
treedf46d71d6b0ea49a979f90fc43b6947617942b04 /factory
downloadgo-example-c940ac4f72e7e55ef1a7aa35cc0fc32684716977.tar.gz
go-example-c940ac4f72e7e55ef1a7aa35cc0fc32684716977.tar.bz2
go-example-c940ac4f72e7e55ef1a7aa35cc0fc32684716977.zip
minimal example
Diffstat (limited to 'factory')
-rw-r--r--factory/factory.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/factory/factory.go b/factory/factory.go
new file mode 100644
index 0000000..ae84911
--- /dev/null
+++ b/factory/factory.go
@@ -0,0 +1,33 @@
+package factory
+
+import (
+ "github.com/rs/zerolog"
+
+ "www.thenautilus.net/cgit/go-example/config"
+ "www.thenautilus.net/cgit/go-example/something"
+)
+
+type Factory struct {
+ something *something.Something
+
+ config *config.MainConfig
+ logger zerolog.Logger
+}
+
+func New(logger zerolog.Logger, config *config.MainConfig) Factory {
+ return Factory{
+ config: config,
+ logger: logger,
+ }
+}
+
+func (f *Factory) Something() *something.Something {
+ if f.something == nil {
+ something := something.New(
+ &f.config.Something,
+ )
+ f.something = &something
+ }
+
+ return f.something
+}