This commit is contained in:
Eden Kirin
2024-01-05 22:14:20 +01:00
parent 29f75f5eda
commit ecaab6416e
4 changed files with 59 additions and 1 deletions

53
chaining/main.go Normal file
View File

@ -0,0 +1,53 @@
package main
import "fmt"
type Filter struct {
alive *bool
id *int
externalId *string
}
func NewFilter() *Filter {
return &Filter{}
}
func (f *Filter) Dump() {
fmt.Println("Filter non-nil options:")
if f.alive != nil {
fmt.Printf(" Alive: %v\n", *f.alive)
}
if f.id != nil {
fmt.Printf(" Id: %v\n", *f.id)
}
if f.externalId != nil {
fmt.Printf(" ExternalId: %v\n", *f.externalId)
}
}
func (f *Filter) Alive(alive bool) *Filter {
f.alive = &alive
return f
}
func (f *Filter) Id(id int) *Filter {
f.id = &id
return f
}
func (f *Filter) ExternalId(externalId string) *Filter {
f.externalId = &externalId
return f
}
func main() {
var f *Filter
f = NewFilter().ExternalId("some-external-id")
f.Dump()
fmt.Println("-------------------")
f = NewFilter().Id(123).Alive(true).ExternalId("some-external-id")
f.Dump()
}