Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

options

Functional Options Pattern utility for Go.

Usage

go get github.com/tingtt/options
import "github.com/tingtt/options"
  • Simple one
     type Option struct {}
    
     func NewService(_options ...options.Applier[Option]) (Service, error) {
     	option := options.Create(_options...) // Create option from functional options.
    
     	service := new(service)
    
     	// effect option to service ...
    
     	return service, nil
     }
  • Create option with default value
     type Option struct {}
    
     func DefaultOption() Option {
     	return Option{
     		// write default fields...
     	}
     }
    
     func NewService(_options ...options.Applier[Option]) (Service, error) {
     	option := options.CreateWithDefault(DefaultOption(), _options...) // Create option from functional options.
    
     	service := new(service)
    
     	// effect option to service ...
    
     	return service, nil
     }

About

Functional Options Pattern utility for Go.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages