func (p *Params) MaxCost(v int) *Params {
	if v >= 0 {
		p.maxCost = v
	}
	return p
}
MaxCost overrides the default value of 0 (meaning unlimited) for the maximum cost.
The calculation of Distance() stops when the result is guaranteed to exceed
this maximum, returning a lower-bound rather than exact value.
The new value must be zero or positive.
package levenshtein
type Params struct {
	insCost        int
	subCost        int
	delCost        int
	maxCost        int
	minScore       float64
	bonusPrefix    int
	bonusScale     float64
	bonusThreshold float64
}
var (
	defaultParams = NewParams()
)
func NewParams() *Params {
	return &Params{
		insCost:        1,
		subCost:        1,
		delCost:        1,
		maxCost:        0,
		minScore:       0,
		bonusPrefix:    4,
		bonusScale:     .1,
		bonusThreshold: .7,
	}
}
func (p *Params) Clone() *Params {
	if p == nil {
		return NewParams()
	}
	return &Params{
		insCost:        p.insCost,
		subCost:        p.subCost,
		delCost:        p.delCost,
		maxCost:        p.maxCost,
		minScore:       p.minScore,
		bonusPrefix:    p.bonusPrefix,
		bonusScale:     p.bonusScale,
		bonusThreshold: p.bonusThreshold,
	}
}
func (p *Params) InsCost(v int) *Params {
	if v >= 0 {
		p.insCost = v
	}
	return p
}
func (p *Params) SubCost(v int) *Params {
	if v >= 0 {
		p.subCost = v
	}
	return p
}
func (p *Params) DelCost(v int) *Params {
	if v >= 0 {
		p.delCost = v
	}
	return p
}