From 4cdebe4220a3d944bea6e504964df2e84bcc473d Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Sat, 6 Jan 2018 02:35:57 +0200 Subject: [PATCH] idiom/functional-options: Unexport options Options is an implementation detail and adds no value by being exported. By unexporting Options we decrease the API surface and maintain the ability to make changes without breaking user expectations. --- idiom/functional-options.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/idiom/functional-options.md b/idiom/functional-options.md index 1e95086..3f473e7 100644 --- a/idiom/functional-options.md +++ b/idiom/functional-options.md @@ -10,7 +10,7 @@ Options implemented as a function set the state of that option. ```go package file -type Options struct { +type options struct { UID int GID int Flags int @@ -18,28 +18,28 @@ type Options struct { Permissions os.FileMode } -type Option func(*Options) +type Option func(*options) func UID(userID int) Option { - return func(args *Options) { + return func(args *options) { args.UID = userID } } func GID(groupID int) Option { - return func(args *Options) { + return func(args *options) { args.GID = groupID } } func Contents(c string) Option { - return func(args *Options) { + return func(args *options) { args.Contents = c } } func Permissions(perms os.FileMode) Option { - return func(args *Options) { + return func(args *options) { args.Permissions = perms } } @@ -51,8 +51,8 @@ func Permissions(perms os.FileMode) Option { package file func New(filepath string, setters ...Option) error { - // Default Options - args := &Options{ + // Default options + args := &options{ UID: os.Getuid(), GID: os.Getgid(), Contents: "",