@@ 2,10 2,41 @@ package di
import (
"errors"
+ "fmt"
"strings"
"testing"
)
+func ExampleBuild() {
+ type Username string
+ type Config struct {
+ User Username
+ Age int
+ Greeting func(Username, int) string
+ }
+
+ cfg := Config{
+ User: "Alice",
+ Age: 42,
+ Greeting: func(u Username, age int) string {
+ return fmt.Sprintf("Hello, %s. You've been around the sun %d times!", string(u), age)
+ },
+ }
+
+ type Result struct {
+ Greeting string
+ }
+ var res Result
+ err := Build(cfg, &res)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ fmt.Println(res.Greeting)
+
+ // Output: Hello, Alice. You've been around the sun 42 times!
+}
+
func TestBuildSuccess(t *testing.T) {
type A struct {
val string