Update README.md
1 file changed
tree: 3905fe4b7f903d9a6cf8832888a0d2248f6d8e27
  1. .gitignore
  2. .travis.yml
  3. builder.go
  4. builder_test.go
  5. example_test.go
  6. README.md
  7. reflect.go
  8. registry.go
README.md

Builder - fluent immutable builders

GoDoc Build Status

Builder helps you write fluent interfaces for your libraries using method chaining:

req := ReqBuilder.
    Url("http://golang.org").
    Header("User-Agent", "Builder").
    Get()

Builder uses immutable persistent data structures (these, specifically) so that each step in your method chain can be reused:

build := WordBuilder.Letters("Build")
builder := build.Letters("er").String()
building := build.Letters("ing").String()

Builder makes it easy to build structs using the builder pattern (surprise!):

muppet := builder.GetStruct(
    MuppetBuilder.
        Name("Beaker").
        Hair("orange"))

muppet.Name == "Beaker"