shithub: furgit

ref: ab174c473618dd3743881cf44e02c2db4d1ecd5f
dir: /ref/name/options.go/

View raw version
package refname

import "fmt"

// Options controls Git refname validation.
type Options struct {
	// AllowOneLevel permits one-component refnames like HEAD.
	AllowOneLevel bool

	// RefspecPattern permits one '*' anywhere in the refname.
	RefspecPattern bool
}

// String returns one stable text form of the options.
func (options Options) String() string {
	return fmt.Sprintf("allow_onelevel=%t,refspec_pattern=%t", options.AllowOneLevel, options.RefspecPattern)
}

func (options Options) flags() int {
	var flags int
	if options.AllowOneLevel {
		flags |= refnameAllowOneLevel
	}

	if options.RefspecPattern {
		flags |= refnameRefspecPattern
	}

	return flags
}