This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / spindle / engines / microvm / args.go
1.4 kB 71 lines
1//go:build linux 2 3package microvm 4 5import ( 6 "fmt" 7 "strings" 8) 9 10type argBuilder struct { 11 args []string 12} 13 14func newArgBuilder(capacity int) argBuilder { 15 return argBuilder{ 16 args: make([]string, 0, capacity), 17 } 18} 19 20func (b *argBuilder) Add(args ...string) *argBuilder { 21 b.args = append(b.args, args...) 22 return b 23} 24 25func (b *argBuilder) Flag(name string) *argBuilder { 26 b.args = append(b.args, name) 27 return b 28} 29 30func (b *argBuilder) Opt(name, value string) *argBuilder { 31 b.args = append(b.args, name, value) 32 return b 33} 34 35func (b *argBuilder) Optf(name, format string, values ...any) *argBuilder { 36 return b.Opt(name, fmt.Sprintf(format, values...)) 37} 38 39func (b *argBuilder) Args() []string { 40 args := make([]string, len(b.args)) 41 copy(args, b.args) 42 return args 43} 44 45type optionBuilder struct { 46 parts []string 47} 48 49func newOptionBuilder(capacity int) optionBuilder { 50 return optionBuilder{ 51 parts: make([]string, 0, capacity), 52 } 53} 54 55func (b *optionBuilder) Add(parts ...string) *optionBuilder { 56 b.parts = append(b.parts, parts...) 57 return b 58} 59 60func (b *optionBuilder) KV(key, value string) *optionBuilder { 61 b.parts = append(b.parts, key+"="+value) 62 return b 63} 64 65func (b *optionBuilder) KVf(key, format string, values ...any) *optionBuilder { 66 return b.KV(key, fmt.Sprintf(format, values...)) 67} 68 69func (b optionBuilder) String() string { 70 return strings.Join(b.parts, ",") 71}