200sc / foptgen

A binary tool to generate functional options for Go code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

foptgen

foptgen is a binary tool that generates functional options for Go structs.

Install

go install github.com/200sc/foptgen/main/foptgen

Usage

$ foptgen --dir=internal/components/titlebar --struct=Constructor --overwrite=false
Output target internal/components/titlebar/opts_gen.go already exists; overwrite? (y/N)
y

Input struct:

type Constructor struct {
	Color        color.Color
	Height       float64
	Layers       []int
	Fire         bool
	StringArrays [][][]string
}

Output (to file internal\components\titlebar\opts_gen.go):

// Code generated by foptgen; DO NOT EDIT.

package titlebar

import "image/color"

type Option func(Constructor) Constructor

func WithColor(v color.Color) Option {
	return func(s Constructor) Constructor {
		s.Color = v
		return s
	}
}

func WithHeight(v float64) Option {
	return func(s Constructor) Constructor {
		s.Height = v
		return s
	}
}

func WithLayers(v []int) Option {
	return func(s Constructor) Constructor {
		s.Layers = v
		return s
	}
}

func WithFire(v bool) Option {
	return func(s Constructor) Constructor {
		s.Fire = v
		return s
	}
}

func WithStringArrays(v [][][]string) Option {
	return func(s Constructor) Constructor {
		s.StringArrays = v
		return s
	}
}

About

A binary tool to generate functional options for Go code

License:Apache License 2.0


Languages

Language:Go 93.7%Language:Smarty 6.3%