Skip to content

Commit cfee8c0

Browse files
committed
refactor: declare multiple resolvers with a single call in examples
1 parent a13a49b commit cfee8c0

4 files changed

Lines changed: 42 additions & 33 deletions

File tree

README.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -192,18 +192,20 @@ type ServiceDeps struct {
192192
}
193193

194194
cont.Must().
195-
Singleton(func() *slog.Logger {
196-
return slog.New(slog.NewJSONHandler(os.Stdout, nil))
197-
}).
195+
Singleton(
196+
func() *slog.Logger {
197+
return slog.New(slog.NewJSONHandler(os.Stdout, nil))
198+
},
199+
// The *Container is automatically available for injection.
200+
func(c *container.Container) *MyService {
201+
var deps ServiceDeps
202+
if err := c.Fill(&deps); err != nil {
203+
panic(err)
204+
}
205+
return NewMyService(deps.Logger, deps.Buffer)
206+
},
207+
).
198208
Token(map[string]any{
199209
"buffer": func() *bytes.Buffer { return bytes.NewBufferString("data") },
200-
}).
201-
// The *Container is automatically available for injection.
202-
Singleton(func(c *container.Container) *MyService {
203-
var deps ServiceDeps
204-
if err := c.Fill(&deps); err != nil {
205-
panic(err)
206-
}
207-
return NewMyService(deps.Logger, deps.Buffer)
208210
})
209211
```

pkg/container/example_container_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,13 @@ func ExampleContainer_Dependencies_withDependencies() {
5858

5959
// Resolver input parameters are resolved automatically from the container.
6060
cont.Must().
61-
Dependencies(func() *bytes.Buffer {
62-
return bytes.NewBufferString("hello")
63-
}).
64-
Dependencies(func(buf *bytes.Buffer) string {
65-
return fmt.Sprintf("got: %s", buf.String())
66-
})
61+
Dependencies(
62+
func() *bytes.Buffer {
63+
return bytes.NewBufferString("hello")
64+
}, func(buf *bytes.Buffer) string {
65+
return fmt.Sprintf("got: %s", buf.String())
66+
},
67+
)
6768

6869
result, _ := container.Resolve[string](cont)
6970
fmt.Println(result)

pkg/container/example_must_container_test.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,18 @@ func ExampleContainer_Fill_insideResolver() {
8181

8282
cont := container.New()
8383
cont.Must().
84-
Dependencies(func() string {
85-
return "hello from Fill"
86-
}).
87-
Dependencies(func(c *container.Container) *ServerConfig {
88-
var deps Deps
89-
if err := c.Fill(&deps); err != nil {
90-
panic(err)
91-
}
92-
return &ServerConfig{Host: deps.Greeting, Port: 8080}
93-
})
84+
Dependencies(
85+
func() string {
86+
return "hello from Fill"
87+
},
88+
func(c *container.Container) *ServerConfig {
89+
var deps Deps
90+
if err := c.Fill(&deps); err != nil {
91+
panic(err)
92+
}
93+
return &ServerConfig{Host: deps.Greeting, Port: 8080}
94+
},
95+
)
9496

9597
cfg, err := container.Resolve[*ServerConfig](cont)
9698
if err != nil {
@@ -132,8 +134,10 @@ func ExampleContainer_Derived() {
132134
func ExampleContainer_DetectCircularDependencies() {
133135
cont := container.New()
134136
cont.Must().
135-
Dependencies(func() string { return "hello" }).
136-
Dependencies(func(s string) int { return len(s) })
137+
Dependencies(
138+
func() string { return "hello" },
139+
func(s string) int { return len(s) },
140+
)
137141

138142
// DetectCircularDependencies runs a DFS-based check on the dependency graph.
139143
// Returns nil when there are no cycles.

pkg/container/example_resolve_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ func ExampleResolve() {
2525
func ExampleResolve_withDependencyChain() {
2626
cont := container.New()
2727
cont.Must().
28-
Dependencies(func() int { return 42 }).
29-
Dependencies(func(n int) string {
30-
return fmt.Sprintf("the answer is %d", n)
31-
})
28+
Dependencies(
29+
func() int { return 42 },
30+
func(n int) string {
31+
return fmt.Sprintf("the answer is %d", n)
32+
},
33+
)
3234

3335
result, err := container.Resolve[string](cont)
3436
if err != nil {

0 commit comments

Comments
 (0)